我正在尝试使用smtplib在python 2.7中发送邮件。以下代码非常简单:
import smtplib
def main(argv=None):
sender = 'abc@gmail.com'
receivers = ['xyz@gmail.com']
message = """
This is a test e-mail message.
"""
smtpObj = smtplib.SMTP('xyz@gmail.com',25)
smtpObj.login('abc', 'pwd')
smtpObj.sendmail(sender, receivers, message)
print "Successfully sent email"
if __name__ == '__main__':
main()
现在,当我执行以下代码时,我不断收到此异常:
smtplib.SMTPAuthenticationError:(535,' 5.7.3身份验证失败')。
请告知。
谢谢,
答案 0 :(得分:8)
实际上,当我尝试在python控制台上执行相同的语句时,我发现密码不正确,这是由于不同的字符编码。
对于所有其他用户,请不要复制粘贴
答案 1 :(得分:1)
有同样的问题。
2个选项,
尝试改变:
smtpObj = smtplib.SMTP('xyz@gmail.com',25)
为:
smtpObj = smtplib.SMTP('xyz@gmail.com',587)
其他选项是您的登录不正确。在我的情况下,我使用交换和登录名称不是电子邮件地址,而只是用户名
以下是用于交换服务器的代码:
import smtplib
def sendmail():
subject = 'message subject'
to = 'mail@yourdomain.com'
sender = 'bjorn@***.nl'
smtpserver = smtplib.SMTP("mail.mymailserver.nl",587)
user = 'myussername'
password = 'mypassword'
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo
smtpserver.login(user, password)
header = 'To:' + to + '\n' + 'From: ' + sender + '\n' + 'Subject:' + subject + '\n'
message = header + '\n This is my message'
smtpserver.sendmail(sender, to, message)
smtpserver.close()
答案 2 :(得分:0)
此问题的原因是该密码应该是客户端授权代码,而不是邮箱的登录密码。
答案 3 :(得分:0)
如果您再次检查凭据,则问题出在Gmail上。 您可以按照以下步骤解决它:
1。启用IMAP和/或POP3:
1. Go to the "Settings", e.g. click on the "Gears" icon and select "Settings". 2. Click on "Forwarding and POP/IMAP". 3. Enable "IMAP Access" and/or "POP Download"
1. Login with your gmail account and find "Allow less secure apps:" from [Here][1] 2. Google manages security with your gmail account. You need to turn on "Allow less secure apps:" and you will receive mail in your gmail account. [1]: https://myaccount.google.com/security#activity
答案 4 :(得分:0)
低安全性方法是暂时的,我无法在生产中使用它,但是我发现了一篇文章,该文章使使用OAuth对GMail here进行身份验证变得更加容易 带有示例代码,效果很好。
答案 5 :(得分:0)
您也可以尝试将端口从 587
更改为 25
。这对我有用。