对于我的网站发送的每封电子邮件,我都会给自己发送一封电子邮件。我注意到大约 5% 的电子邮件(每天数千封)被发送了两次。然而,发送副本之间的时间完全不一致……可能是一周、一个月或一分钟。完全不一致......我试图调试这个问题,但我永远无法复制这个问题。始终只发送一封电子邮件并正常工作。我没有想法,所以决定尝试从社区中获得一些意见。任何见解将不胜感激......
public static void SendEmail(string subject, string body, string toAddress, string fromAddress)
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress(fromAddress);
msg.To.Add(new MailAddress(toAddress));
msg.Subject = subject;
msg.Body = body;
msg.IsBodyHtml = false;
using (SmtpClient cli = new SmtpClient())
{
cli.Send(msg);
cli.Dispose();
}
}
Dispose() 只是我最近未能解决问题的尝试之一......
以及调用该函数的 ascx 页面(请注意,如果电子邮件地址不为空,则第一次将其发送给 myslef 和第二次发送给客户。我在测试期间这样做并决定将其留在那里:
Txp.SendEmail(strOrderConfirmationHeader, strOrderConfirmationText, TxpConst.ORDERNOTIFYADDR, TxpConst.RETURNADDR);
if (!String.IsNullOrWhiteSpace(custemail))
{
Txp.SendEmail(strOrderConfirmationHeader, strOrderConfirmationText, custemail, TxpConst.RETURNADDR);
}
它如此不一致的事实告诉我,它可能不是代码,也不是电子邮件服务器,因为邮件日志每次都显示一个已完成的事务,并且每次都会获得不同的消息 ID……我完全没有想法!