サービス開発中に、メール送信のテストをしたいけど、
外には送信したくない、もしくは送信できない場合、
ローカルにメールサーバーを構築するといいです。
DovecotとPostfixが扱いやすいのでこの2つを選びます。
Portsの更新
まずはportsを更新しておきましょう。
$ sudo port selfupdate
Dovecot
ではDovecotから。
Dovecotインストール
$ sudo port install dovecot2
Dovecot設定
設定ファイルをexampleディレクトリからコピー
$ sudo cp /opt/local/share/doc/dovecot/example-config/dovecot.conf /opt/local/etc/dovecot
$ sudo cp /opt/local/share/doc/dovecot/example-config/conf.d /opt/local/etc/dovecot
conf.dには各種インクルードファイルがおいてあるのでそのままコピーしておくといいです。
Dovecotを設定しましょう
protocols = imap
#!include conf.d/*.conf
!include conf.d/10-master.conf
!include conf.d/10-auth.conf
#!include_try local.conf
ssl = no
mail_location = maildir:~/Maildir
プロトコルはimapだけでいいと思います。
10-master.confには基本動作に必要な設定が書かれているのでインクルード。
10-auth.confではプレーンテキストでのログインとauth-system.conf.extがインクルードされているので必要。
sslの設定は面倒なので利用不可にしてしまいます。
pamの設定
今回重要なのがpamの設定です。
passdb {
driver = pam
# [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=]
# [cache_key=] []
#args = dovecot
args = login
}
デフォルトではdovecot用にユーザーを登録したりしなければいけないですが、面倒なのでMacのユーザーをそのまま使います。
Postfox側も(表現は正確ではないけど)Macのユーザーでメール送受信するのでこの方法が都合がいいです。
「args = login」としてmacの認証機構を利用するようにします。
Dovecot起動
では起動しましょう。
$ sudo port load dovecot2
最近のMacPortsは「port load」でlaunchctlのloadとstartまでやってくれます。(前からそうだった?)
これでひとまずimap接続が出来るようになりました。
Postfix
次にPostfixをいれます。
標準でもPostfixはインストールされていますが、
Dovecotに合わせて開発環境用にはMacPortsのものを使います。
Postfixインストール
$ sudo port install postfix
aliasデータベース作成
このまま起動するとaliasデータベースが無いよと怒られるので
$ cd /opt/local/etc/potfix
$ sudo newaliases
Maildir形式の設定
dovecotに合わせてMaildir形式で扱うようにします
home_mailbox = Maildir/
sendmailコマンドへのリンク
このまま起動してもPHPなどから呼び出される/usr/sbin/sendmailコマンドは、標準でインストールされているPostfixのもの(?)が使われてしまいます。
そうすると、SMTP経由ではMaildir形式に入ったのに、PHP経由等でsendmailコマンドを使った時はmbox形式になったりと、統一されない動きになります。
コマンドを置き換えてしまいましょう。
$ sudo mv /usr/sbin/sendmail /usr/sbin/sendmail.org
$ sudo ln -s /opt/local/sbin/sendmail /usr/sbin/sendmail
Linuxディストリだと設定ファイルで切替ができるのにMacPortsは/opt配下だけに対象を限定するのが基本だからでしょうかね。
port upgradeする度にこれをやらなければいけないのが面倒。
Postfix起動
では起動
$ sudo port load postfix
あとがき
以上でMac上でPHPなどを使ったメール送信のテスト環境が出来上がりました。
うまく動かないときは/var/log/maillogを見るとわかるかもしれません。
ちなみに私は、通常のメールにはMail.appを使いますが、
テストのメールにはThunderbirdを使ってメールを閲覧しています。
検証環境
Mac OS X 10.9.5 (Mavericks)
MacPorts 2.3.1
dovecot 2.2.13
postfix 2.11.1
補足
ブログからの転載です
http://blog.genieframe.com/2011/09/26/macportsからdovecotとpostfixをインストールしてメール環境を作/