You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Google受限Gmail SMTP服务器发送邮件出错求助

问题分析与解决方案

嘿,我一眼就揪出核心问题啦——你用错了服务器类型!aspmx.l.google.com是Google的邮件交换(MX)服务器,它的职责是接收别人发给你的邮件,根本不是用来发送出站邮件的SMTP服务器,这就是你连接失败、发送出错的主要原因。

接下来给你一步步修正:

1. 替换正确的SMTP服务器地址

把服务器地址改成Google官方的发送SMTP服务器:smtp.gmail.com

2. 调整端口与加密设置

Google的SMTP推荐用这两个端口,稳定性更高:

  • 587:搭配TLS加密(需要启用EnableSsl = true
  • 465:搭配SSL加密
    端口25很多ISP会直接封锁,而且Google也不建议用它来发送邮件,直接换掉就好。

3. 添加身份验证

Google的SMTP服务器要求必须验证账号身份,你原来的代码完全没加这部分,这也是失败的关键。需要添加你的Gmail账号(或Google Workspace账号)的凭据:

修改后的完整代码示例

try {
    var mail = new MailMessage();
    mail.From = new MailAddress("your-gmail-account@gmail.com"); // 建议和登录账号保持一致
    mail.To.Add("myemail@gmail.com");
    mail.Subject = "subject";
    mail.Body = "body";

    SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
    SmtpServer.Port = 587;
    SmtpServer.Credentials = new System.Net.NetworkCredential("your-gmail-account@gmail.com", "your-password-or-app-password");
    SmtpServer.EnableSsl = true;
    SmtpServer.Send(mail);
} catch (Exception ex) {
    MessageBox.Show(ex.ToString());
}

额外注意事项

  • 如果你的Gmail账号开启了两步验证(2FA),不能直接用普通密码登录,得去Google账号设置里生成「应用专用密码(App Password)」,用这个密码代替代码里的普通密码。
  • 发件人地址From最好和你登录的Gmail账号一致,否则Google可能会判定为垃圾邮件或者直接拒绝发送请求。
  • 要是还是遇到问题,可以检查一下你的网络是否能访问smtp.gmail.com,有些公司内网会屏蔽外部SMTP服务器。

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

火山引擎 最新活动