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

.NET ASP.NET Web Forms邮件发送失败,出现超时问题求助

ASP.NET Web Forms发送Gmail邮件超时问题排查与解决

先修复代码中的异常处理错误

你的catch块注释了Exception ex,导致抛出异常时ex未定义,这会引发新的错误,先修正:

catch (Exception ex)
{
    throw new Exception(ex.Message, ex.InnerException);
}

修正后才能获取真实错误信息,进一步定位问题。

核心排查与解决步骤

1. 适配Gmail的安全政策变更

Gmail已停止支持「低安全性应用访问」,如果你的账号开启了两步验证(2FA),必须使用应用专用密码替代原密码:

  • 登录Google账号,进入「安全」设置页面
  • 确认已启用两步验证
  • 在「应用专用密码」选项中生成新密码,替换代码中的"password"

2. 解除Google账号的登录限制

如果账号有异常登录记录,Google会阻止SMTP访问:

  • 登录Gmail账号,查看收件箱或安全中心的提醒,若有「可疑登录」提示,点击「这是我本人操作」解除限制

3. 添加SMTP超时配置

代码未设置超时时间,默认值可能不匹配当前网络环境,添加超时参数:

client.Timeout = 15000; // 设置为15秒,可根据网络情况调整

4. 检查服务器网络环境

  • 验证服务器网络是否允许访问587端口,可通过命令测试:telnet smtp.gmail.com 587
  • 若服务器使用代理,需为SmtpClient配置代理:
WebProxy proxy = new WebProxy("代理地址", 代理端口);
client.Proxy = proxy;

5. Google Workspace账号特殊配置(若适用)

如果使用Google Workspace账号,需确认管理控制台已启用SMTP服务,且账号具备发送邮件的权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 15:40:23