Веб-сервер отправляет дублирующиеся электронные письма
На каждое электронное письмо, которое отправляет мой веб-сайт, я также отправляю себе электронное письмо. Я заметил, что около 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);
}
Тот факт, что он настолько непоследователен, говорит мне, что это, вероятно, не код и не почтовый сервер, потому что почтовые журналы показывают завершенную транзакцию каждый раз, и каждый раз он получает другой идентификатор сообщения... У меня нет идей!
1 ответ
Хорошо, я уверен, что вы уже рассмотрели это, но вы уверены, что ваш посетитель не нажимает "отправить" дважды?
Я видел это много раз, особенно когда почтовый сервер работает немного медленно. Пользователь считает, что сайт ничего не делает, поэтому нажимает Отправить снова. (Или они просто дважды щелкают по кнопке - это тоже видно!)
Возможно, вам просто нужно добавить код своего приложения для защиты от множественной отправки. Это довольно распространенная проблема.
Надеюсь, это поможет вам.