python - Django 无法发送邮件,国内国外各大邮箱都测试无效!

 多米音乐_34026248 发布于 2022-10-30 12:36

经测试有 QQ 邮箱
smtp.qq.com 465
smtp.163.com 465/994
smtp.qq.com 465

各种服务和配置方法都试了,例如其中的一种配置方法:
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = 'zmrenwu@gmail.com'
EMAIL_HOST_PASSWORD = 'mypassword'
MAIL_USE_SSL = True

当然,不止以上一种配置,各种服务器,端口号即其排列组合都试了,注册了多个账号测试,账号绝对开启了SMTP/POP3等能开的服务都开了。

然而始终返回如下错误:

raise SMTPServerDisconnected("Connection unexpectedly closed")
    smtplib.SMTPServerDisconnected: Connection unexpectedly closed

django 版本1.9.7,python 3.4

5 个回答
  • 国内各大邮箱都可以。
    你的配置有问题,至少保证以下几个原则:

    • 使用TLS

    • 填写用户名和密码

    • 在你的邮件提供商那里开启smtp服务

    其次要注意的是:

    • 发送邮件不要过高频率

    • 拒绝垃圾邮件

    本地配置参考@mugbya的回答
    邮箱的配置请参考邮箱说明

    2022-10-31 21:28 回答
  • gmail 被禁了吧!

    2022-10-31 21:28 回答
  • 我记得MAIL_USE_SSL这个应该是EMAIL_USE_SSL吧?
    而且有时候你可以试一下其他的网络来测试。。。感觉更多是网络的问题

    2022-10-31 21:28 回答
  • EMAIL_HOST_USER这里填写的是你邮箱的用户名,是zmrenwu才对。然后在设置加入EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'。
    另外,在调试模式可以使用MAIL_USE_TLS=True,并绑定端口587。

    2022-10-31 21:28 回答
  • 刚用qq邮箱测试通过,相关配置:

    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    EMAIL_HOST = 'smtp.qq.com'                       #SMTP地址 例如: smtp.163.com
    EMAIL_PORT = 25                       #SMTP端口 例如: 25
    EMAIL_HOST_USER = ''                  #qq的邮箱 例如: xxxxxx@163.com
    EMAIL_HOST_PASSWORD = ''              #我的邮箱密码 例如  xxxxxxxxx
    EMAIL_SUBJECT_PREFIX = u'django'       #为邮件Subject-line前缀,默认是'[django]'
    EMAIL_USE_TLS = True                  #与SMTP服务器通信时,是否启动TLS链接(安全链接)。默认是false
    DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
    2022-10-31 21:28 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有