Dan*_*iel 9 email django smtp zoho
我试图从我的基于django的网站发送电子邮件,但我遇到了一些问题 - SMTPServerDisconnected连接意外关闭我的setting.py:
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.zoho.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = 'me@mydomain.com'
EMAIL_HOST_PASSWORD = 'XXXXXX'
Run Code Online (Sandbox Code Playgroud)
我使用的是django 1.5.1,python 2.7.3.有谁能解决这个问题?
谢谢你的帮助
小智 25
我遇到连接超时问题.在我看来,默认的Django SMTP库中存在SSL套接字问题.在Django的开发版本中,有一个选项可以设置EMAIL_USE_SSL = True允许使用隐式 TLS连接(而不是显式,由指定EMAIL_USE_TLS = True).通常前者(隐式)使用端口465,而后者(显式)使用端口587.请参阅Django文档 - 将开发版本与版本1.5进行比较.请注意,该选项EMAIL_USE_SSL不存在于1.5中.
因此,问题是Zoho的默认SMTP服务器使用端口465并且需要SSL,但该EMAIL_USE_TLS选项不满足此要求.(旁注:也许尝试设置此选项False?我没有尝试过.)无论如何,我最好的猜测是这是一个特定于Django的问题,直到1.7才可能解决.
至于你的问题的解决方案:你绝对可以使用Python(2.7.1)访问Zoho的SMTP服务器smtplib(参见下面的脚本).所以,如果你想要一个稍微不优雅的修复,你可以走那条路.我在Django 1.5.1中测试了它,它就像一个魅力.
这是独立的Python脚本(可以在Django项目中使用):
import smtplib
from email.mime.text import MIMEText
# Define to/from
sender = 'sender@example.com'
recipient = 'recipient@example.com'
# Create message
msg = MIMEText("Message text")
msg['Subject'] = "Sent from python"
msg['From'] = sender
msg['To'] = recipient
# Create server object with SSL option
server = smtplib.SMTP_SSL('smtp.zoho.com', 465)
# Perform operations via server
server.login('sender@example.com', 'password')
server.sendmail(sender, [recipient], msg.as_string())
server.quit()
Run Code Online (Sandbox Code Playgroud)
在将其插入Web项目之前,请尝试检查上述脚本是否使用您的Zoho凭据运行.祝好运!
dio*_*her 12
在我的情况下,我收到了:
SMTPServerDisconnected: Connection unexpectedly closed
Run Code Online (Sandbox Code Playgroud)
使用这些设置:
EMAIL_PORT = 465
EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'
EMAIL_USE_SSL = True
EMAIL_HOST = 'smtp.zoho.com'
EMAIL_HOST_USER = 'dio@streetbarz.com'
EMAIL_HOST_PASSWORD = 'password'
Run Code Online (Sandbox Code Playgroud)
设置server.set_debuglevel(1)后,我发现我的DEFAULT_FROM_EMAIL与EMAIL_HOST_USER不同
DEFAULT_FROM_EMAIL = "dio@streetbarz.com"
Run Code Online (Sandbox Code Playgroud)
添加修复问题.
| 归档时间: |
|
| 查看次数: |
11141 次 |
| 最近记录: |