You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署在GoDaddy共享主机的ASP.NET应用使用AWS SES发信失败如何排查

故障原因与解决方案

根因定位

  • 非代码逻辑问题:本地开发环境发信正常已经验证了发信逻辑的正确性,代码仅存在1处配置瑕疵,不是本次故障的核心诱因。
  • 与MX记录无关:MX记录仅用于邮件服务接收邮件时的域名解析,你通过SES SMTP发信的过程完全不涉及MX记录,无需调整相关配置。
  • 核心诱因是GoDaddy共享主机的出站限制:GoDaddy共享主机为了防范垃圾邮件发送,默认会封禁所有指向外部SMTP服务的25、465、587标准SMTP端口出站请求,仅允许连接GoDaddy自有SMTP服务器,你的SES连接请求被主机端防火墙直接拦截,就会返回net_io_connectionclosed的传输连接关闭报错。
  • 代码潜在瑕疵:你当前代码中先设置了client.UseDefaultCredentials = true;,再手动赋值Credentials的逻辑是无效的,UseDefaultCredentials设为true时会强制使用当前IIS进程的系统凭据,覆盖你手动配置的SES SMTP账号密码,本地能跑属于环境巧合,部署到服务器后需要修正。

解决步骤

  • 第一步先修正代码配置瑕疵:
    将原代码中的
    client.UseDefaultCredentials = true;
    client.Credentials = credentials;
    
    调整为
    client.UseDefaultCredentials = false;
    client.Credentials = credentials;
    
    确保手动配置的SES SMTP凭据可以正常生效。
  • 第二步解决共享主机端口封禁问题,优先选择以下方案:
    • 方案1(最稳定):改用AWS SES HTTP API发信:安装AWS SDK for .NET,调用SES的SendEmail接口发信,通过443 HTTPS端口传输,GoDaddy不会封禁常规HTTPS出站请求,可以完全绕开SMTP端口限制。
    • 方案2(测试成本低):将SES SMTP端口改为SES支持的非标准端口2587或者2465,更新站点配置中的EmailPort值后测试发信,部分GoDaddy共享主机未封禁这两个替代SMTP端口。
    • 方案3:如果上述方案均不可用,可以联系GoDaddy客服申请开通对应SES区域SMTP服务器的出站SMTP端口访问权限,但共享主机服务通常不会同意这类申请,不做优先推荐。

内容的提问来源于stack exchange,提问作者user3060430

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:42:03