Каков наилучший способ отправки больших партий электронной почты в ASP.NET? - PullRequest
5 голосов
/ 11 сентября 2008

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

 <httpRuntime executionTimeout="3000" />

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

Ответы [ 2 ]

6 голосов
/ 11 сентября 2008

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

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

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

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

0 голосов
/ 11 сентября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...