pandazx's blog

データ分析など雑多な技術ブログ

herokuでGmailをSMTPとして使う場合の注意

GmailSMTPとして使ってメール送信していると、
そのうち、メールが送れなくなる。

Gmailを見ると「不正なログインをブロックしました」というメールが届いている。
アクセス元はamazonaws

herokuはEC2上で動いているので、AWSからアクセスがあると認識されます。

これを解除するには、Gmailを一度、ログアウトして再ログインすると
不正メールの確認ポップアップが表示されます。

後はナビゲーションに従い、次へ進んでいき、
10分以内に再度、アクセスが成功したアクセス元については
今後のアクセスを許可します、という状態になるので、
急いでherokuからメールを再送信。

これでエラーがなくなります。

注意

herokuは使っているとIPアドレスが変わることがあります。
その場合、上記のエラーが再発するので、再度、同じ操作をする必要があります。
以下のページで説明のあるheroku addonのSendGridを使った方がいいかもしれない。
HerokuのRailsアプリからメールを送信するには? - QA@IT