2017-08-21 91 views
1

我一直在尝试一段时间才能从我正在开发的网站接收Django的电子邮件。现在,我还没有部署它,我正在使用Django开发服务器,我不知道这是否会影响它。Django send_mail SMTPSenderRefused 530与gmail

这里是我的settings.py配置:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_PORT = 587 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWROD = 'my_password' 
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER 
DEFAULT_TO_EMAIL = EMAIL_HOST_USER 

然后,通过我跑python manage.py shell项目的根文件夹,然后键入以下内容:

>>> import django 
>>> from django.conf import settings 
>>> from django.core.mail import send_mail 
>>> send_mail('test', 'test', settings.EMAIL_HOST_USER, [settings.EMAIL_HOST_USER], fail_silently=False) 

而我收到的回复是出现以下错误:

Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "/home/paulo/anaconda3/envs/MyDjangoEnv/lib/python3.6/site-packages/django/core/mail/__init__.py", line 62, in send_mail 
    return mail.send() 
    File "/home/paulo/anaconda3/envs/MyDjangoEnv/lib/python3.6/site-packages/django/core/mail/message.py", line 348, in send 
    return self.get_connection(fail_silently).send_messages([self]) 
    File "/home/paulo/anaconda3/envs/MyDjangoEnv/lib/python3.6/site-packages/django/core/mail/backends/smtp.py", line 111, in send_messages 
    sent = self._send(message) 
    File "/home/paulo/anaconda3/envs/MyDjangoEnv/lib/python3.6/site-packages/django/core/mail/backends/smtp.py", line 127, in _send 
    self.connection.sendmail(from_email, recipients, message.as_bytes(linesep='\r\n')) 
    File "/home/paulo/anaconda3/envs/MyDjangoEnv/lib/python3.6/smtplib.py", line 866, in sendmail 
    raise SMTPSenderRefused(code, resp, from_addr) 
smtplib.SMTPSenderRefused: (530, b'5.5.1 Authentication Required. Learn more at\n5.5.1 https://support.google.com/mail/?p=WantAuthErrorv11sm8729581qkl.88 - gsmtp', '[email protected]') 

我已启用该选项以允许更少安全应用。

我试过在使用两步验证时输入EMAIL_HOST_PASSWORD =“my_password”,而不是输入EMAIL_HOST_PASSWORD ='myapplicationpassword',由google提供。它没有工作。

然后我禁用了两步验证,并从应用程序密码更改回我的实际密码,并且错误仍然存​​在。

我做错了什么?谷歌以某种方式阻止了这些类型的应用程序?如果我运行自己的邮件服务器,我会做得更好吗?

+0

您可以通过其他邮件客户端发送包含这些设置的邮件吗?另请参阅https://mail.google.com/mail/u/0/#settings/ – allcaps

回答

2

如果您使用的是Google SMTP,Google已经引入了一项新的安全功能,可以直接阻止SMTP的使用。为了使用Google SMTP,您需要登录自己的Google帐户并启用对安全性较低的应用的访问权限。此选项存在于“我的帐户”下的“安全检查”下。请参阅下面的截图。 enter image description here