MacのマシンからPostfixでGmailに送信できるようにする
開発マシンからGmailにメールが届かなくなっていた
ローカルの開発用マシン(うちの場合はMac OS X)からGmailにメールを送信できなくなっていました。
/var/log/mail.log のメールログを見てみると、
The IP you’re using to send mail is not authorized 550-5.7.1 to send email directly to our servers. Please use the SMTP 550-5.7.1 relay at your service provider instead. Learn more at 550 5.7.1 http://mail.google.com/support/bin/answer.py?answer=10336
ふむ。SMTP 550-5.7.1 ってなんだろう。とりあえず指定されてるURLを見てみる。
» ‘The IP you’re using to send email is not authorized…’ – Help Center
In order to prevent spam, Gmail refuses mail when the sending IP address does not match the sending domain. To send mail from your server to Gmail, we suggest using the SMTP relay provided by your ISP. Please note that we are unable to whitelist IP addresses or otherwise make exceptions at this time.
スパム除けのために送信ドメインと送信IPアドレスが一致しないものは拒否していると。なので使ってるISPのSMTPサーバーをリレーしてくださいと。
ドメインが一致しないってことは開発用に適当に設定しているFromアドレスがだめなのかなと思って、メールヘッダに設定しているFromアドレスを有効なものに変更してみたが結果は同じ。
なのでSMTPサーバーのリレー設定をする。
Postfixの設定
うちのMacはPostfixでメール送信しているようなので色々調べてみると /etc/postfix/main.cf に次のような記述を追加するといいらしい。
relayhost = [smtp.xxx.ocn.ne.jp]
↑ プロバイダのSMTPサーバを指定
これで再度試してみる。まだエラー。
… said: 450 <xxx@xxx-macbook-air.local>: Sender address rejected: Domain not found (in reply to RCPT TO command))
エラーメッセージが変わった。送信元のアドレスのドメインがだめと言われた。確かに macbook-air.local になってるねw
ということで /etc/postfix/main.cf にmyhostnameを設定する。
myhostname = xxx.ocn.ne.jp
とりあえずISPのメールアドレスのドメインを設定してみる。再度メール送信を実行。
…said: 550 Error: Invalid From: Address (in reply to end of DATA command))
またエラーメッセージが変わった。ここでFromアドレスを有効なものにすればいいのか。アプリケーションのほうで設定を変更。再度メール送信を実行。
Gmailにメールが届いた!
まとめ
というわけで最低限必要な設定は、
- /etc/postfix/main.cf に relayhost を設定
- /etc/postfix/main.cf に myhostname を設定
- Fromアドレスを有効なものにする
ちなみにFromアドレスの変更については main.cf に sender_canonical_maps を設定することでも可能。
/etc/postfix/main.cf に
sender_canonical_maps = hash:/etc/postfix/sender_canonical
と記述し、 /etc/postfix/sender_canonical にマッピングを設定。
# 変更前のアドレス 変更後のアドレス xxx@xxx.xxx yyy@example.com
保存したら以下のコマンドでマッピングデータベースを作成する。
$ cd /etc/postfix $ sudo postmap sender_canonical
これで /etc/postfix/sender_canonical.db が作成され、送信されるメールのFromアドレスを変更できる。
コメントを残す