SmtpClient发送两次任何电子邮件

时间:2014-12-30 13:17:53

标签: c# smtpclient

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

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

  3. 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不同,而且client.Send(message);只被召唤一次。


    更新2:

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

    • 当我使用我的Gmail作为密件抄送地址时,我会正常收到它。但是,当我使用我的godaddy电子邮件作为密件抄送地址时,我收到了两次。
    • 当我的代码在我的开发机器上本地运行时,我会毫不拖延地收到电子邮件。但是当我的代码在azure云服务上运行时,电子邮件需要很长时间才能完成(从5分钟到1小时)。

    更新3:

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

1 个答案:

答案 0 :(得分:3)

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

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

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