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

.NET Core中Gmail的SMTP邮件配置无法发送邮件问题排查

解决Gmail SMTP配置无法发送邮件的问题

我帮你梳理下当前配置里的问题,以及对应的修正方案,这些都是Gmail SMTP常见的坑:

1. 最关键的问题:密码不能用普通账号密码

Gmail早在几年前就禁用了直接使用账号密码登录SMTP服务(除非你开启了已被淘汰的"不太安全的应用"选项,现在这个选项已经彻底移除了)。你现在填的UsernamePassword是普通密码,肯定会认证失败。

解决办法:

  • 首先给你的Google账号开启两步验证(2FA)
  • 登录Google账号的安全设置页面,生成一个应用专用密码(这个密码是专门给第三方邮件客户端/服务用的,和你的账号密码独立)
  • 把配置里的UsernamePassword替换成这个生成的应用专用密码

2. FromEmail格式错误

你的配置里FromEmail是"info",这不是一个有效的邮箱地址,Gmail会拒绝这种格式的发件人。你需要填完整的邮箱地址,比如和UsernameEmail一致的"example@gmail.com",如果想显示别名,可以用"Info <example@gmail.com>"这种格式。

3. 端口配置的细节(代码层面需配合)

虽然你填的端口587是正确的,但在.NET Core的邮件发送代码里,必须确保启用STARTTLS加密。如果用的是SmtpClient(注意这个类已经过时,更推荐用MailKit),要设置EnableSsl = true;如果用MailKit,要指定SecureSocketOptions.StartTls。

4. 冗余配置(非致命,但可优化)

配置里的SecondayDomain和SecondaryPort是Outlook的SMTP信息,如果你当前只用Gmail发送邮件,这些配置暂时没用,但不会影响发送,只是可以留着备用。


修正后的配置示例

"EmailSettings": {
  "PrimaryDomain": "smtp.gmail.com",
  "PrimaryPort": 587, // 建议改成数字类型,不用字符串
  "SecondayDomain": "smtp.live.com",
  "SecondaryPort": 587,
  "UsernameEmail": "example@gmail.com",
  "UsernamePassword": "你的应用专用密码",
  "FromEmail": "example@gmail.com", // 或者 "Info <example@gmail.com>"
  "ToEmail": "",
  "CcEmail": ""
}

推荐的邮件发送代码(用MailKit,替代过时的SmtpClient)

using MailKit.Net.Smtp;
using MimeKit;

var message = new MimeMessage();
// 发件人(和配置里的FromEmail对应)
message.From.Add(new MailboxAddress("Info", "example@gmail.com"));
// 收件人(替换成实际地址)
message.To.Add(new MailboxAddress("收件人姓名", "recipient@example.com"));
message.Subject = "测试邮件";
message.Body = new TextPart("plain") 
{ 
    Text = "这是从.NET Core通过Gmail SMTP发送的测试邮件" 
};

using (var client = new SmtpClient())
{
    // 连接SMTP服务器,指定STARTTLS加密
    await client.ConnectAsync("smtp.gmail.com", 587, SecureSocketOptions.StartTls);
    // 用应用专用密码认证
    await client.AuthenticateAsync("example@gmail.com", "你的应用专用密码");
    // 发送邮件
    await client.SendAsync(message);
    // 断开连接
    await client.DisconnectAsync(true);
}

如果还是无法发送,建议捕获代码里的异常,查看具体的错误信息(比如认证失败、连接超时等),这会帮你更快定位问题。另外,也可以检查Google账号的安全日志,看看有没有被阻止的登录尝试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:43:07