Gmailにメールを送る

意外と面倒だったのでメモ。以下、FreeBSD向け。

まず、FreeBSDのportでそのままコンパイルするとtlsやsaslが無効になっているので、smtp.gmail.comとSTARTTLSができずに失敗する。なので、Makefileを覗いてそれらしいコンパイルオプションをつけてあげる。

$ pwd
/usr/port/mail/postfix
$ sudo make -DWITH_TLS -DWITH_SASL2
$ sudo make install

/usr/local/etc/postfix/main.cfに以下を追加。

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

/usr/local/etc/postfix/sasl_passwdを作成して以下を記述。

[smtp.gmail.com]:587 hogeuser@gmail.com:hogepasswd

postmapでdb化。

$ postmap /usr/local/etc/postfix/sasl_passwd
$ ls -ltr /usr/local/etc/postfix/sasl_passwd*
-rw-r--r--  1 root  wheel     53  6  4 23:31 /usr/local/etc/postfix/sasl_passwd
-rw-r--r--  1 root  wheel  16384  6  4 23:31 /usr/local/etc/postfix/sasl_passwd.db

postfixをstartするなりreloadするなり。