Веб-сервер отправляет дублирующиеся электронные письма

На каждое электронное письмо, которое отправляет мой веб-сайт, я также отправляю себе электронное письмо. Я заметил, что около 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 ответ

Хорошо, я уверен, что вы уже рассмотрели это, но вы уверены, что ваш посетитель не нажимает "отправить" дважды?

Я видел это много раз, особенно когда почтовый сервер работает немного медленно. Пользователь считает, что сайт ничего не делает, поэтому нажимает Отправить снова. (Или они просто дважды щелкают по кнопке - это тоже видно!)

Возможно, вам просто нужно добавить код своего приложения для защиты от множественной отправки. Это довольно распространенная проблема.

Надеюсь, это поможет вам.

Другие вопросы по тегам