Pte*_*aur 2 email django gmail smtp
我正在尝试通过django-userena的一部分通过Django发送电子邮件,但我根本无法发送电子邮件。在我的设置中,我有:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'myuser@gmail.com'
EMAIL_HOST_PASSWORD = 'mypassword'
Run Code Online (Sandbox Code Playgroud)
我尝试通过以下方式从Django控制台发送电子邮件:
from django.core.mail import EmailMessage
email = EmailMessage('Mail Test', 'This is a test', to=['otheruser@gmail.com'])
email.send()
Run Code Online (Sandbox Code Playgroud)
它挂在send命令上,实际上并不发送电子邮件。如果停止命令,则会得到以下回溯:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/myuser/Copy/Projects/Programming/myproject/venv/local/lib/python2.7/site-packages/django/core/mail/message.py", line 274, in send
return self.get_connection(fail_silently).send_messages([self])
File "/home/myuser/Copy/Projects/Programming/myproject/venv/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 87, in send_messages
new_conn_created = self.open()
File "/home/myuser/Copy/Projects/Programming/myproject/venv/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 48, in open
local_hostname=DNS_NAME.get_fqdn())
File "/usr/lib/python2.7/smtplib.py", line 251, in __init__
(code, msg) = self.connect(host, port)
File "/usr/lib/python2.7/smtplib.py", line 312, in connect
(code, msg) = self.getreply()
File "/usr/lib/python2.7/smtplib.py", line 356, in getreply
line = self.file.readline()
File "/usr/lib/python2.7/socket.py", line 447, in readline
data = self._sock.recv(self._rbufsize)
Run Code Online (Sandbox Code Playgroud)
有什么帮助,为什么没有解决?
我有同样的问题。我正在使用Django 1.6。事实证明,我需要使用SSL通过gmail发送电子邮件。所以我用了这个方便的包:https : //github.com/bancek/django-smtp-ssl
$ pip install django-smtp-ssl
然后settings.py应该有这个:
EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = 'email@gmail.com'
EMAIL_HOST_PASSWORD = 'YOUR_PASSWORD'
Run Code Online (Sandbox Code Playgroud)
当然,如果你使用Django 1.7,那么你可以再补充EMAIL_USE_SSL = True到settings.py并使用默认后端。
| 归档时间: |
|
| 查看次数: |
1846 次 |
| 最近记录: |