2015年1月16日金曜日

PostfixからGmailを経由してメールを送信

http://www.flickr.com/photos/liwyatan/4646929539

特に何も設定していないPostfixから、Gmailなどにメールを送信するとスパム扱いをされてリジェクトされることがよくあります。
例えば以下の様なエラーを返してくることがあります。
Our system has detected 550-5.7.1 that this message is likely unsolicited mail. 
To reduce the amount of 550-5.7.1 spam sent to Gmail, this message has been blocked. 
Please visit 550-5.7.1 http://support.google.com/mail/bin/answer.py?hl=en&answer=188131 for 550 5.7.1 more information. 

これを回避するために、PostfixからGmailを経由してメールを送信することで、スパム扱いを避ける事ができます。
※ 大量メール送信はできないので注意

まず、メール送信用のGmailのアカウントを用意してください。
以下のアカウントを作ったとします。
メールアドレス:xxxxxx@gmail.com
パスワード:your_password

次に、サーバ側の設定をします。
必須ライブラリをインストール
# yum -y install postfix cyrus-sasl-plain cyrus-sasl-md5

postfixの設定ファイルに追記
# emacs /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_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_tls_CApath = /etc/ssl/certs/ca-certificates.crt
inet_protocols = ipv4

メール送信用Gmailのメールアドレスとパスワードを設定ファイルに記述
# emacs /etc/postfix/sasl_passwd
[smtp.gmail.com]:587    xxxxxx@gmail.com:your_password

ハッシュファイル作成
# postmap /etc/postfix/sasl_passwd
# file /etc/postfix/sasl_passwd.db
/etc/postfix/sasl_passwd.db: Berkeley DB (Hash, version 9, native byte-order)

Postfixをリスタート
# service postfix restart

テストメールを送信
# mail you@gmail.com

メールのログを確認
# tail -f /var/log/maillog
Jan 16 02:31:09 hostname postfix/pickup[24996]: 4E97060352: uid=0 from=
Jan 16 02:31:09 hostname postfix/cleanup[25005]: 4E97060352: message-id=<20150116023109.4E97060352@hostname.localdomain>
Jan 16 02:31:09 hostname postfix/qmgr[24997]: 4E97060352: from=, size=472, nrcpt=1 (queue active)
Jan 16 02:31:13 hostname postfix/smtp[25001]: 4E97060352: to=, relay=smtp.gmail.com[74.125.203.109]:587, delay=4, delays=0.05/0/1.7/2.2, dsn=2.0.0, status=sent (250 2.0.0 OK 1421375473 mr4sm2574221pdb.63 - gsmtp)
Jan 16 02:31:13 hostname postfix/qmgr[24997]: 4E97060352: removed

メールボックスにメールは届いたでしょうか?
Enjoy!