无法使用SMTP发送电子邮件

2024-10-01 07:38:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道为什么这个代码不能发送电子邮件。在

import smtplib

content = 'test'

mail = smtplib.SMTP('smtp.gmail.com',587)

mail.ehlo()
mail.starttls()
mail.login('surapon@gmail.com','222222')
mail.sendmail('surapon@gmail.com','youremail@gmail.com',content)
mail.quit

它显示:

^{pr2}$

后来,它显示:

SMTPAuthenticationError: (534, '5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbu87\n5.7.14 wdTx8uq_F_WXKXEVia5I3DTMdhzuJL967nviDbOqgBU9lHzjzIHX69az6PFAzff6lA2uGJ\n5.7.14 qCqwJzys1OcoqMzMNUx5o5ja_a3XHatcxE-jqsHjqWCwYR1WVUEmBfGvUIBzgm7iUyGOXq\n5.7.14 RdYOqEx5GLAe05yUhGq-z-JphFKH-x-aA0TwEc-hyEnecghY1ZLtMMsowPhFGa1XGPnNO3\n5.7.14 8XE4yhQctKtYySbTSiQqBUmmV4qE> Please log in via your web browser and\n5.7.14 then try again.\n5.7.14 Learn more at\n5.7.14 support.google.com/mail/answer/78754 eu5sm6412101pac.37 - gsmtp')

Tags: 代码testimportcom电子邮件googlemailcontent
3条回答

我来解释你想做什么。您正在尝试使用以下凭据执行SMTP:
'smtp.gmail.com'公元587年 然后你试图用你的gmail密码登录。完全错了。 您要做的是:

import smtplib

content = 'test'

me = 'surapon@gmail.com'
you = ['someOther@gmail.com']

mail = smtplib.SMTP('localhost')

msg['Subject'] = 'Hello'
msg['From'] = me
msg['To'] = you[0]
#mail.ehlo()
#mail.starttls()
#mail.login('surapon@gmail.com','222222')
mail.sendmail(me, you, msg.as_string())
mail.quit()

这是因为google认为pythonsmtplib不太安全。错误消息中的链接将引导您找到答案。在

在这个链接中还有另一个允许“不太安全”的应用程序发送邮件的链接。在

https://support.google.com/accounts/answer/6010255

这允许您明确允许您的应用程序发送电子邮件。它们提供的关于什么构成安全问题的信息很少。在

它们提供给显式访问的链接是 http://www.google.com/settings/security/lesssecureapps在前面的链接中。在

我创建了yagmail作为一个包,使发送电子邮件变得非常简单。在

请尝试以下操作:

import yagmail
yag = yagmail.SMTP('surapon@gmail.com', 'password')
yag.send('youremail@gmail.com', subject = 'hi', contents = content)

还有一些有用的技巧可以用来处理这个包,比如永远不必再次输入密码(同时仍然是安全的),这使得发送附件变得非常容易。在

安装

^{pr2}$

更多信息请看github。在

相关问题 更多 >