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

C# SmtpException邮件发送失败问题排查求助

邮件发送失败问题排查与解决方案

一、Gmail SMTP 失败的核心原因

  • 你的问题完全和谷歌的政策变更相关:2022年5月后,谷歌不再支持仅用用户名+密码登录的第三方应用(即"低安全应用"),且开启两步验证的账户无法启用低安全应用选项。此时直接用账户密码作为SMTP凭证必然会触发"Authentication required"错误。
  • 另外"Connection closed"异常大概率是因为你之前尝试过非587端口(比如465)但未正确配置SSL,或者多次失败触发了谷歌的安全拦截。

二、Gmail 场景的解决方案

要在开启两步验证的情况下使用Gmail SMTP,必须使用应用专用密码:

  • 登录谷歌账户,进入「安全」设置
  • 找到「应用专用密码」选项(需确保两步验证已开启)
  • 生成一个针对邮件应用的专用密码,替换代码中的password字段

三、其他SMTP服务器(smtp.poczta.onet.pl)超时问题排查

出现100秒超时,可能的原因:

  • 你的网络环境(比如校园网、公司内网)拦截了对该服务器的SMTP请求
  • 该服务器的587端口未开放,或者SSL/TLS配置有误
  • 服务器需要额外的认证信息(比如特定的发件人域名绑定)

四、代码层面的优化建议

你的代码逻辑基本没问题,但有几个细节可以调整:

  • 确保UseDefaultCredentials = false的设置在Credentials赋值之前(当前代码顺序正确,但颠倒会导致凭证不生效)
  • 可以显式设置client.Timeout(比如client.Timeout = 30000;,即30秒),避免过长时间等待
  • 建议用using语句包裹SmtpClient和MailMessage,确保资源正常释放:
protected void SendMessage(object sender, EventArgs e)
{
    string to = "******@student.uj.edu.pl";
    string from = "******@gmail.com";
    string server = "smtp.gmail.com";
    // 替换为生成的应用专用密码
    string password = "你的应用专用密码";

    using (MailMessage message = new MailMessage(from, to))
    {
        message.Subject = TextBox1.Text;
        message.Body = $"{TextBox3.Text} otrzymane {DateTime.Now.ToString()} od: {TextBox2.Text}";

        using (SmtpClient client = new SmtpClient(server, 587))
        {
            client.UseDefaultCredentials = false;
            client.Credentials = new System.Net.NetworkCredential(from, password);
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.EnableSsl = true;
            client.Timeout = 30000;

            try
            {
                client.Send(message);
                TextBox3.Text = "Wysłano wiadmość!";
                Button1.Enabled = false;
            }
            catch (Exception ex)
            {
                TextBox3.Text = $"Problem z wysłaniem wiadomości ({ex.ToString()})";
            }
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:06:16