2009-07-29 5 views
5

Каков наилучший способ отправки массовых писем с помощью ASP.Net?Отправить массовые электронные письма с помощью ASP.Net

Например, администратор сайта должен отправить электронное письмо (например, информационный бюллетень) всем пользователям своего сайта.

Каков наилучший способ сделать это с помощью ASP.Net 3.5 и C#?

ответ

2

Если бы я сам писал это, я просто получил бы адреса электронной почты из базы данных и прокрутил бы через класс System.Net.Mail.SmtpClient.

Пожалуйста, убедитесь, что вы знаете о действии CAN-SPAM и соблюдаете рекомендации.

+4

Говоря по опыту, это очень плохой подход. –

+0

Я тестировал его раньше, но не думаю об этом, если вы хотите отправить электронные письма на более чем 100 адресов! – Babak

+0

@Spencer, если вы хотите выразить свое мнение, по крайней мере, предоставьте некоторые сведения о том, почему вы не согласны с данным ответом. –

1

Проверьте эту ссылку >>>>Sending Mass Email using ASP.Net Источник находится в VB.Net, но поскольку MFCL является тем же самым, вы можете легко изменить код в CSharp. Однако часть aspx остается прежней.

+1

Использование BCC - хороший подход, но я не думаю, что это хорошая идея, если вы хотите отправить электронное письмо на более чем 1000 адресов. – Babak

+0

Я собираюсь проголосовать за это, потому что с точки зрения производительности это, вероятно, лучше, чем отправка отдельных писем. Кроме того, используя комментарий @ BabakArj, было бы не слишком сложно использовать цикл для создания сводного списка для определенного количества записей, а затем отправить это и contineue дальше с остальными. – David

9

Редактировать комментарий к Трою.

Чтобы отправить электронные письма, вы должны использовать внешний процесс. Если ваш список адресов электронной почты вырастет до нескольких сотен, вы мгновенно столкнетесь с таймаутом. Как только вы попадаете в списки с тысячами или миллионами записей, вы можете забыть о любом работоспособном решении, используя только ASP.Net.

Я действительно разработал службу Windows, которая обрабатывает отправку массовых писем. В основном в ASP.Net я создаю кампанию и пакетное задание в различных записях db, а затем вставляю список получателей. После того, как задание полностью записано в db, его статус изменяется, поэтому служба Windows знает, что он может прийти и начать обработку задания. Затем сайт ASP.Net может в любое время просмотреть записи, чтобы определить, как далеко продвинулся сервис.

+1

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

+0

+1 - Я принял этот точный подход. У вас должна быть хорошая обработка ошибок и восстановление, чтобы процесс был надежным, но это хорошая стратегия. –

+0

Я бы согласился с тем, что внешняя служба MUCH предпочтительнее кодировать ее самостоятельно. – David