首页 > 解决方案 > 通过 Django 发送电子邮件时出现 SSL 错误

问题描述

ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:852)

这是我在运行 Django 网页时在错误日志中看到的内容。我用 Apache 托管它。在页面上,我看到 500:内部服务器错误。

我的电子邮件配置如下:

#Email settings
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'outlook.office365.com'
EMAIL_USE_SSL = True
EMAIL_PORT = 587
EMAIL_HOST_USER = '****@**************.com'
EMAIL_HOST_PASSWORD = '********'

我的 send_mail 代码如下:

send_mail(
    'Subject here',
    'Here is the message.',
    '***************@**************.com',
    ['****@**************.com'],
    fail_silently=False,
    )

标签: djangoemailsslsmtp

解决方案


您可以尝试将端口号设置为“465”吗?

来自文档:https ://docs.djangoproject.com/en/2.2/ref/settings/#std:setting-EMAIL_USE_TLS

对于隐式 SSL 连接,端口号为465

对于 TLS,它是 587

如果这不起作用,可以设置为 False 并查看发送邮件是否正常,让我们在此基础上进一步调试。


推荐阅读