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

使用G Suite账号通过SMTP发送邮件失败的技术咨询

解决G Suite账号SMTP发送失败的问题

我之前帮别人排查过不少类似的G Suite SMTP发送问题,先看你代码里的一个致命错误——这大概率是导致G Suite账号发送失败的核心原因:

在设置smtp.Credentials = networkCred;之前,你写了smtp.UseDefaultCredentials = true;。当这个属性设为true时,.NET会自动使用当前运行程序的系统默认凭据(比如Windows账户或服务器凭据),直接覆盖你手动指定的应用密码凭据。普通Gmail账号可能因为验证规则相对宽松侥幸生效,但G Suite的验证更严格,直接就被拦截了。

第一步:修复代码中的凭据配置

把代码里的凭据设置顺序调整过来,并且将UseDefaultCredentials明确设为false:

using (var mm = new MailMessage(PrivateSettings.SenderEmail, message.Destination)) { 
    mm.Subject = message.Subject; 
    mm.Body = message.Body; 
    mm.IsBodyHtml = true; 
    var smtp = new SmtpClient { Host = "smtp.gmail.com", EnableSsl = true }; 
    var networkCred = new NetworkCredential(PrivateSettings.SenderEmail, PrivateSettings.EmailPassword); 
    smtp.UseDefaultCredentials = false; // 必须先设为false,再指定自定义凭据
    smtp.Credentials = networkCred; 
    smtp.Port = 587; 
    smtp.Send(mm); 
}

第二步:检查G Suite的必要后台配置

除了代码问题,G Suite账号还需要确认以下几项配置:

  • 启用SMTP服务:登录G Suite管理控制台(admin.google.com),依次进入应用 > Google Workspace > Gmail > 终端用户访问,确保“SMTP服务”选项是启用状态。
  • 验证应用密码有效性:确认你创建的应用密码是对应Mail应用类型的,并且输入时没有多余空格或错误字符(应用密码是16位无空格的字符串)。
  • 检查域名MX记录:在Namecheap的域名管理后台,确认MX记录正确指向G Suite的服务器(正确的优先级从高到低为:ASPMX.L.GOOGLE.COM、ALT1.ASPMX.L.GOOGLE.COM、ALT2.ASPMX.L.GOOGLE.COM等),MX记录错误会直接影响邮件收发。
  • 确认两步验证状态:确保该G Suite账号确实开启了两步验证,应用密码仅对开启两步验证的账号生效。

额外排查小技巧

如果修复后还是失败,可以尝试:

  • 暂时关闭程序的代理或VPN,确保SMTP连接能正常访问smtp.gmail.com的587端口。
  • 捕获SmtpException并查看具体错误信息,比如是认证失败、连接超时还是其他原因,这能帮你更精准定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:29:42