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

.NET Core使用Gmail SMTP发送邮件超时问题求助

解决.NET Core中Gmail SMTP发送邮件超时问题

核心问题排查与修复步骤:

  • SMTP服务器地址错误:你配置的smtp.google.com是错误地址,正确地址应为smtp.gmail.com。
  • 未禁用默认凭据:必须开启smtpClient.UseDefaultCredentials = false,否则系统会自动覆盖你设置的账号密码,导致认证失败进而引发超时。
  • 端口与SSL匹配:587端口依赖STARTTLS协议(需保持EnableSsl=true),465端口是SSL直连模式,两种端口都可使用,但前提是服务器地址正确。

修改后的Sender类关键代码:

using(SmtpClient smtpClient = new SmtpClient(_setting.SmtpServer, _setting.SmtpPort)){
    smtpClient.EnableSsl = true;
    smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
    smtpClient.UseDefaultCredentials = false; // 必须启用该行配置
    smtpClient.Credentials = new NetworkCredential(_setting.SenderAddress, _setting.Password);
    smtpClient.Timeout = 20000;
    smtpClient.Send(mail);
}

修改后的测试代码:

[Test]
public void SendEmailGmail()
{
    Setting setting = new Setting();
    setting.SmtpServer = "smtp.gmail.com"; // 修正服务器地址
    setting.SmtpPort = 587; 
    setting.SenderAddress = "my@googlemail.com";
    setting.Username = "Display Name";
    setting.Password = "GoogleGeneratedAppPassword";

    Sender sender = new Sender(setting);

    sender.Send("i@dont.tell", "Hello, World!");
}

额外验证项:

  • 确认你的Google账号已开启两步验证,应用密码是在开启2FA后生成的,且生成时选择的是「邮件」类应用。
  • 检查网络环境是否能正常访问smtp.gmail.com的对应端口,部分网络会屏蔽SMTP端口,可尝试更换网络测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:45:33