Какого рода уловки / советы / подсказки вы можете поделиться для программы .Net, которая будет отправлять подписчикам, возможно, более 10 тысяч писем в день? - PullRequest
7 голосов
/ 04 мая 2009

Я знаю, как написать базовый код C # для отправки электронных писем, но мне интересно узнать о каких-либо более серьезных проблемах. Есть вещи, которые мне следует избегать? Лучшие практики? и т.д.

Спасибо !!

Ответы [ 11 ]

10 голосов
/ 04 мая 2009
  • Убедитесь, что вы пользуетесь услугой хостинга, которая не отключает вашу учетную запись из-за объема отправляемого вами электронного письма.
  • Добавьте аудит или логи, чтобы вы знали, какие письма вы отправили
  • Используйте BCC для отправки одного и того же письма нескольким получателям
  • Поставьте в очередь почту, чтобы избежать очередей писем
  • Рассмотрите возможность отправки почты партиями. Например. вы уведомляете пользователей о новом сообщении на форуме, а затем не рассылаете всем по почте каждый раз, когда кто-то публикует сообщения, предлагаете возможность ежедневных дайджестов.
  • Как уже отмечали другие, используйте многопоточность для отправки большого количества почты
5 голосов
/ 04 мая 2009

Вы, вероятно, хотите порождать этот материал партиями, чтобы не все передавалось из одного процесса в непрерывном цикле. Вы можете сделать это намного быстрее, если вы сгруппируете пакеты по 25 электронным письмам и порождаете, скажем, 50 потоков для отправки этих 25 очередей. Учитывая ваши 10000 электронных писем, потребуется всего 8 циклов, чтобы завершить весь пакет электронных писем.

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

5 голосов
/ 04 мая 2009

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

Я предполагаю, что вы имели дело с более крупными проблемами, такими как то, как клиент подписывается или отписывается?

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

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

Подумайте, в какое время суток вы хотите, чтобы получатель действительно получил электронное письмо. Утро, полдень и т. Д. И мыслите с точки зрения его (не вашего) часового пояса. Электронное письмо с предложением «идеальное вино на ужин» лучше отправлять в 4 часа вечера, чем в 4 часа утра.

Будьте предельно осторожны при использовании «общего» почтового сервера. Вы делитесь им со спамером, который получит IP-адрес в черном списке? Как ты можешь быть уверен, что завтра ничего не изменится?

Вы знакомы с Открытым стандартом доверенной электронной почты ? Чем больше вы можете сделать, чтобы отделить себя от спамеров, тем лучше будет получен ваш адрес электронной почты.

4 голосов
/ 04 мая 2009

Я настоятельно рекомендую многопоточность, если вы этого еще не сделали!

3 голосов
/ 05 мая 2009

Если вы собираетесь отправлять тысячи электронных писем, я предполагаю, что вы будете частью какой-то корпоративной организации, занимающейся этим. Это не столько ответ на вопрос, но вам действительно нужно знать о CAN SPAM Act 2003 . Моя компания занимается массовыми рассылками, и это было одним из первых, что я получил в первый день работы. Учитывая, что он может предусматривать довольно высокие штрафные санкции, обеспечение того, что вы соблюдаете положения закона, может помочь избежать некоторых проблем.

2 голосов
/ 05 мая 2009

Я работал над системой массовой рассылки для маркетинговой компании. Мы отправляли около 10 миллионов в месяц между несколькими клиентами. Несколько указателей:

  • Убедитесь, что у вас есть форма механизма реагирования на отказы и отказ от подписки, включая электронные письма AOL «Условия предоставления услуг», где пользователь классифицирует вашу электронную почту как нежелательную
  • Используйте Службы Возвращения-Спама для оценки спама и отправки электронных писем, чтобы ваши письма не выглядели как спам для фильтров
  • Рассмотрите возможность использования стороннего устройства или службы, такой как StrongMail, для тома и белого списка с интернет-провайдерами
2 голосов
/ 05 мая 2009

Добавьте эту строку в ваши письма ...

«Пожалуйста, добавьте yoursendingaddress@yourdmain.com в список надежных отправителей»

:) Ха-ха

2 голосов
/ 05 мая 2009

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

1 голос
/ 05 мая 2009

Будьте очень осторожны с тем, как вы заправляете вещи. Я видел какой-то плохой код, который запускал несколько потоков, но не имел возможности установить блокировку данных, в результате чего некоторые люди получали целых десять или более одинаковых писем. Это явно не хорошо.

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

1 голос
/ 05 мая 2009

Я бы серьезно подумал о размещении вашего почтового сервера где-нибудь еще.

Spamhous, Outblaze и другие уже занесли в черный список большую часть адресного пространства EC2. Вам будет тяжело с этим.

См. http://voices.washingtonpost.com/securityfix/2008/07/amazon_hey_spammers_get_off_my.html а также http://www.webhostingtalk.com/showthread.php?t=856428

ОБНОВЛЕНИЕ для рекомендаций

Если бы я пошел по этому пути, я бы сделал одну из двух вещей. Либо я бы построил свой собственный почтовый сервер и оставался бы на вершине черных списков; или я бы интегрировался с почтовой маркетинговой компанией, такой как Постоянный контакт . У них довольно неплохой API веб-сервисов.

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