パスワードを忘れたユーザのために電子メールを用いたパスワード機能を実装したい.このために,Web システムから電子メールを送信する設定を行う.今回は Gmail から送信することを考えます.
Gmail は標準でセキュリティ設定がされており,Python Django 等の外部システムからのメール送信は拒否されています.2022年5月までは,送信元のアカウントでログインし,「Google アカウント」の「ログインとセキュリティ」で「安全性の低いアクセスの無効化」を解除しておくことでログインパスワードを使ってメールの送信ができていました.しかしこの機能は2022年5月30日で利用できなくなりました.よって Python Django からメール送信ができるようにするためにはこのページの手順に従って2段階認証を有効にし,さらにアプリパスワードを設定しなければなりません.なお,2段階認証を設定するためには電話番号が必要で,1つの電話番号で認証可能な Google アカウントには上限(5個程度?)があるようです.
また,Gmail 以外のメールを利用し,SMTP とパスワードで送信できる環境であれば次のページに進んでください.
まず,Google にログインして,画面右上の「Googleアカウント」アイコンをクリックし,「Googleアカウントの管理」を開く.さらに,「セキュリティ」のページを開くと「Googleへのログイン」の項目が表示される.「2段階認証プロセス」がオフになっているので,これをオンする手続きを行う.
次のような画面になるので,内容を確認し「使ってみる」をクリックする.
パスワードを入力して「次へ」をクリックする.
再設定用の電話番号が登録されていたら,その番号が表示される.スマートフォンの正しい番号であることを確認する.さらに,コードの取得方法は「テキスト メッセージ」を選択し,「次へ」をクリックする.
スマートフォンの SMS に Google 確認コードが含まれたテキストメッセージが届くので,その確認コードを入力する.
2段階認証プロセスを有効にする.
2段階認証プロセスが有効になった.これによって新たなブラウザや PC で Google にログインするときには,パスワードだけでなく,スマートフォンの SMS に届く確認コードも必要になる.
Google の2段階認証が設定されたので,Django からメールを送信するためにアプリパスワードを設定する.
Google にログインして,画面右上の「Google アカウント」アイコンをクリックし,「Google アカウントの管理」を開く.さらに,「セキュリティ」のページを開くと「Google へのログイン」の項目が表示される.「2段階認証プロセス」がオンになっており,アプリパスワードが「なし」になっていることを確認して,アプリパスワードを作成する.
本人確認のために,パスワードの入力が求められる.
アプリパスワードを作成する.まず,「アプリを選択」で「メール」を選ぶ.
「デバイス選択」は「その他(名前を入力)」を選ぶ.
適当な名前を付ければよいが,ここでは「Vagrant」としておく.その後「生成」ボタンをクリックする.
これにより,16文字のアプリパスワードが生成されたので,これをメモ(コピー)します.その後「完了」をクリックします.
アプリパスワードが生成されたことが確認できました.
次のページではいま取得したアプリパスワードを使って Django からメール送信する設定と実験を行います.