2008-09-11 2 views
5

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

<httpRuntime executionTimeout="3000" /> 

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

ответ

6

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

Эта статья поможет вам приступить к работе с этим: Sending Emails Asynchronously in C#.

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

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

0

Определенно нерест его на фоне рабочего чтобы они выходили асинхронно.

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

Смежные вопросы