Django 项目settings.py
包括以下内容:
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = "smtp.gmail.com"
EMAIL_HOST_USER = "you.cant.see.me@gmail.com"
EMAIL_HOST_PASSWORD = "thug_life"
EMAIL_PORT = 587
EMAIL_USE_TLS = True
我的应用程序views.py
包含以下内容
def send_classic_email(request):
from django.core.mail import send_mail
send_mail(
subject = "Tale of two cities",
from_email = "Charles Dickens <you.cant.see.me@gmail.com>",
recipient_list = ["someone@example.com"],
message = "There were 2 cities",
html_message = "<p>There were 2 cities</p>",
fail_silently = False,
)
print "Absolutely Perfectly Done"
从本地主机尝试。得到SMTPAuthenticationError
回报:
SMTPAuthenticationError at /send_classic_email/
(534, '1.3.95 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=fsadjSADJH\n1.3.95
fjkshFHAKSHkdfshkfkhj-sfjdhFsadASDA_\n1.3.95
dasdASDADas-aDas-hfhjsadASDSAhjjhd\n1.3.95
ADSaSADkja_adhjkADKjhads-ASADS_SDAKjadAKJhsADS-k\n1.3.95
sadhkjADSAKJSDJAlkjdaA> Please log in via your web browser and\n1.3.95
then try again.\n1.3.95
Learn more at\n1.3.95
https://support.google.com/mail/answer/78754 dkahASDASlkjdas.25 - gsmtp')
然后访问https://www.google.com/settings/security/lesssecureapps并启用该less secure app
设置。
之后,从 localhost 再次尝试。收到:
绝对完美完成
在 AWS EC2 上部署了这段代码。从 EC2 尝试过。再次得到同样的结果SMTPAuthenticationError
:
SMTPAuthenticationError at /send_classic_email/
(534, '1.3.95 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=fsadjSADJH\n1.3.95
fjkshFHAKSHkdfshkfkhj-sfjdhFsadASDA_\n1.3.95
dasdASDADas-aDas-hfhjsadASDSAhjjhd\n1.3.95
ADSaSADkja_adhjkADKjhads-ASADS_SDAKjadAKJhsADS-k\n1.3.95
sadhkjADSAKJSDJAlkjdaA> Please log in via your web browser and\n1.3.95
then try again.\n1.3.95
Learn more at\n1.3.95
https://support.google.com/mail/answer/78754 dkahASDASlkjdas.25 - gsmtp')
前往 EC2 安全组:
- 已启用来自所有来源的SMTP 端口的入站规则。
- 为通过所有协议到所有目标的所有端口的所有流量的出站规则启用。
还是一样SMTPAuthenticationError
。
为什么它在 localhost 而不是 EC2 实例上运行良好?
继续运行Django 1.8.0
_Python 2.7.6
Ubuntu 14.04.3 LTS