Gmail SMTP连接失败求助:已配置2FA仍遇超时错误
解决Django配置Gmail SMTP超时错误(WinError 10060)
针对你遇到的连接超时问题,按以下步骤排查解决:
测试网络连通性
先验证本地网络能否访问Gmail的SMTP服务:
在命令行执行:# Windows PowerShell 命令 Test-NetConnection smtp.gmail.com -Port 587 # 或启用telnet后执行 telnet smtp.gmail.com 587如果连接失败,说明本地网络(防火墙、校园网、VPN)限制了587端口,尝试切换手机热点测试,或联系网络管理员开放端口权限。
验证环境变量配置
确保EMAIL_USER和EMAIL_PASS环境变量已正确设置:
在Django项目中临时添加代码验证:import os # 在视图或settings.py末尾添加 print("当前EMAIL_USER:", os.getenv('EMAIL_USER')) print("当前EMAIL_PASS:", os.getenv('EMAIL_PASS'))运行项目后检查输出,确认
EMAIL_PASS是2FA生成的16位无空格专用应用密码,而非你的谷歌账号登录密码。切换SMTP端口与加密方式
将配置改为使用465端口+SSL加密:# smtp settings EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 465 EMAIL_USE_SSL = True EMAIL_HOST_USER = os.getenv('EMAIL_USER') EMAIL_HOST_PASSWORD = os.getenv('EMAIL_PASS')保存后重新测试邮件发送。
排查本地安全工具干扰
暂时关闭Windows防火墙、杀毒软件或第三方安全工具,测试是否能正常连接。若关闭后恢复正常,需在工具中添加Python进程或Django项目的网络访问权限,允许其连接smtp.gmail.com。确认Gmail账户设置
确保谷歌账号已开启两步验证(2FA),且生成的专用应用密码未过期、格式正确(无空格的16位字符串)。注意:开启2FA后无需开启"不太安全的应用访问",该选项需保持关闭状态。
内容的提问来源于stack exchange,提问作者Ayomide Adewale
相关产品推荐
相关产品推荐

