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

C#中Button_Click事件发送Gmail邮件报错net_io_connectionclosed

解决Gmail SMTP发送邮件时的net_io_connectionclosed错误

这个问题我帮不少开发者排查过,核心原因基本都是Gmail SMTP的配置细节没做对,尤其是你用的465端口——它是强制SSL加密的端口,咱们一步步来修复:

最可能的问题:缺少SSL启用设置

465端口要求全程SSL加密,你的代码里没看到EnableSsl = true的配置,这是触发这个错误最常见的原因。Gmail服务器会直接拒绝未加密的连接请求,导致连接被强制关闭。

完整的正确配置步骤

  • 强制开启SSL:在初始化SmtpClient后添加这行代码:
    client.EnableSsl = true;
    
  • 指定Gmail的SMTP服务器:必须设置Host为smtp.gmail.com,这一步不能省略:
    client.Host = "smtp.gmail.com";
    
  • 配置正确的凭据:
    • 如果你的Gmail账户开启了两步验证,绝对不能用原密码,必须去Google账户设置里生成一个应用专用密码(App Password),用这个密码作为凭据。
    • 如果没开两步验证,需要在Google账户的安全设置里开启“允许低安全性应用访问”(注意:这个选项现在默认隐藏,需要去Google账户安全页手动开启)。
      凭据配置代码示例:
    client.Credentials = new System.Net.NetworkCredential("your-email@gmail.com", "your-app-password-or-account-password");
    
  • 备选方案:改用587端口(STARTTLS)
    如果465端口还是有问题,可以试试Gmail支持的587端口(STARTTLS加密),兼容性往往更好,配置如下:
    client.Port = 587;
    client.EnableSsl = true; // 同样需要开启SSL
    

修正后的完整代码示例

protected void Button2_Click(object sender, EventArgs e)
{
    System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
    SmtpClient client = new SmtpClient();
    
    // 核心配置修正
    client.Host = "smtp.gmail.com";
    client.Port = 465;
    client.EnableSsl = true;
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.Credentials = new System.Net.NetworkCredential("your-email@gmail.com", "your-app-password");
    
    // 补充邮件内容配置(根据你的需求修改)
    mail.From = new System.Net.Mail.MailAddress("your-email@gmail.com");
    mail.To.Add("recipient@example.com");
    mail.Subject = "Test Email";
    mail.Body = "This is a test email sent from ASP.NET";
    
    try
    {
        client.Send(mail);
        // 发送成功后的提示或逻辑
        Response.Write("Email sent successfully!");
    }
    catch (Exception ex)
    {
        // 捕获异常做日志或提示
        Response.Write("Error sending email: " + ex.Message);
    }
}

错误原因解释

net_io_connectionclosed本质是你的程序和Gmail SMTP服务器建立连接后,被服务器主动关闭了。常见触发场景:

  • 未启用SSL,服务器拒绝未加密连接
  • 凭据无效(密码错误或未使用应用专用密码)
  • 账户安全设置阻止了第三方应用访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:06:03