Какие существуют методы для настройки большой системы уведомлений по электронной почте? - PullRequest
15 голосов
/ 19 января 2010

У моей компании есть сайт, построенный на PHP.Мы используем встроенную функцию электронной почты PHP для ежедневной отправки тысяч писем подписчикам.

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

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

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

Даже используя эту новую идею, мы говорим о МНОГО отправляемых писем.

Так что мой вопрос очень специфичен:У меня есть приблизительное представление о том, как создать систему внутри, но каков наилучший способ рассылки всех этих писем?

Пули, на которые следует обратить внимание:

  • Иногда электронные письма 'содержимое идентично для разных получателей, но многие из них будут настроены для каждого пользователя (они выбирают то, о чем им сообщают, а иногда и агрегируют).
  • Мне нужна система, которая не будет душить сервер и завершит работу за приемлемое время.Я не против пойти со сторонним сервисом (даже платным), если это то, что он собирается взять.
  • Система должна легко подключаться к PHP, или API или что-то еще должно быть относительномне легко звонить с вашего обычного веб-сервера.
  • У нас есть выделенный сервер и полный контроль над ним (поэтому мы можем устанавливать приложения, службы и т. д.).
  • Любой вид подробного отслеживанияинформация (открывается, щелкает и т. д.) является огромным плюсом.
  • Эти электронные письма иногда чувствительны ко времени (поэтому не могут занимать весь день для отправки).

Мысли?Подсказки?Направьте меня в правильном направлении?


РЕДАКТИРОВАТЬ

Чтобы уточнить:

Я могу сделать это самостоятельно:

  • ведение списка пользователей
  • обработка генерации содержимого электронной почты на основе пользовательских предпочтений

И что-то еще (приложение, сторонняя служба, w / e), чтобы:

  • принимает содержимое и адреса электронной почты и фактически отправляет электронные письма
  • предоставляет данные отслеживания (открытия, клики и т. Д.).Чем больше деталей, тем лучше.

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

Ответы [ 9 ]

2 голосов
/ 20 января 2010

Мы используем встроенную функцию электронной почты PHP для ежедневной отправки тысяч писем подписчикам.

Это ужасная идея. Он заглушает наш сервер и на завершение всего пакета уходит часы.

Почему вы думаете, что ваши проблемы связаны со встроенной функцией электронной почты PHP? Это очень тонкая оболочка для «почты» или простой SMTP-клиент в зависимости от того, на какой платформе вы работаете.

Когда вы говорите, что это душит ваш сервер - вы имеете в виду ваш почтовый сервер? Ваш веб-сервер? что-то еще?

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

Можете ли вы сказать нам:

  1. на какой ОС работает PHP

  2. как вы вызываете код для создания писем

  3. что такое почтовый конфиг в файле php.ini

  4. какой тип MTA вы используете? На какой ОС?

  5. как вы настроили MTA - доставляет ли он напрямую или через интеллектуальное реле?

  6. какой сервер "забит"?

  7. Какие меры защиты от спама вы используете для исходящей почты?

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

С

1 голос
/ 19 января 2010

Я бы рекомендовал использовать стороннюю почтовую службу Silverpop или что-то в этом роде. Мы использовали их в течение нескольких лет и были довольно довольны. У них уже есть отношения с основными почтовыми клиентами (AOL, Yahoo !, Gmail и т. Д.), И они хорошо сообщают вам, может ли отправляемый вами материал быть спамом.

У них довольно обширный API, который использует запросы XML HTTP / HTTPS, которые могут быть привязаны к существующим системам. Вы можете использовать его для удаленного запуска электронной почты, планирования почтовых отправлений, настройки содержимого электронной почты, настройки, управления и запроса огромных списков получателей, запуска пакетных процессов и т. Д.

Это не идеальный сервис, но по сравнению со многими другими, они справляются довольно хорошо. До сих пор у меня было очень мало жалоб на них.

1 голос
/ 19 января 2010

Обычно я справлялся с этим, имея функцию отправки почты, которая помещала электронные письма в очередь (таблица базы данных), выполняя задание каждые пару минут, получая следующие x писем в очереди, отправляя их ипометил их как успешные.Это простые кости этого.Затем вы можете добавить обработку ошибок электронной почты, возвращенной почты и т. Д. В версии 2.

0 голосов
/ 27 февраля 2013

Я знаю, что это более старый вопрос, но я просто хотел предложить SendGrid , который, по сути, является «Сервером электронной почты как услуга», позволяющим отправлять электронные письма по цене за каждое электронное письмо.

0 голосов
/ 22 октября 2011

Один из моих друзей использует http://www.tailoredmail.com, но я не использовал его лично

0 голосов
/ 19 января 2010

Проверьте Campaign Enterprise для возможного внутреннего решения.

0 голосов
/ 19 января 2010

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

Таким образом, вы просто используете PHP для создания персонализированных необработанных данных в формате MIME для каждого исходящего электронного письма и помещаете их во временный каталог перед передачей. (Я писал такую ​​систему в прошлом, и вы будете удивлены способностью PHP обрабатывать электронные письма, даже с довольно сложными текстовыми и HTML-сообщениями с изображениями в виде встроенных вложений и т. Д.) Когда вы были готовы Передача, затем вы переместите файлы в массовом порядке в контролируемую папку PowerMTA, и она позаботится о передаче.

В зависимости от того, как вы к этому относитесь, выгода / проблема такого решения заключается в том, что вам необходимо построить доверительные отношения с такими людьми, как AOL, MSN / Hotmail и т. Д., Чтобы ваш почтовый сервер не попал в черный список. из-за сообщения электронной почты пользователя как СПАМ. (Тем не менее, это, вероятно, будет фактором для любого решения DIY).

0 голосов
/ 19 января 2010

Почему бы не сохранить свою систему PHP и использовать сторонний SMTP-сервис?Некоторые надежные компании предлагают использовать машины только для электронной почты по разумным ценам, например Dewahost , который я планирую использовать.

Также см. Вопрос Сторонние отправители электронной почты и мой ответ там.

0 голосов
/ 19 января 2010

Используйте Google AppEngine, если вы беспокоитесь о масштабируемости и настройке: он предоставляет API электронной почты и вы можете связать с ним все, что угодно, только через интерфейс HTTP.не обращайте внимания, если это не подходит.

...