如何解决Django中发送邮件时出现的WinError 10061连接拒绝错误?
解决Django密码重置时[WinError 10061]连接被拒绝问题
这个错误的核心原因是你配置的localhost:25端口没有运行可用的SMTP服务——Windows系统默认不会开启本地SMTP服务,所以请求连接时被拒绝。以下是几种可行的解决方法:
先验证密码重置逻辑是否正常
暂时改用Django的控制台邮件后端,跳过真实邮件发送环节,先确认密码重置的业务流程没问题。修改配置:EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'测试时,密码重置的邮件内容会直接输出到终端,不用依赖SMTP服务。
开启本地SMTP服务(Windows)
- 系统自带SMTP:打开「控制面板→程序→启用或关闭Windows功能」,勾选「Internet Information Services」下的「SMTP服务器」完成安装,之后需要在IIS管理器里配置SMTP的域名、端口等参数,确保25端口处于监听状态。
- 轻量工具替代:用免费的本地SMTP工具如Papercut SMTP,启动后自动监听25端口,接收邮件并在界面显示,无需复杂配置。
改用第三方公共SMTP服务(更推荐)
本地SMTP服务配置繁琐且不稳定,直接用QQ、网易163等公共邮箱的SMTP服务更靠谱。以QQ邮箱为例,配置如下:EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.qq.com' EMAIL_PORT = 587 EMAIL_HOST_USER = '你的QQ邮箱账号' EMAIL_HOST_PASSWORD = '邮箱授权码(不是登录密码)' EMAIL_USE_TLS = True注意:需要先在邮箱设置里开启「POP3/SMTP服务」,并生成对应的授权码,不能直接用邮箱登录密码。
内容的提问来源于stack exchange,提问作者user19553515
相关产品推荐
相关产品推荐

