LoginSignup
11
16

More than 3 years have passed since last update.

Gmail(SMTP)経由でメール送信する

Posted at

記事の主旨

GmailのSMTP利用する際には、

  • Googleアカウントのセキュリティ設定を忘れず、済ましておいてくださいね
  • 「安全性の低いアプリの許可」に逃げず、「二段階認証/アプリパスワード」を使いましょう

というだけの記事です。

SMTP Error: Could not authenticate.
エラーにつまった人向けの備忘録です。

メール送信のサンプルコード

Googleアカウント作成〜メール送信に成功するまで

Googleセキュリティ設定を意識せずに、作業をした場合に起こること・対処方法です。

Googleアカウントを作成する。

  • ID : サンプルコード内のfrom@gmail.com
  • PW : アカウントのマスタパスワード
(point)作成段階のデフォルト設定では、セキュリティ上、SMTPエラー(アクセス不可)になってます。

サンプルコードで、テスト送信してみる。が、あえなくエラー発生。

以下を実行しても

## ID / PW を作成したアカウント情報に書き換えて、以下を実行
$ php test_sendmail.php

エラーが発生する。

2019-12-09 08:30:35     SERVER -> CLIENT: 535-5.7.8 Username and Password not accepted. Learn more at
                                          535 5.7.8  https://support.google.com/mail/?p=BadCredentials o15sm24713268pgf.2 - gsmtp
2019-12-09 08:30:35     SMTP ERROR: Password command failed: 535-5.7.8 Username and Password not accepted. Learn more at
                                          535 5.7.8  https://support.google.com/mail/?p=BadCredentials o15sm24713268pgf.2 - gsmtp
2019-12-09 08:30:35     SMTP Error: Could not authenticate.
2019-12-09 08:30:35     CLIENT -> SERVER: QUIT
2019-12-09 08:30:35     SERVER -> CLIENT: 221 2.0.0 closing connection o15sm24713268pgf.2 - gsmtp
2019-12-09 08:30:35     SMTP Error: Could not authenticate.
PHP Fatal error:  Uncaught PHPMailer\PHPMailer\Exception: SMTP Error: Could not authenticate. in /home/ec2-user/tests/vendor/phpmailer/phpmailer/src/PHPMailer.php:2019

https://support.google.com/mail/?p=BadCredentialsを見て頓挫する。。人は続きを読んでください。

通信が届いていることを確認する。

問題なし。(まぁ、ログ上でも到達できているので、当たり前ですが一応。)
```
$ telnet smtp.gmail.com 587

Trying 74.125.23.108...
Connected to smtp.gmail.com.
Escape character is '^]'.
220 smtp.gmail.com ESMTP g191sm26005183pfb.19 - gsmtp
```

Googleアカウント側(Gmail)を確認する。

以下のようなメールが届く。
(メール届いてない方は、純粋に ID/PW間違いを疑ってください。)
¥スクリーンショット 2019-12-09 17.40.12.png

*非推奨*Google側のアクセス許可を"有効"にする。

https://support.google.com/mail/?p=BadCredentials
に習って、

スクリーンショット 2019-12-09 17.44.21.png

を"有効"にして、再度テスト送信する。
→無事にメールが受信できた。けど!!この方法は、非推奨なので、次の項までやってくださいね。

Google側の二段階認証を有効にし、アプリパスワードを発行する。

注意) 安全性の低いアプリの許可を"無効"に戻すことは忘れないように。

https://blog.saboh.net/smtpgmailcom/
上記サイトが大変分かりやすいので、参考にしてください。

## PWを発行した「アプリパスワード」に書き換えて、以下を実行
$ php test_sendmail.php

→無事にメールが受信できた。お疲れ様でした。

11
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
16