YosemiteのPostfix設定

前回からウェブ開発者の OS X 更新で恒例となっている作業の続きで、またも Mavericks までと異なった部分があった Postfix のリレー設定について。

先ず作業ディレクトリを作成し権限を設定するところは Mavericks と同じ。
sudo mkdir -p /Library/Server/Mail/Data/spool
sudo postfix set-permissions

次に設定ファイルの編集で引き続き同じように作業すると、後で Postfix を起動した際にエラーを出力するので後述。
sudo vi /etc/postfix/main.cf

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = may
smtp_sasl_mechanism_filter = plain

そして、Gmail でリレーするための Simple Authentication and Security Layer (SASL) パスワードファイルを作り、
sudo mate /etc/postfix/sasl_passwd

送信サーバと認証情報を書きます。
smtp.gmail.com:587 <username>@gmail.com:<password>

その後 DB 化するのも同じ作業です。
sudo postmap /etc/postfix/sasl_passwd

どうせ同じ作業だろうと踏んでここで check せず sudo postfix start とすると次のようなエラーが返ってきました。

/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: use_sacl_cache=yes
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: imap_submit_cred_file=
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: mydomain_fallback=localhost

/etc/postfix/main.cf を確認すると、(APPLE) とコメントが記述されているブロックにこれらのパラメータを見つけることができるので、全てコメントアウトしました。

スクリーンショット 2014-09-01 12.05.10

気を取り直して再び sudo postfix start すると無事成功します。

開発機を滅多に閉じることはありませんが、再起動後にも Postfix を使えるようにします。(この作業も同じです)
sudo vi /System/Library/LaunchDaemons/org.postfix.master.plist

<dict> ノードの最後に次の2つのノードを追加しておきます。
<key>RunAtLoad</key>
<true/>

最後に、ローカル環境にあるミドルウェアからでも、あるいは、
whoami | mail -s test youremailaddress@yourdomain.com

date | mail -s test youremailaddress@yourdomain.com
のようなコマンドからでもテストメールを送信してみて確認できれば終了です。

この作業中はコンソール.appを起動しておき、/var/log/mail.log を確認しながら行うと更に分かり良いかと思います。また、今回 Apple が書き加えてきたパラメータについては時間が許せば調べてみたいところで、今回は放置します。

参考

投稿者: hkitago

個人事業主でウェブと iOS, Android アプリの開発者で一児の父親。JavaScript, ActionScript, AppleScript, PHP, SQL, ObjC, Swift, Java の読書実行試験運用管理を生業とし、Bind, Postfix, Apache を MacOS で使い、エディタは Vi, mi, Kod, Smultron, TextWrangler を経て Coda, Xcode, Android Studio といった IDE と CotEditor を重用しています。Pokémon GO Trainer Code: 2491 5857 6842