-
MacPortsからDovecotとPostfixをインストールしてメール環境を作る
投稿 26 2011年9月 by in 開発日誌 with 0 comments
サービス開発中に、メール送信のテストをしたいけど、
外には送信したくない、もしくは送信できない場合、
ローカルにメールサーバーを構築しちゃいます。DovecotとPostfixが扱いやすいのでこの2つを選びます。
まずはportsを更新しておきましょう。
$ sudo port selfupdate
ではDovecotから。
$ sudo port install dovecot2
ビルド終了時に
Configuration files go to this directory. See example configuration files in /opt/local/share/doc/dovecot/example-config/
って書いてあるので、該当ディレクトリにあるファイルをいくつかコピー
$ 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を設定しましょう
$ sudo vi dovecot.conf
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の設定は面倒なので利用不可にしてしまいます。重要なのがauth-system.conf.extの設定です。
passdb { driver = pam # [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=] # [cache_key=] [] #args = dovecot args = login }
pamの設定ですがデフォルトではdovecot用に設定を用意しなければいけないので、
「args = login」としてmacの認証(表現は正しくないけど)を利用するようにします。では起動しましょう。
$ sudo port load dovecot2
最近のMacPortsは「port load」でlaunchctlのloadとstartまでやってくれます。
これでひとまずimap接続が出来るようになりました。
次にPostfixをいれます。
標準でPostfixが入っていますが、
開発環境用にはMacPortsのものを使いたいので新たに入れます。$ sudo port install postfix
aliasデータベースが作られてないようなので
$ cd /opt/local/etc/potfix $ sudo newaliases
dovecotに合わせて
$ sudo vi /opt/local/etc/potfix/main.cf
home_mailbox = Maildir/
さて、ここがポイント。
このまま起動してもPHPなどから呼び出される/usr/sbin/sendmailコマンドは
標準でインストールされているPostfixのものが使われてしまいます。
そうすると、sendmailコマンドを使った時だけMaildir形式じゃない状態になったりと、
おかしな動きになります。置き換えてしまいましょう。
$ sudo mv /usr/sbin/sendmail /usr/sbin/sendmail.org $ sudo ln -s /opt/local/sbin/sendmail /usr/sbin/sendmail
Linuxディストリだと設定ファイルで切替ができるのにMacPortsは/opt配下だけに
対象を限定するのが基本だからでしょうかね。では起動
$ sudo port load postfix
出来上がり。
うまく動かないときは/var/log/maillogを見るとわかるかもしれません。
検証環境
Mac OS X 10.7.1 (Lion)
MacPorts 2.0.3
dovecot 2.0.13
postfix 2.8.5