我想向自己发送电子邮件,所以我尝试了。 我已经在settings.py
中设置了我的电子邮件信息EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = False
EMAIL_USE_SSL = True
EMAIL_HOST = 'smtp.163.com'
EMAIL_PORT = 25
EMAIL_HOST_USER = '*****@163.com'
EMAIL_HOST_PASSWORD = '***'
然后我从Django文档中写下示例
from django.core.mail import send_mail
send_mail(
'Subject here',
'Here is the message.',
'from@example.com',
['to@example.com'],
fail_silently=False,
)
然后发生了异常
ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:833)
如何解决?
答案 0 :(得分:1)
您应检查使用的端口号是否正确。
您可能需要将端口从25更改为465或587,才能将SMTP与SSL配合使用;端口25通常用于非加密电子邮件。当然,这取决于您的电子邮件提供商,但这是大多数提供商所遵循的一种标准。
有关端口号的一些历史背景,我在mailgun
博客上找到了this(作为众多文章之一)。
答案 1 :(得分:0)
当尝试通过类似的Web框架(web2py)和其他电子邮件服务提供商(gmail)发送电子邮件时,遇到相同的错误消息。
无论软件组件和电子邮件服务器不同,解决方案都是相同的:仔细检查计划使用的电子邮件服务的端口。例如,Gmail uses port 465 for SSL, but port 586 for TLS。正确后,即可按预期发送电子邮件。