如何使用Python发送邮件

Yur*_*ura 6 python gmail python-3.x

我想用python发送一个简单的邮件

import smtplib

server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login("mymail@gmail.com", "mypassword")

msg = "Hello world"
server.sendmail("mymail@gmail.com", "mymail@gmail.com", msg)
server.quit()
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

server.login("user@gmail.com", "psw")

File "C:\Python\lib\smtplib.py", line 652, in login

raise SMTPAuthenticationError(code, resp)

smtplib.SMTPAuthenticationError: (534, b'5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbuxb\n5.7.14 4i2u8qU8V3jgf6uGv8da1RAGPJyctRvIFy_kjai6aKVx_B6qVhoz_dzFpvfPC18H-jeM6K\n5.7.14 cnm2HVuq-wr-uw59hD31ms-cxMmnZuq6Z3_liDaDmu8_UqaiUwR4FUiuX2i5pPdQjJzFvv\n5.7.14 4VrEF5XT4ol2iN17gnB_jITpwzsjH9Ox3NCNcfl7SriHr5m7esc15PWI0CG_2CTlyh7RxW\n5.7.14 XhoJPajs8GMd-khOQWUqucywfrfo> Please log in via your web browser and\n5.7.14 then try again.\n5.7.14 Learn more at\n5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754 ef10sm13614207wjd.49 - gsmtp')
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

谢谢

Wil*_*opp 7

好像你需要谷歌称之为应用密码的东西.

基本上,您生成一个16位数的密码,这是您的应用程序所独有的.您在python程序中输入此特定密码,而不是您经常用于登录Google帐户的密码.

这使您仍然可以享受两步验证的好处,同时还可以使用第三方应用程序,例如您自己的python程序.

以下是Google有关如何生成此类应用密码的说明:https: //support.google.com/accounts/answer/185833?hl = zh-CN