GmailでSMTP送信できない！アプリパスワードで設定した？

# メールフォームからメールが届かない
あるWEBサイトがありました。そのサイトには問い合わせフォームがついています。
問い合わせフォームはGmailを経由してメール送信する仕組みになっているはず、とのこと。
ただ、メールが届かない、とのこと...

# エラーログ：Auth failed: 535 5.7.8 not accepted

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/d44ffaf3-1305-af48-bdcb-72c55fc972ee.png)

サーバーのエラーログを確認したところ...

> AH01215: Auth failed: 535 5.7.8 Username and Password not accepted. Learn more at: 〜

認証エラーが発生していますね...

# GmailのSMTP設定を確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/530239ec-03a6-d804-9fc4-13a7ad1bd361.png)

Gmailの要件はこちら：[他のメール プラットフォームで Gmail のメールをチェックする](https://support.google.com/mail/answer/7126229)

クライアントからGoogleアカウント情報を共有してもらってチェック。
でも、WEBサイト側の設定はちゃんとできてるみたい...

# 「安全性の低いアプリ」をON
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/533d59ab-3b7a-80ba-ca84-23deabea2a91.png)

色々と「Gmailで送信できない」でググってると
**Googleアカウントの管理 > セキュリティ > 安全性の低いアプリ** をONにしてみて
という記事が散見。

「あぁ...そんなのあったなぁ...」と、その通りにしようとすると...

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/f872712d-6fb5-6eac-b669-4e5c75dbdd63.png)

> この設定は使用できません。

ええええっっっっっっ！？

とりあえず[**詳細**](https://support.google.com/accounts/answer/6010255)をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/bb683394-b137-5652-a64c-a2aed657982b.png)

> アカウントを安全に保つため、2022 年 5 月 30 日より、Google は、ユーザー名とパスワードのみで Google アカウントにログインするサードパーティ製のアプリとデバイスについてサポートを終了いたします。
> （[安全性の低いアプリと Google アカウント](https://support.google.com/accounts/answer/6010255)より）

ええええっっっっっっ！？

**安全性の低いアプリ**は、もう使えないんですって...知らなかった...

何とかならんもんかと、さらに色々と調べると...

# 「アプリ パスワードでログイン」してね

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/5e6addd5-f19e-bcf7-82b6-4af2d65aadd3.png)

> アプリ パスワードとは、安全性の低いアプリやデバイスに Google アカウントへのアクセスを許可する 16 桁のパスコードです。アプリ パスワードは 2 段階認証プロセスを有効にしているアカウントでのみ使用できます。
>  （[アプリ パスワードでログインする](https://support.google.com/mail/answer/185833)より）

どうやら（推奨はしないけど）**アプリパスワード**を使うと、**安全性の低いアプリON**に近いことができるみたい

ただし、注意点は「<font color="red">アプリ パスワードは 2 段階認証プロセスを有効にしているアカウントでのみ使用できます</font>」というところ。クライアントのGoogleアカウントへ2段階認証を勝手に設定するわけにはいかないので、とりあえずプライベートなGoogleアカウントで設定してみました

# アプリ パスワード の設定のながれ
## 2 段階認証プロセス の有効化
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/feb985a1-22a4-927b-ae55-c668704f9802.png)

**Googleアカウントの管理 > セキュリティ > 2段階認証プロセス** から設定してください。
ヘルプ：[2 段階認証プロセスを有効にする](https://support.google.com/accounts/answer/185839)

## アプリパスワードの設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/0fb88e63-1f6f-ed98-4ba4-0edee65070c8.png)

（2 段階認証プロセスが有効な状態で）
**Googleアカウントの管理 > セキュリティ > アプリパスワード**　をクリック

（2 段階認証プロセスが無効な場合、**アプリパスワード**の項目は表示されません）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/b9c2279c-07e9-9b0a-ef7d-7ae9cf6c4204.png)

プルダウンの**アプリを選択**では「メール」を、**デバイスを選択**では「その他（名前を入力）」を選択。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/6cef8b24-6948-8a5a-2e14-b7edae9cca64.png)

すると、名前の入力が求められます。なんでも結構です。覚えやすい名前で...

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/3713f8c5-2d50-3b9c-371c-b921682f00c9.png)

**生成**するとパスワードが表示されます。
<font color="red">パスワードの表示は、この１回こっきり</font>です。確実にコピーしておきましょう。
もし、表示を閉じてしまいパスワードが分からなくなったら、作ったパスワードは破棄して、新たに作り直しです。

# アプリパスワードの使い方
本件は、WEBサイトの問い合わせフォームで、メール送信にGmailを使いたい、という内容です。
その場合は...

| - | 入力内容 |
|:-:|:-:|
| 送信メール（SMTP）サーバー | smtp.gmail.com |
| ポート | 587 |
| アカウント名 | 〜@gmail.com |
| パスワード | **<font color="red">アプリパスワード</font>** |

上記の内容で設定してください。
つまり、`パスワード`項目へは、**アプリパスワード**で生成したパスワードを入力する、ということです。

これで、WEBフォームからGmailでSMTP送信して、クライアントがちゃんとメール受信できるようになりました。