我在ubuntu 16.04 DigitalOcean中使用django send_mail从Office 365(Godaddy)发送邮件时遇到一个问题。
EMAIL_HOST = 'smtp.office365.com'
EMAIL_HOST_USER = "myuser"
EMAIL_HOST_PASSWORD = 'mypassword'
EMAIL_USE_TLS = True
EMAIL_PORT = 587
context = {}
subject = 'Verificación de registro con 1 clic'
txt_ = get_template("registration/emails/verify.txt").render(context)
from_email = settings.DEFAULT_FROM_EMAIL
recipient_list = [somemail@somemail.com]
html_ = get_template("registration/emails/verify.html").render(context)
sent_mail = send_mail(
subject,
txt_,
from_email,
recipient_list,
html_message=html_,
fail_silently=False,
)
raise SMTPSenderRefused(code, resp, from_addr)
smtplib.SMTPSenderRefused: (530, b'5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM []', '=?utf-8?q?myuser?= <myemail@myemail.com>')
答案 0 :(得分:0)
那是由于几个原因。其中更常见的是您的允许安全性较低的应用程序功能已关闭。
此https://support.google.com/accounts/answer/6010255对您可能非常有用。
Google说»
如果您的帐户关闭了“缺乏安全的应用程序访问权限”,则可以turn it back on。我们建议改用more secure apps。
这意味着,您只需直接访问https://myaccount.google.com/lesssecureapps并打开即可。
您还可以访问https://myaccount.google.com/security和Ctrl + F / Command + F»Less secure app access
,在下面可以看到类似下面的图像。
就我而言,集成 django-db-mailer 时遇到错误。
SMTPSenderRefused: (530, b'5.5.1 Authentication Required. Learn more at\n5.5.1 https://support.google.com/mail/?p=WantAuthError z25sm26247003pfn.7 - gsmtp', 'rishikesh0011115067@gmail.com')
我通过更改EMAIL_USER-> EMAIL_HOST_USER设置变量来修复它。
现在,我遇到的下一个错误与您完全一样。
SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8 https://support.google.com/mail/?p=BadCredentials m123sm26024478pfb.133 - gsmtp')
我访问了https://myaccount.google.com/lesssecureapps,发现我的帐户已关闭允许安全程度较低的应用功能。只需切换按钮的状态并运行代码即可。
最终成功。希望对您有所帮助。您还可以检查自己是否在https://devanswers.co/allow-less-secure-apps-access-gmail-account/上挣扎。已经有很多天了,但是我仍然想通过指着你来回答(即使您已经解决了)。