2019年10月22日火曜日

pythonでgmail送信しようとしたらエラーになった時の解決法

pythonでgmail送信しようとしたら以下のエラー
安全性の低いアプリにアクセスを許可はした上での話)

Traceback (most recent call last):
  File "download.py", line 104, in <module>
    server.login(gmail_sender, gmail_passwd)
  File "/usr/lib/python3.5/smtplib.py", line 729, in login
    raise last_exception
  File "/usr/lib/python3.5/smtplib.py", line 720, in login
    initial_response_ok=initial_response_ok)
  File "/usr/lib/python3.5/smtplib.py", line 641, in auth
    raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (534, b'5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbt_\n5.7.14 1TfgA(長い記号省略)nsTXZesh\n5.7.14 jLEc(長い記号省略)Llj5X> Please\n5.7.14 log in via your web browser and then try again.\n5.7.14  Learn more at\n5.7.14  https://support.google.com/mail/answer/78754 v70sm6213601vkv.6 - gsmtp')


原因:見慣れないログインをgmail側が気を利かせて弾いている
解決策:該当のアカウントにログインしたら「変なアクセスをブロックしました(意訳)」という赤いアラートが出ているので、それをクリックして「大丈夫(意訳)」と回答。
これで行けるようになる。
※正確な文言は忘れたので意訳