我正在使用 SmtpClient 和 Office365 邮件服务器来发送电子邮件。但每次我尝试 smtpclient.Send(msg) 时,它都会抛出“操作已超时”smtpException。我已经尝试了所有早期的选项,例如将端口更改为 587 并增加超时值,但没有任何效果。谁能帮我吗。下面是我的源代码。
using (MailMessage msg = new MailMessage
{
From = new MailAddress("[email protected]"),
Subject = this.Subject,
Body = this.Body,
IsBodyHtml = true
})
{
msg.To.Add(new MailAddress("[email protected]"));
using (SmtpClient client = new SmtpClient
{
Host = "smtp.office365.com",
DeliveryMethod = SmtpDeliveryMethod.Network,
EnableSsl = true,
UseDefaultCredentials = false,
Credentials = new System.Net.NetworkCredential("username", "password"),
Port = 587
})
{
try
{
client.TargetName = "STARTTLS/smtp.office365.com";
client.Send(msg);
}
catch (Exception)
{
throw;
}
}
}
基本上,当您无法连接到 SMTP 服务器时,就会发生此问题,这就是发生超时的原因。您收到此消息是因为超过了默认的 Timeout 值 100 秒。
可能有几个问题会导致此问题发生,即错误的 SMTP 地址、SMTP 拒绝、端口设置、SSL 配置等,您需要修复这些问题。