PythonでSMTPを用いてGmailのメールを送信するときに必要なアカウント」と「パスワード」の準備方法を説明します。

Pythonからメールを送信するには、プログラムからGmailにログインします。その時に今回準備した「アカウント」と「パスワード(アプリパスワード)」を用います。

2段階認証がオフの場合は送信できなくなりました

以前は、Googleのアカウントの設定で「2段階認証」をオフにしていても、「安全性の低いアプリのアクセス」オンにすれば、PythonからSMTPでメールを送信できました。しかし、2022年5月30日のGoogleの更新 により「安全性の低いアプリのアクセス」の設定が廃止されたため、今後は「2段階認証」をオンにしてアプリパスワードを使用する方法のみとなります。

Gmailアカウントの準備

Gmailアカウントをお持ちでない場合は、以下のグーグルのサイトからアカウントの作成をお願い致します。

Gmailアカウントの作成(グーグル)

パスワードの準備(アプリパスワード)

PythonからSMTPを用いてGmailを送信するには、「2段階認証」をオンにして、アプリパスワードを取得する必要があります。

・アプリパスワードの取得方法

以下の手順でアプリパスワード」を取得します。グーグルのサイト でも方法を確認できます。

  1. まずGoogleアカウント にログインしてください。
  2. 左側のナビゲーションからセキュリティを選択してください。
  3. まだ2段階認証をオンにしていない場合は、[Googleへのログイン]のところにある[2段階認証プロセス]をオンにして、画面の手順にしたがって設定してください。
  4. つぎに以下のGoogleのページにアクセスして「アプリ パスワードを作成、管理する」をクリックしてください。再度認証が必要になる場合があるので、指示に従って進めてください。

    https://support.google.com/accounts/answer/185833?hl=ja

    gmail security

    2024.09.13更新

    以前はGogleアカウントの設定画面からアプリパスワードを設定できましたが、設定画面が見当たらなくなったので、上記のようにGoogleのヘルプのリンクからアクセスするようにしました。

  5. すると以下の画面が表示されるので、アプリを選択のプルダウンメニューからその他(名前を入力)を選択してください。
  6. gmail gen pass 1

  7. 「python」等の分かりやすい名前を入力して、生成ボタンをクリックしてください。
  8. gmail gen pass 2

  9. しばらく待つと生成された16文字のアプリパスワードが以下のように表示されます。このパスワードは再表示できませんので、コピーしてメモ帳などにペーストしてください。
  10. gmail gen pass 3

    生成したアプリパスワードは再度確認できません。Pythonのメール送信のプログラミングで使用しますので、メモ帳などにペーストして控えておいてください

    右下の完了をクリックすると、以下のようにアプリパスワードが登録されたのを確認できます。使わなくなった場合は、ゴミ箱のアイコンをクリックして削除できます。

    gmail gen pass 3

2段階認証を「オフ」にしている場合[廃止]

「安全性の低いアプリのアクセス」の設定が廃止されたため、この方法は使用できなくなりました。

2段階認証をOFFにしている場合は、「アカウントのパスワード」をそのまま使用できますが、アカウントの設定で「安全性の低いアプリのアクセス」をONにする必要があります。

設定するには、まずGoogle アカウントにログイン して、以下のようにセキュリティにある安全性の低いアプリのアクセスアクセスを有効にする(非推奨)をクリックしてください。

app allow

以下の画面が表示されるので、つまみをON(有効)に切り替えます。

app allow 2

安全性の低いアプリのアクセスの表示について

「安全性の低いアプリのアクセス」の部分は、2段階認証をONにしていると表示されません。

Gmailが諸事情で使用できない場合

企業によってはGmailの使用を社内で制限していることがあります。そのような場合は、マイクロソフトのOutlookオンラインをお試しください。アカウントは以下のサイトで取得できます。

Microsoftアカウントの作成

Outlookオンラインを使用する場合は、講座テキストのSMTPサーバへの接続の箇所は以下のように読み替えてください。

server = smtplib.SMTP("smtp-mail.outlook.com", 587)

既にOffice365でOutlookをお使いの場合は、そのアカウントを使用することもできます。その場合は、以下のように読み替えてください。

server = smtplib.SMTP("smtp.office365.com", 587)

なお、2段階認証が設定されている場合は、Gmail同様に「アプリパスワード」を取得する必要があります。以下のサイトの下の方の「別のアプリパスワードを作成するには」のところを参照してください。

アプリパスワードの取得方法(Outlookオンラインの場合)