Ubuntuでメールサーバーを構築した際の手順です。
送信サーバーとしてPostfix、受信サーバーとしてdovecotを使用します。
構築前に知っといたほうがいいメールの知識
メールを送信するにはアドレスを知っている必要があります。
このメールアドレスは下記のように表現されます。
hogehoge@gmail.com
@の前の「hogehoge」はユーザー名で、
@の後の「gmail.com」はサーバーのインターネット上の所在地(ドメイン)になります。
今から構築する送信サーバーから受信サーバーにメールを送る場合、
root@localhost
とすればOKです。(rootユーザーのメールボックスに届きます。)
環境
OS:Ubuntu 14.04 LTS
Postfix:2.11.0 (確認コマンド:$ postconf | grep mail_version)
Dovecot:2.2.9 (確認コマンド:$ dovecot --version)
送信サーバー(Postfix)の構築
Postfixのインストール
$ sudo apt-get install -y postfix
インストール後、「main.cf」という設定ファイルを/etc/postfix/ディレクトリにコピーしておきます。
$ sudo cp /usr/lib/postfix/main.cf /etc/postfix/main.cf
postfixの設定を編集
$ sudo vi /etc/postfix/main.cf
下記のように編集します。
# 59行目:コメント解除
mail_owner = postfix
# 76行目:コメント解除しホスト名指定★
myhostname = mail.hogefuga.com
# 83行目:コメント解除しドメイン名指定
mydomain = hogefuga.com
# 104行目:コメント解除
myorigin = $mydomain
# 118行目:コメント解除
inet_interfaces = all
# 166行目:コメント解除
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# 209行目:コメント解除
local_recipient_maps = unix:passwd.byname $alias_maps
# 268行目:自ネットワーク追記(ifconfigコマンドでeth0のinetアドレスが10.0.2.15だったので10.0.0.0/24を追記)
mynetworks = 127.0.0.0/8, 10.0.0.0/24
# 388行目:コメント解除
alias_maps = hash:/etc/aliases
# 399行目:コメント解除
alias_database = hash:/etc/aliases
# 421行目:コメント解除 ( Maildir形式へ移行 )
home_mailbox = Maildir/
# 557行目:コメントにしてその下に追記
#smtpd_banner = $myhostname ESMTP $mail_name (@@DISTRO@@)
smtpd_banner = $myhostname ESMTP
# 632行目:追記
sendmail_path = /usr/sbin/postfix
# 637行目:追記
newaliases_path = /usr/bin/newaliases
# 642行目:追記
mailq_path = /usr/bin/mailq
# 648行目:追記
setgid_group = postdrop
# 652行目:コメント化
#html_directory =
# 656行目:コメント化
#manpage_directory =
# 661行目:コメント化
#sample_directory =
# 665行目:コメント化
#readme_directory =
# 最終行へ追記:送受信メールサイズを10Mに制限
message_size_limit = 10485760
# メールボックスサイズを1Gに制限
mailbox_size_limit = 1073741824
# 以下SMTP-Auth用
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
メールエイリアスのデータベースを再構築するために書きコマンドを実行します。
$ newaliases
postfixを再起動
設定を反映させるために、postfixを再起動します。
$ sudo /etc/init.d/postfix restart
送信テスト
postfixがうまく構築できたかどうかを確認するため、テストメールを送信してみます。
と、その前に、mailコマンドを使えるように「mailutils」をインストールしておきます。
$ sudo apt-get install mailutils
メールを送信してみます。
※メールを送信するには、改行後、「.」を入力し[Enter]を押します。
# mail hogehogefugafuga@gmail.com
Cc:
Subject: test
hogehogefugafuga
.
受信サーバー(dovecot)の構築
Dovecotのインストール
$ sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d
以下のように独自 SSL 証明書を作成されるか問われますが、
必要ならば後でも作成できるので、「いいえ」を選択します。
Dovecotの設定を編集
■ /etc/dovecot/dovecot.conf を変更
$ sudo vi /etc/dovecot/dovecot.conf
# 30行目:変更 ( IPv6をリスンしない場合 )
listen = *
■ /etc/dovecot/conf.d/10-auth.conf を変更
$ sudo vi /etc/dovecot/conf.d/10-auth.conf
# 10行目:コメント解除し変更(プレーンテキスト認証も許可する)
disable_plaintext_auth = no
# 100行目:追記
auth_mechanisms = plain login
■ /etc/dovecot/conf.d/10-mail.conf を変更
$ sudo vi /etc/dovecot/conf.d/10-mail.conf
# 30行目:Maildir形式に変更
mail_location = maildir:~/Maildir
■ /etc/dovecot/conf.d/10-master.conf を変更
$ sudo vi /etc/dovecot/conf.d/10-master.conf
# 96-98行目:コメント解除し追記
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
■ /etc/dovecot/conf.d/10-ssl.conf を変更
$ sudo vi /etc/dovecot/conf.d/10-ssl.conf
# 6行目:コメント解除して変更(SSLなし)
ssl = no
# 12,13行目:コメントにする
#ssl_cert = </etc/dovecot/dovecot.pem
#ssl_key = </etc/dovecot/private/dovecot.pem
■ Dovecotを起動
$ sudo initctl start dovecot
受信テスト
受信サーバーが正しく動くかどうかを検証します。
送信テスト時と同じようにメールコマンドを使ってメールを送信してみます。
ただし、この時の宛先(@以降)を「localhost」にします。
# mail root@localhost
Cc:
Subject: test
hogehogefugafuga
.
上記実行後、@以前をrootとしたので、
/root/Maildir ディレクトリが作成されているはずですので、
確認して見てください。(下記のようになっていれば受信テストOK)
# ll /root/Maildir/
合計 20
drwx------ 5 root root 4096 3月 16 10:39 ./
drwx------ 10 root root 4096 3月 16 10:39 ../
drwx------ 2 root root 4096 3月 16 10:39 cur/
drwx------ 2 root root 4096 3月 16 10:39 new/
drwx------ 2 root root 4096 3月 16 10:39 tmp/
イントラネット外から受信をしたい場合
メールの送信に関しては、イントラネット外へ送信出来ますが、
受信に関しては、ファイアウォールやルーター(モデム含む)の設定が必要です。
受信するために必要なもの
■ ドメイン or グローバルIPアドレス
インターネット上の住所。
※@の後はドメインだけではなくグローバルIPアドレスでも可です。
固定IPやドメイン登録といった作業が必要になります。
ドメイン取得に関しては、
http://qiita.com/mizuki_takahashi/items/b0c5adebea48b9f2f7a6
が参考になると思います。
■ ポート解放
メールの送受信に使用するポートは下記の通りです。
送受信 | ポート番号 | 用途 |
---|---|---|
送信 | 25 | smtp |
送信 | 465 | smtp(SSL) |
送信 | 587 | Submissionポート |
受信 | 110 | POP |
受信 | 995 | POP(SSL) |
受信 | 143 | IMAP |
受信 | 993 | IMAP(SSL) |
ただし、上記ポートを開放するための手順は、
モデムやルーターの機種によって設定方法がまちまちなので、下記を参考にしてみてください。
http://27bit.com/router.html
以上です。