メールサーバを立てる(続き)

設定ファイル(/etc/dovecot/dovecot.conf)の変更

dovecotの設定ファイル(/etc/dovecot/dovecot.conf)を必要最小限変更します。

$ sudo nano /etc/dovecot/dovecot.conf

login_greeting = POP3 ready.       ← dovecotの隠蔽
protocols = imap imaps pop3 pop3s  ← imapかpop3を使う
mail_location = maildir:~/Maildir  ← Maildir形式のメールボックス
disable_plaintext_auth = no        ← パスワードを平文で使うため

この『disable_plaintext_auth = no』がないと、メールクライアントで接続したとき、dovecotに『NO Plaintext authentication disallowed on non-secure connections.』(セキュアでない接続からの平文パスワードは許可しません)みたいなエラーを返されます。うちは内部からのアクセスのみなのでこうしておきます。外部に公開するならSSLでセキュアな環境にしましょう。

dovecotの再起動

$ sudo /etc/init.d/dovecot restart
 * Restarting IMAP/POP3 mail server dovecot
   ...done.

自動起動の確認

postfixdovecot自動起動になっているかどうかを確認する。『chkconfig』に相当するのはUbuntuでは『sysv-rc-conf』らしいので、これをインストールする。

$ sudo apt-get install sysv-rc-conf

The following packages were automatically installed and are no longer required:
  rake rdoc libredcloth-ruby1.8 liberb-ruby libsqlite3-ruby1.8
Use 'apt-get autoremove' to remove them.
以下の特別パッケージがインストールされます:
  libcurses-perl libcurses-ui-perl
以下のパッケージが新たにインストールされます:
  libcurses-perl libcurses-ui-perl sysv-rc-conf
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 1 個。
取得:1 http://jp.archive.ubuntu.com gutsy/universe libcurses-perl 1.13-1 [116kB]
取得:2 http://jp.archive.ubuntu.com gutsy/universe libcurses-ui-perl 0.95-6 [242kB]
取得:3 http://jp.archive.ubuntu.com gutsy/universe sysv-rc-conf 0.99-6 [24.2kB]
未選択パッケージ libcurses-perl を選択しています。
(.../libcurses-perl_1.13-1_i386.deb から) libcurses-perl を展開しています...
未選択パッケージ libcurses-ui-perl を選択しています。
(.../libcurses-ui-perl_0.95-6_all.deb から) libcurses-ui-perl を展開しています...
未選択パッケージ sysv-rc-conf を選択しています。
(.../sysv-rc-conf_0.99-6_all.deb から) sysv-rc-conf を展開しています...
libcurses-perl (1.13-1) を設定しています ...
libcurses-ui-perl (0.95-6) を設定しています ...
sysv-rc-conf (0.99-6) を設定しています ...
$ sudo sysv-rc-conf --list postfix
postfix      0:off      1:off   2:on    3:on    4:on    5:on    6:off
$ sudo sysv-rc-conf --list dovecot
dovecot      1:off      2:on    3:on    4:on    5:on

いずれもランレベル2から5がonになっています。

ポート設定

POP(ポート110番)もIMAP(ポート143番)も外から使う気がないので開けません。イントラネット中はポート制限していないので、中から使う分にはこのままでOKです。

メールユーザ

とりあえず、このサーバを使うのは当面自分ひとりなので、Ubuntuの管理者ユーザでメールが使えれば事足りるので、新しいメールユーザの追加は行わないことにします。
ちなみに、受信メールは『/home/xxx/Maildir/new』に1メール1ファイルとして追加されていきます。受信メールはメールクライアントがPOP3(IMAP)で取って消さない限り、ここにずっとあるみたいです。当然ですね。

DNS

メール関係のDNSの設定は終わっているものとします。具体的には /etc/bind/db.internal、db.1.168.192、db.5-55.jpに『IN MX 10 mail.5-55.jp』レコードが追加されているものとします。

接続テスト

さて、まずは、いま使っているプロバイダのメール環境からメールを『xxx@5-555.jp』(SPAM避けでドメイン名をちょっと変更)に送ります。うまくいけば、/home/xxx/Maildir/new に『1208508725.V811I7d4080M221792.hostname』みたいな名前でファイルができるはず。
うまくいったときの /var/log/mail.log の内容はこんな感じです。

postfix/smtpd:   connect from exc-mta-pri01.bbexcite.jp[211.132.194.21]  ← bbexciteから接続に来ています
postfix/smtpd:   client=exc-mta-pri01.bbexcite.jp[211.132.194.21]
postfix/cleanup: message-id=<20080418022202.BE0B228CED@5-555.jp>
postfix/qmgr:    from=, size=807, nrcpt=1 (queue active)  ← yyy@satake77.comからのメールです
postfix/smtpd:   disconnect from exc-mta-pri01.bbexcite.jp[211.132.194.21]  ← bbexciteとの接続を切りました
postfix/local:   to=, relay=local, delay=0.09, delays=0.06/0.01/0/0.02, dsn=2.0.0, status=sent (delivered to mailbox)
postfix/qmgr:    removed  ← メールを移動しました

エラーがあるときの /var/log/mail.log の内容です。まずは、ここ(→http://www.rbl.jp/svcheck.php)で第三者中継チェックをやったときのものです。SPAMの踏み台にされないためのチェックなので、ちゃんとエラーではじいてくれないと困ります。

postfix/smtpd: connect from www.rbl.jp[218.45.239.250]  ← rbl.jpから接続に来ています
postfix/smtpd: NOQUEUE: reject: RCPT from www.rbl.jp[218.45.239.250]: 554 5.7.1 : Relay access denied; from= to= proto=SMTP helo=
postfix/smtpd: too many errors after RCPT from www.rbl.jp[218.45.239.250]  ← rbl.jpからたくさんのエラーがありました
postfix/smtpd: disconnect from www.rbl.jp[218.45.239.250]  ← rbl.jpからの接続を切りました

次は宛先がない場合です。/etc/aliasesだけを編集して newaliasesしていなかったので、ユーザ名がないといって怒られています。

postfix/smtpd:   connect from exc-mta-pri01.bbexcite.jp[211.132.194.21]  ← bbexciteから接続に来ています
postfix/smtpd:   client=exc-mta-pri01.bbexcite.jp[211.132.194.21]
postfix/cleanup: message-id=<20080418025028.4A7BA28CEF@5-555.jp>
postfix/qmgr:    from=, size=807, nrcpt=1 (queue active)  ← yyy@satake77.comからのメールです
postfix/local:   warning: database /etc/aliases.db is older than source /etc/aliases  ← aliases.dbが古いと怒られてます
postfix/local:   warning: required alias not found: postmaster  ← よりによって postmasterがないと怒られてます
postfix/local:   to=, relay=local, delay=0.06, delays=0.05/0.01/0/0, dsn=2.0.0, status=sent (discarded)
postfix/qmgr:    removed  ← メールを移動させてくれたようですが、(discarded)なので捨てられたんですかね
postfix/smtpd:   disconnect from exc-mta-pri01.bbexcite.jp[211.132.194.21]  ← bbexciteとの接続を切りました

メールクライアント設定

WindowsXPで使用しているEdMaxでの設定画面です。

これで、xxx@5-555.jp(SPAM避けでドメイン名をちょっと変更)あてのメールがPOP3できちんと取れました。イントラネットの中(192.168.1.x)からSMTPで外部(yyy@satake77.com)へメールを出してみましたが、これもきちんと送信されました。
外部から、5-55.jp経由でメールを出すテストはまだですが、ここ(→http://www.rbl.jp/svcheck.php)で踏み台になる可能性がいまのところないようなので、たぶんエラーになることでしょう。