Как лучше всего отправлять большие пакеты электронных писем в ASP.NET?

StackOverflow https://stackoverflow.com/questions/56975

  •  09-06-2019
  •  | 
  •  

Вопрос

В настоящее время я просматриваю устройство чтения данных и вызываю метод Send() System.Net.Mail.SmtpClient.Проблема в том, что это медленно.Отправка каждого письма занимает около 5-10 секунд (возможно, это проблема моего хостера).Мне пришлось переопределить значение по умолчанию для выполненияTimeout в моем файле web.config (по умолчанию оно составляет 90 секунд) следующим образом:

 <httpRuntime executionTimeout="3000" />

Одно предостережение:Я использую общий хост, поэтому не думаю, что смогу отправить сообщение с помощью параметра PickupDirectoryFromIis (по крайней мере, при его включении у меня выдавались ошибки).

Это было полезно?

Решение

Вы можете отправлять почту асинхронно.Таким образом, тайм-аут не должен прерывать вашу отправку.

Эта статья должна помочь вам начать работу с этим: Асинхронная отправка электронных писем в C#.

Здесь есть другой подход: http://www.vikramlakhotia.com/Sending_Email_asynchronous_in_AspNet_20.aspx

И, конечно же, существует несколько коммерческих клиентов, но единственный, который я попробовал и могу порекомендовать, — это http://www.aspnetemail.com/

Другие советы

Обязательно создайте его в фоновом рабочем процессе, чтобы они работали асинхронно.

Кстати, 5-10 секунд на одно электронное письмо кажутся мне слишком медленными.На моем сервере обработка одного письма занимает доли секунды.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top