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

使用C#在Visual Studio中发送邮件遇超时错误,求解决建议

解决SmtpClient发送邮件超时问题的实用建议

嘿,针对你遇到的System.Net.Mail.SmtpException: The operation has timed out错误,结合你用Hotmail/Outlook邮箱的场景,我整理了几个针对性的排查和解决步骤,你可以逐一尝试:

1. 给SmtpClient设置合理的超时时间

你的代码里没显式设置超时时间,默认的超时窗口可能在网络状况一般的情况下不够用。可以手动把超时时间调长一些,比如设置成5分钟(300秒):

cv.Timeout = 300000; // 单位是毫秒,300000 = 5分钟

2. 重点检查邮箱的安全验证设置(最可能的原因!)

微软现在对Outlook/Hotmail的登录限制很严,普通密码大概率无法直接通过SmtpClient登录:

  • 如果你开了两步验证(2FA),必须用应用密码替换普通密码。应用密码需要登录你的微软账户,在安全设置里生成(注意生成后要立刻保存,因为不会再显示第二次)。
  • 如果没开2FA,你需要去微软账户的安全中心开启“允许低安全性应用访问”——不过这个选项现在逐渐被淘汰了,还是更推荐用应用密码的方式。

3. 确认SMTP配置的细节(别小看这些)

虽然你用的smtp.outlook.com和587端口是对的,但再核对下这些点:

  • EnableSsl = true(你已经设置了,没问题)
  • 一定要先把UseDefaultCredentials设为false,再设置Credentials——如果顺序反了,默认凭据会覆盖你设置的邮箱密码,这也是常见坑。

4. 排查网络和防火墙的拦截问题

  • 先测试下你的电脑能不能连通SMTP服务器:打开命令提示符,输入telnet smtp.outlook.com 587,如果能弹出空白窗口说明端口通;如果提示无法连接,那就是网络或者防火墙拦了。
  • 检查本地防火墙、杀毒软件有没有拦截出站的587端口流量,必要时暂时关闭测试。
  • 要是你在公司/学校网络,可能需要配置代理:给SmtpClient加上代理信息就行,比如:
cv.Proxy = new WebProxy("你的代理地址", 代理端口号);
// 代理需要认证的话再加这句:
cv.Proxy.Credentials = new NetworkCredential("代理用户名", "代理密码");

5. 改用MailMessage对象发送(更可靠还易排查)

你现在用的是Send(string from, ...)的简化重载,有时候会隐藏一些细节。建议改用MailMessage对象来构建邮件,不仅更清晰,还能避免一些隐性问题,比如空主题被服务器拒收(你之前的subject是空的,有些服务器会直接拒绝这种邮件):

// 用using包裹SmtpClient,确保资源能正确释放
using (SmtpClient cv = new SmtpClient("smtp.outlook.com", 587))
{
    cv.EnableSsl = true;
    cv.UseDefaultCredentials = false;
    cv.Credentials = new NetworkCredential("richardteunen2@hotmail.com", "你的应用密码");
    cv.Timeout = 300000;

    MailMessage mail = new MailMessage();
    mail.From = new MailAddress("richardteunen2@hotmail.com");
    mail.To.Add("ipadcraze@hotmail.com");
    mail.Subject = "测试邮件"; // 一定要填主题,别空着
    mail.Body = "Hello";

    cv.Send(mail);
}
MessageBox.Show("Done");

6. 检查邮箱是否被临时限制

如果你的邮箱近期发送过大量邮件,可能被微软临时限制了发送权限。登录你的Hotmail邮箱看看有没有相关的通知邮件,按提示解除限制就行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:27:39