При отправке большого почтового использования SmtpClient (C#) берет очень долго через некоторое время

Вы могли использовать Python. Это работает хорошо межплатформенное, прибывает установленное в большинство дистрибутивов Linux и легко установить в Windows (см. ActiveState Python). Можно записать собственный веб-сервер в нескольких строках кода, которые могут работать над Linux или работать как служба Windows.

1
задан 17 February 2015 в 21:10
2 ответа

Похож на почтовый сервер, вызывает эту задержку, вероятно, для предотвращения спама: http://en.wikipedia.org/wiki/Tarpit_ (сети).

Какой почтовый сервер Вы используете? Как это настроено? Вы используете аутентифицируемый или неаутентифицируемый SMTP для отправки писем?

5
ответ дан 3 December 2019 в 16:58
  • 1
    Любой задержка с сервера, ot это перегружается - зависит, как сервер SMTP выглядит. Я помню " killing" обмен компании путем выполнения того, что меня попросили относительно - представление 50 000 электронных писем максимально быстро ;) –  TomTom 18 April 2010 в 16:40

Как Massimo сказал, много умных серверов SMTP имеют возможность дросселя. Это могло также быть ограничено внешнее регулировкой сети использования сервера SMTP.

Если Ваш код блокируется, необходимо отправить это асинхронно. Можно или использовать.SendAsync () метод на SmtpClient, который не является моим фаворитом или использованием чего-то как SmartThreadPool для создания потока для каждого сообщения.

При отправке их асинхронно Вы не сможете включить сообщение в использование () оператор, таким образом, необходимо будет назвать.Dispose () на MailMessage, или будут проблемы ресурса.

1
ответ дан 3 December 2019 в 16:58

Теги

Похожие вопросы