使用Python从GoDaddy注册的邮件服务器发件时遭遇SMTPServerDisconnected错误的求助
使用Python从GoDaddy注册的邮件服务器发件时遭遇SMTPServerDisconnected错误的求助
Hey,我之前帮朋友处理过几乎一模一样的GoDaddy SMTP发件问题,这个SMTPServerDisconnected错误通常是连接配置或者GoDaddy账户侧的设置没到位导致的,咱们一步步来排查解决:
先调整代码里的SMTP连接配置
GoDaddy的SMTP服务器有时候对连接方式比较挑剔,你可以试试这两个修改方向:
- 换用STARTTLS的587端口
虽然465端口的SMTP_SSL是官方推荐的,但有些环境下587端口的STARTTLS模式反而更稳定,修改代码这部分:
# 替换原有的SMTP_SSL初始化代码 mailserver = smtplib.SMTP('smtpout.secureserver.net', 587) mailserver.ehlo() mailserver.starttls() # 开启TLS加密通道 mailserver.ehlo() # 开启加密后需要再次发送EHLO指令 mailserver.login('info@mydomain.com', 'abc123')
- 移除SMTP_SSL后的EHLO指令
用SMTP_SSL建立加密连接后,有些服务器不需要额外的EHLO请求,你可以试试删掉mailserver.ehlo()那一行,直接执行login:
mailserver = smtplib.SMTP_SSL('smtpout.secureserver.net', 465) # 去掉这一行:mailserver.ehlo() mailserver.login('info@mydomain.com', 'abc123')
检查GoDaddy账户的关键设置
这部分很容易被忽略,也是很多人踩坑的地方:
- 应用专用密码(如果开了两步验证):如果你的GoDaddy账户开启了两步验证,直接用邮箱原密码登录SMTP会失败,必须在GoDaddy账户里生成一个「应用专用密码」,用这个密码代替代码里的
abc123。 - IP白名单设置:GoDaddy的邮件服务器会自动拦截非信任IP的连接请求,你可以登录GoDaddy账户,找到邮件管理的「发件限制」或「IP白名单」选项,把当前运行代码的设备的公网IP加进去。
- 确认邮箱状态:检查这个
info@mydomain.com邮箱是否被GoDaddy限制发件,比如有没有触发垃圾邮件预警,或者账户是否处于正常状态。
其他排查小技巧
- 添加超时设置:在初始化SMTP连接时加上超时参数,避免因为网络延迟导致连接被主动关闭:
mailserver = smtplib.SMTP_SSL('smtpout.secureserver.net', 465, timeout=30)
- 用telnet测试基础连接:在终端里执行
telnet smtpout.secureserver.net 465,如果连这个命令都无法建立连接,说明是网络或者GoDaddy的防火墙拦截了你的请求,这时候可能需要联系GoDaddy的客服确认。
内容来源于stack exchange




