メール送信プログラムでGmailメールサーバーを利用する場合の注意事項
【前提】
メール送信プログラムはコーディングされているものとする。
※メール送信プログラムは、それぞれプログラミング言語によって書き方が違うため。
【本題】
Gmailのメールサーバーを利用してメール送信プログラムを作成する際、
Gmaileのセキュリティが強化されているため素直にできないため注意が必要です。
何も考えずに作ると、どんなプログラムも「安全性の低いアプリ」と判断され、
Googleに認証ブロックされ、メール送信失敗します。
そして、Gmailには以下のようなメールが飛んできます。
これに対する対策は大きく2つあります。
今回はそれぞれの対策に合わせた解決方法を記載します。
対策1:安全性の低いアプリからのログインを許可させる。
対策2:安全性の高いアプリ扱いにする。(推奨)
対策2:安全性の高いアプリ扱いにする。(推奨)
【対策1】
安全性の低いアプリからのログインを許可させる。
これは、セキュリティリスクを受け入れる為、安易な対策ですが、簡単に対応できます。
Googleにログインする。
↓
Gmailアカウントページを開く。
(右上の名前をクリックし、Googleアカウントボタンをクリック)
↓
[ログインとセキュリティ]を選択し、[アカウントにアクセスできるアプリ]のメニューから、
『安全性の低いアプリの許可:無効』を有効に変更する。
※これは、2段階認証プロセスが無効でなければ存在しないメニューです。
以上!これで、メール送信プログラムを実行してみてください。
プログラムに問題がなければ、この時点でGmailメールサーバーを利用してメール送信成功します。
↓
Gmailアカウントページを開く。
(右上の名前をクリックし、Googleアカウントボタンをクリック)
↓
[ログインとセキュリティ]を選択し、[アカウントにアクセスできるアプリ]のメニューから、
『安全性の低いアプリの許可:無効』を有効に変更する。
※これは、2段階認証プロセスが無効でなければ存在しないメニューです。
以上!これで、メール送信プログラムを実行してみてください。
プログラムに問題がなければ、この時点でGmailメールサーバーを利用してメール送信成功します。
【対策2】
安全性の高いアプリ扱いにする。
まずはメール送信プログラムを動かす環境のセキュリティを出来る限り(ウィルス対策やパスワード保護・セキュリティパッチの適用など)高めてください。
その後、以下の対応を取ってください。
Googleにログインする。
↓
Gmailアカウントページを開く。
(右上の名前をクリックし、Googleアカウントボタンをクリック)
↓
[ログインとセキュリティ]を選択し、[Googleのログイン]のメニューから、
『2段階認証プロセス:無効』を有効にする。
※有効にするにあたってスマホなどの電話番号が必要です。
認証コードをスマホに送って、
本当にジャックされていないか確認する手段だそうです。
電話番号を入力し認証キー(6桁の数字)を入力して有効にする。
↓
その後、[Googleのログイン]のメニューを見直すと
『アプリパスワード』というメニューが出てくるので選択する。
↓
アプリを選択「メール」、端末を選択「Windowsパソコン」生成ボタンをクリックする。
※私は、Windowsパソコンでメール送信プログラムを作成しているため。
↓
発行されたパスワードをコピーして保存する。
以上!後は、メール送信プログラムのSMTPサーバー接続用の認証設定を更新すればいいだけです。
Gmailログイン時のパスワードじゃなくて、発行されたアプリパスワードを指定する感じです。
そして、メール送信プログラムを実行してみてください。
プログラムに問題がなければ、この時点でGmailメールサーバーを利用してメール送信成功します。
また、発行されたアプリパスワードを使ってログインすると、認証された時刻が確認できます。
↓
Gmailアカウントページを開く。
(右上の名前をクリックし、Googleアカウントボタンをクリック)
↓
[ログインとセキュリティ]を選択し、[Googleのログイン]のメニューから、
『2段階認証プロセス:無効』を有効にする。
※有効にするにあたってスマホなどの電話番号が必要です。
認証コードをスマホに送って、
本当にジャックされていないか確認する手段だそうです。
電話番号を入力し認証キー(6桁の数字)を入力して有効にする。
↓
その後、[Googleのログイン]のメニューを見直すと
『アプリパスワード』というメニューが出てくるので選択する。
↓
アプリを選択「メール」、端末を選択「Windowsパソコン」生成ボタンをクリックする。
※私は、Windowsパソコンでメール送信プログラムを作成しているため。
↓
発行されたパスワードをコピーして保存する。
以上!後は、メール送信プログラムのSMTPサーバー接続用の認証設定を更新すればいいだけです。
Gmailログイン時のパスワードじゃなくて、発行されたアプリパスワードを指定する感じです。
そして、メール送信プログラムを実行してみてください。
プログラムに問題がなければ、この時点でGmailメールサーバーを利用してメール送信成功します。
また、発行されたアプリパスワードを使ってログインすると、認証された時刻が確認できます。
なお、リスクと上に記載しましたが、どちらにしても
Gmail送信メールプログラムの認証部分をGitHubなどを通じて、間違ってネット上に公開してしまった時はアウトです。
自業自得ですが、早急なパスワード変更をするべきですね。
以上です、ではでは!
この記事へのコメント
コメントはまだありません。