SmtpClient 會發送兩次任何電子郵件

本文关键字:任何電 SmtpClient | 更新日期: 2023-09-27 18:35:43

当我使用SmtpClient发送电子邮件时,我发现了一个奇怪的行为:

  1. 交付时间太长。
  2. 它交付了两次。

SmtpClient client = new SmtpClient();
client.Host = "smtpout.secureserver.net";
client.Port = 80;
client.Timeout = 10000;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential(_fromAddress, _password);
MailMessage message = new MailMessage();
message.Body = _body;
message.BodyEncoding = Encoding.UTF8;
message.IsBodyHtml = true;
message.Subject = _subject;
message.To.Add(_toAddress);
message.Bcc.Add(_bccAddress);
message.From = new MailAddress(_fromAddress);
client.Send(message);

更新 1:

我确信 TO 和 BCC 是不同的,客户。发送(消息);只调用一次。


更新 2:

经过大量调试,我得到了以下内容:

  • 当我使用 Gmail 作为密件抄送地址时,我通常会收到它。但是当我使用我的 godaddy 电子邮件作为密件抄送地址时,我会收到两次。
  • 当我的代码在我的开发计算机上本地运行时,我会收到电子邮件,没有任何延迟。 但是,当我的代码在 Azure 云服务上运行时,电子邮件的传递时间过长(从 5 分钟到 1 小时)。

更新 3:

  • 当我在密件抄送地址中使用 godaddy 电子邮件时,我会收到两次。

SmtpClient 會發送兩次任何電子郵件

最明显的答案是_toAddress和_bccAddress相同,或者您发送密件抄送的邮箱地址可能被重定向到另一个地址?

在调试器下验证您没有错误地运行代码两次,这也是可能的。

根据代码示例,它不可能发送电子邮件两次。