PythonでSMTPを用いてGmailのメールを送信するときに必要な「アカウント」と「パスワード」の準備方法を説明します。
Pythonからメールを送信するには、プログラムからGmailにログインします。その時に今回準備した「アカウント」と「パスワード(アプリパスワード)」を用います。
2段階認証がオフの場合は送信できなくなりました
以前は、Googleのアカウントの設定で「2段階認証」をオフにしていても、「安全性の低いアプリのアクセス」をオンにすれば、PythonからSMTPでメールを送信できました。しかし、2022年5月30日のGoogleの更新 により「安全性の低いアプリのアクセス」の設定が廃止されたため、今後は「2段階認証」をオンにしてアプリパスワードを使用する方法のみとなります。
Gmailアカウントの準備
Gmailアカウントをお持ちでない場合は、以下のグーグルのサイトからアカウントの作成をお願い致します。
パスワードの準備(アプリパスワード)
PythonからSMTPを用いてGmailを送信するには、「2段階認証」をオンにして、アプリパスワードを取得する必要があります。
・アプリパスワードの取得方法
以下の手順で「アプリパスワード」を取得します。グーグルのサイト でも方法を確認できます。
- まずGoogleアカウント にログインしてください。
- 左側のナビゲーションからセキュリティを選択してください。
- まだ2段階認証をオンにしていない場合は、[Googleへのログイン]のところにある[2段階認証プロセス]をオンにして、画面の手順にしたがって設定してください。
- つぎに以下のGoogleのページにアクセスして「アプリ パスワードを作成、管理する」をクリックしてください。再度認証が必要になる場合があるので、指示に従って進めてください。
https://support.google.com/accounts/answer/185833?hl=ja
2024.09.13更新
以前はGogleアカウントの設定画面からアプリパスワードを設定できましたが、設定画面が見当たらなくなったので、上記のようにGoogleのヘルプのリンクからアクセスするようにしました。
- すると以下の画面が表示されるので、アプリを選択のプルダウンメニューからその他(名前を入力)を選択してください。
- 「python」等の分かりやすい名前を入力して、生成ボタンをクリックしてください。
- しばらく待つと生成された16文字のアプリパスワードが以下のように表示されます。このパスワードは再表示できませんので、コピーしてメモ帳などにペーストしてください。
右下の完了をクリックすると、以下のようにアプリパスワードが登録されたのを確認できます。使わなくなった場合は、ゴミ箱のアイコンをクリックして削除できます。
・2段階認証を「オフ」にしている場合[廃止]
2段階認証をOFFにしている場合は、「アカウントのパスワード」をそのまま使用できますが、アカウントの設定で「安全性の低いアプリのアクセス」をONにする必要があります。
設定するには、まずGoogle アカウントにログイン して、以下のようにセキュリティにある安全性の低いアプリのアクセスのアクセスを有効にする(非推奨)をクリックしてください。
以下の画面が表示されるので、つまみをON(有効)に切り替えます。
安全性の低いアプリのアクセスの表示について
「安全性の低いアプリのアクセス」の部分は、2段階認証をONにしていると表示されません。
Gmailが諸事情で使用できない場合
企業によってはGmailの使用を社内で制限していることがあります。そのような場合は、マイクロソフトのOutlookオンラインをお試しください。アカウントは以下のサイトで取得できます。
Outlookオンラインを使用する場合は、講座テキストのSMTPサーバへの接続の箇所は以下のように読み替えてください。
server = smtplib.SMTP("smtp-mail.outlook.com", 587)
既にOffice365でOutlookをお使いの場合は、そのアカウントを使用することもできます。その場合は、以下のように読み替えてください。
server = smtplib.SMTP("smtp.office365.com", 587)
なお、2段階認証が設定されている場合は、Gmail同様に「アプリパスワード」を取得する必要があります。以下のサイトの下の方の「別のアプリパスワードを作成するには」のところを参照してください。