これまでGmail経由でメールを送ろうと思ったら、smtp.gmail.comに接続してGmailのアカウントとパスワードで接続すればよかったのですが、Gmailのセキュリティが厳しくなったようで急にメールが送れなくなってしまいました。
原因を調べたところ、Gmailに2段階認証を設定していると外部からのSMTP接続できなくなるようです。
2段階認証を利用継続しながらSMTP接続するためには以下の設定が必要になります。
- アプリパスワードを生成する
- SMTP接続元でアプリパスワードを設定する
アプリパスワードを生成する
以下のサイトを参考にGmailのアカウント管理画面でアプリパスワードを生成してください。
SMTP接続元でアプリパスワードを設定する
私の場合はLaravelを稼働させているサーバからSMTP接続していたので.envファイル内に以下の設定を行いました。
.env
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=[Gmailで使っているメールアドレス]
MAIL_PASSWORD="[生成したアプリパスワード]"
MAIL_ENCRYPTION=ssl
補足
後日、今度はテストサーバではSSL証明書に関するエラーも発生したので、その場合は以下の対応も必要になりそうです。
まとめ
Gmailをメールサーバとして利用する場合は、こうしたGoogleアカウント設定の影響を受けることは気にしておく必要がありそうですね。