エラーが表示される
https://qiita.com/okhrn/items/630a87ce1a44778bbeb1
を参考にしましたが、
というエラーが表示されたり、「重大なセキュリティ通知」という件名のメールが届いたりして送信できていませんでした。
エラーに記述されているURLを見たところ
- アプリ パスワードを使用する: 2 段階認証プロセスを使用している場合は、アプリ パスワードを使ってログインしてみます。
- 安全性の低いアプリを許可する: 2 段階認証プロセスを使用していない場合は、安全性の低いアプリがアカウントにアクセスすることを許可します。
とあります。
解決策
これを踏まえて、解決策は以下の2通りあります。
- アプリパスワードを使用する場合(推奨)
- 安全性の低いアプリを許可する場合
セキュリティ的に前者が推奨されます。
アプリパスワードを使用する場合
アプリパスワードとは、今回のPythonによるメールの送信のように、アプリが使用するためだけのパスワードで、googleアカウントのパスワードとは別のものとなります。
アプリパスワードを作るには2段階認証を設定する必要があります。
手順1:googleアカウントにログインした後
https://myaccount.google.com/security
を開きます。
手順2:「2段階認証プロセス」の設定
「2段階認証プロセス」をクリックします。
以降は表示に従って進めていきます。
設定が終わったら、「2段階認証プロセス」がオフからオンになっているか確認します。
手順3:「アプリパスワード」の生成
「アプリパスワード」をクリックします。
①「アプリを選択」のプルダウンで「メール」を
②「デバイス選択」のプルダウンで各自使用しているデバイスを選択します。
※適当に選択しても使えますが、自分がどのパスワードを使っているか判別するために、適切に設定してあげます。
③「生成ボタン」が押せるようになるのでクリック
生成されたパスワードが表示されるので、そのパスワードでもって、Pythonファイルを実行するとメール送信できます。
安全性の低いアプリを許可する場合
こちらは、手順が短く済みますが、googleアカウントのパスワードと同じものをPythonファイルに記述することになるので、パスワードが盗難された場合のリスクが高まります。できれば、前者のアプリパスワードを使うようにしましょう。
手順1:googleアカウントにログインした後
https://myaccount.google.com/security
を開きます。
手順2:「安全性の低いアプリのアクセス」からアクセスを有効にします
数分後には、Pythonファイルを実行するとエラー表示されずにメール送信できるようになっています。