Macで気軽にメールしたい。
Snow LeopardではSMTPサーバーとしてpostfixが入っている。smtp.gmail.comと直接やり取りするプログラムを書いてもいいけど、せっかくSMTPサーバーがあるのでその辺はそっちに任せてsendmailコマンド等を使うことにした。
「Macはpostfixが動いてるの?そんな無駄なモノ今すぐ止めなきゃ!」
と思った方、ご安心下さい。Snow LeopardのpostfixはlaunchdのQueueDirectories機能を使っているので/var/spool/postfix/maildropディレクトリに変化が起きた時だけ立ち上がって、60秒後に終了するので慢性的な負荷は書けません。(/System/Library/LaunchDaemons/org.postfix.master.plistに設定がある。)
gmailにリレーするにはSASLとTLSの設定が必要なので下記のようにする。
% sudo vi /etc/postfix/sasl_passwd
smtp.gmail.com:587 komagata@gmail.com:パスワード
% sudo postmap /etc/postfix/sasl_passwd
% sudo rm /etc/postfix/sasl_passwd
% sudo vi /etc/postfix/main.cf
relayhost=smtp.gmail.com:587
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options=
smtp_use_tls=yes
smtp_tls_security_level=encrypt
smtp_sasl_mechanism_filter = plain # if you use Yosemite
% sudo postfix stop
% sudo postfix start
% date | mail -s test komagata@gmail.com
ひゃっほう。
何か問題があれば% tail -f /var/log/mail.log
してログを確認しましょう。
二段階認証を使ってる場合はアプリパスワードを発行してそれを上記のパスワードに入力してください。
2012/06/05追記:Lionでも同じでOKでした。
2013/05/02追記:Mountain Lionでも同じでOKでした。
2014/03/11追記:Mavericksでも同じでOKでした。(by tagawaさん)
2015/06/04追記:Yosemiteではmain.cfに一行追加する必要がありました。あとは同じ。
2017/07/25追記:Sierraでも動きますが、Googleから「安全性の低いアプリのログインをブロックしました」として弾かれてしまいます。Googleのアカウント設定で「安全性の低いアプリのログインを許可」すればOKです。(推奨できませんが)