postfixで快適smtpサーバ構築
設定が非常にややこしいsendmailからqmail, postfix, exim4など多くの便利なMTAなどが登場しています。
しかしながら、Google Appsでのメール利用など単純にMXレコードを書くだけで近年は安定したメール環境が手に入るようになり、自前でSMTPを立てることも無くなって来ました。あまり利用しないSMTPのリレーの設定の間違いや、DNSのMXレコードの追加などややこしい箇所も幾つかありSMTPは他人任せが一般的になってきているように思います。実際わたくしもその一人です。
ただ、WEBサービスの中でメルマガなどで自前のSMTPを利用してメール送信、または写真共有サービスなどでメールからWEBに投稿というシーンも少なくないように思います。そんな時に活躍するのがこの記事です。
ここではメールMTAであるPostfixの構築をDNS(bind9)の設定も交えてメモしておきます。
post@pic.localhost.comというメールアドレスを運用することを仮定して書いてあります。
サーバはpostfix, bind9含め1台のみです。
1.DNS(bind9)のゾーンファイル, MXレコードの追加
pic IN A 0.0.0.0 pic IN MX 10 pic.localhost.com.
# /etc/init.d/bind9 restart
MXレコード先に書くことが多いのですが、サブドメインpicを解決するために
Aレコードを先に書いておきました。
MXレコードがしっかりと反映されているか確認します。
# dig pic.localhost.com mx
pic.localhost.com IN MX preference: 10 exchange: pic.localhost.com 3600s (1h)
などど帰ってくれば大丈夫でしょう。
2.Postfixのインストールと設定
# apt-get update # apt-get upgrade # apt-get install postfix
Postfixの設定は/etc/postfix/main.cfで行います。
# cd /etc/postfix # vim main.cf
/etc/main.cf excerpt:
myorigin = /etc/mailname # ファイルが存在しているか確認 mydestination = pic.localhost.com, localhost # 自分のドメインに変更(sendmailなどのfromはここのドメインを受け付ける) inet_interfaces = all # ここはlocalhostにすると外部からの送信はできない配信専用のSMTPになります # mailbox_command = procmail -a "$EXTENSION" # Maildir利用のためコメントアウト # mailbox_size_limit = 0 # Maildir利用のためコメントアウト home_mailbox = Maildir/ # Maildir利用のため追加 virtual_alias_domains = pic.localhost.com # 今後複数ドメインで運用のため追加 virtual_alias_maps = hash:/etc/postfix/virtual # 今後複数ドメインで運用のため追加
/etc/mailnameの書き換え:
# echo 'pic.localhost.com' > /etc/mailname
/etc/postfix/virtualの設定:
# vim /etc/postfix/virtual
/etc/postfix/virtual excerpt:
メールアドレス[スペース]ローカルユーザ名 の順
post@pic.localhost.com post
もし、postというユーザが存在していない場合はpostユーザを追加
# adduser post
virtualファイルをpostmapします(virtual.dbを作成)
# postmap /etc/postfix/virtual
最後にPostfixの起動
# /etc/init.d/postfix start
mboxはmailコマンドで読めたのですがMaildirはmuttを使ってメールを読みます。
skelに書いとけばいいんだけど初期設定がちょっとめんどくさい。
# vim ~/.muttrc
~/.muttrc excerpt:
set from="post@pic.localhost.com" set realname="Photo Service" set mbox_type=Maildir set spoolfile="~/Maildir" set folder="~/Mail" set mbox="+mbox" set editor='vim + -c "set textwidth=72" -c "set wrap" -c "set nocp" -c "?^$"'
参考:
http://d.hatena.ne.jp/Kmusiclife/20101116/1289878358
http://www.postfix.org/documentation.html
http://www.postfix.org/
http://www.mutt.org/
http://www.ietf.org/rfc/rfc2821.txt