Как организовать рассылку со своего сайта и не попасть в спам-лист

  

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

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

Теория различных аспектов по организации массовых рассылок

logo

И так, начнем с теории.  Для того чтобы легче было усваивать информацию, построим логическую цепочку отправки электронного письма на примере общепринятого в мире протокола SMTP.

  1. Существует тот кто отправляет письмо (отправитель) и тот кто получает письмо (получатель).
  2. Для отправки и получения почты у отправителя и получателя на компьютере установлены специальное программное обеспечение под названием почтовый клиент.
  3. Когда отправитель набрал сообщение и нажал отправить, то почтовый клиент связывается с почтовым сервером, используя специальный протокол SMTP.
  4. Далее почтовый сервер отправителя взаимодействует с почтовым сервером получателя, тем самым происходит передача данных на почтовый ящик получателя.
  5. На финальной стадии с помощью специального протокола POP3 или IMAP, сообщение доставляется от почтового сервера получателя к его почтовому клиенту и в результате получатель видит на экране ваше сообщение.

Вкратце весь процесс показан на схемке ниже:

image02_3BCDE

Теперь залезем во «внутренности» передаваемых нами данных. Структура письма включает в себя некоторую информацию:

  • поле «HELO» - имя отправляющего узла или имя сервера;
  • поле «MAIL FROM» - адрес с которого осуществляется отправка письма;
  • поле «RCPT TO» - куда отсылается письмо.

Стоит заметить, что качественная рассылка начинается с этих банальных мелочей.  Что бы не попасть в DNSBL (черные списки, в которых оказываются те, кто рассылает спам) возьмите на вооружение  несколько советов:

  • HELO даёт всему начало! SMTP-клиент передаёт значение поля HELO, указывая имя своего компьютера в качестве аргумента. Другими словами, он сообщает: «Привет, я — 192.168.0.3.». Если попытать произвести массовую рассылку не указав явно данное поле, то вероятность попадания в DNSBL увеличивается.
  • «MAIL FROM» как было сказано, несет адрес отправителя. Следите за тем что бы он был реальным и существовал. Например «pypkinmyplin@yandex.ru» может оказаться несуществующим и тогда при первичной проверки на спам вероятность попадания в DNSBL возрастает.

При настройке почтового сервера (не важно это Exim, Postfix, Sendmail  и тп) важно грамотно прописать некоторые его параметры, а именно:

  • PTR запись. В ней в обратном порядке записывается IP адрес хоста, с которого рассылается почта. По этой записи почтовики распознают имя хоста по его IP. Например, если  IP вашего почтового сервера 111.45.47.96. Открываем наш NS сервер (или, что чаще настройки провайдера сервера или хостера) и добавляем следующую DNS запись (IP при этом «разворачиваем»):

96.47.45.111. in-addr.arpa. IN PTR mailserver.clickon.ru.
Это будет означать, что адресу 111.45.47.96. будет соответствовать имя узла mailserver.clickon.net.

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

clickon.ru. IN TXT "v=spf1 a mx ~all"
или/и (если NS позволяет создавать SPF записи)
clickon.ru. IN SPF "v=spf1 a mx ~all"

  • DKIM (DomainKeys Identified Mail) — своеобразный метод email аутентификации. Данная технология повышает качество классификации и идентификации электронной почты, используя методы антиспама и антифишинга. Метод DKIM добавляет на стороне получателя специальную электронную цифровую подпись, которая непосредственно связана с доменом организации от которой было выслано письмо. В результате определяется репутация отправителя и попадание его в доверенную зону, либо в  DNSBL. Все нюансы генерирования ключей можете прочитать в соответствующей литературе, наш же обзор носит другой характер.
  • Грейлистинг. Зачастую при отправке письма возникает ситуация перегруженности почтовых серверов. В этом случае они «ответят» ошибкой на данный запрос и «попросят» попробовать позже. В подобной ситуации разработчик должен позаботиться о том, чтобы письмо обязательно было доставлено получателю, если не с первого раза, то как минимум со второго (напротив, отправитель предпримет попытки доставить письмо позже, поставив его в свою очередь на отправку).  Эта технология называется Greylisting. Использовать её в современных реалиях просто необходимо.

Как не попасть в спам

Теперь кратко обобщим всю информацию на тему как же не попасть в Черные списки:

  • При указывании способа маршрутизации MX запись должна ссылаться на запись А
  • Запись имени или запись A  для почтового сервера обязательно должна иметь зеркальную запись PTR
  • При указывание HELLO заголовка, там должна присутствовать либо А, либо MX запись
  • Старайтесь всегда прописывать SPF записи
  • По стандартам RFC, если не удалось доставить письмо из-за каких либо сбоев, перед повторной доставкой рекомендуется устанавливать первоначальный тайм-аут примерно в 30 минут. Попытки повторяются от 3 до 5 дней. В наше время сбои происходят частенько, поэтому в первый час рекомендуется выполнять 2 попытки отправки.
  • Все ваши IP должны быть зарегистрированы через Feedback Loop. Это  специальный стандарт выдачи информации о жалобах на спам от провайдера услуг электронной почты отправителю писем. 
  • В письме, которое вы передали, должна быть предусмотрена возможность отписаться от ваших рассылок в 1 клик (как правило, используется List-Unsubscribe). Кликнул на ссылку — сражу же без вопросов отписался.
  • Ставьте тайм-аут и интервалы при отправке писем.

Аспекты организации собственной массовой рассылки

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

  • Единичные сообщения. Сюда можно отнести все уведомления, которые получает пользователь при обращение с сайтом (например регистрация, подписка, покупка и тп). Во всех случаях автоматически ему приходят оповещения о тех или иных действиях, которые он совершил.
  • Массовые сообщения. Сюда относим всяческие массовые рассылки и системы массовых оповещений.
  • Списки рассылки (mailing list). Это способ организации массовой рассылки, разделяющий все сообщения на определенные заданные тематики. Имя списка рассылки представляет собой виртуальный коллективный почтовый адрес. То есть сообщения, направленные по этому адресу, доставляются всем членам списка. Выделяют два вида списков рассылки: модерируемые или немодерируемые. Модерируемые списки рассылки – это списки, в которых все сообщения, подлежащие массовой рассылке, проходят модерацию. То есть проверку содержания. В результате этой проверки могут быть отброшены сообщения, не относящиеся к тематике списка, содержащие рекламу, ненормативную лексику, противоречащие законодательным актам и т.п. Такая проверка может осуществляться специальными людьми, называемыми модераторами, или автоматически, например, по определенным ключевым словам.

Пользователи Интернет имеют возможность присоединиться к интересующему их списку рассылки (подписаться на рассылку). Обычно это осуществляется путем отправки специального сообщения по определенному адресу. После "оформления" подписки, пользователю будут пересылаться материалы, которые подлежат распространению через список рассылки. Единственным неудобством такого подхода может оказаться периодическое переполнение почтового ящика пользователя при больших объемах рассылки. Чтобы таких проблем не возникало, организаторами списка рассылки может предусматриваться режим, в котором рассылаются не полные материалы, а только информационные сводки. Когда у пользователя отпадает необходимость в получении материалов списка рассылки, он может исключить себя из списка. Обычно это реализуется также как и подписка – путем отправки специального сообщения на определенный адрес.

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

Допустим, пользователь заполнил форму на сайте и нажал на кнопку зарегистрироваться. Наша задача заключается в том, что бы проверить заполненность форм на ошибки и отправить пользователю сообщение об успешной регистрации. Если писать на чистом Parser, то получается примерно так:

^mail:send[
	$.from[Вася <vasya@hotmail.ru>]
	$.to[Петя <petya@hotmail.ru>]
	$.subject[Регистрация]
	$.text[Спасибо за регистрацию на сайте. Ваш логин — login, пароль — pass. Если вы не регились, то  просто забейте!]
]

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

Переходим ко второй задачи, а именно массовой рассылке. Допустим вам нужно разослать порядка 1500 сообщений зарегистрированным пользователям о расширении ассортимента. Для того, что бы ее реализовать, вам не подойдет решение из первой задачи. Почему, спросите вы? Да потому что, если вы пройдете  циклично по всем адресам и каждому кинете письмо, то возникает вероятность того, что вы рано или поздно окажетесь в  DNSBL.  То есть так делать нежелательно:

^for[count](1;1500){ 
	^mail:send[ 
		$.from[$peremennaya_from] 
		$.to[$peremennaya_to] 
		$.subject[Рассылка] 
		$.text[У нас новый ассортимент!] 
	] 		
}

В бан мы попадем или нет по нескольким причинам:

  • если неправильно настроен почтовый сервер
  • если неправильно настроен скрипт отправки массовой рассылки
  • не указаны все заголовки в письме
  • нет ссылки отписаться и тп..

Вообщем все, о чем мы говорили в разделе «Теория».

Отсюда возникает вполне резонный вопрос? Как же поступить в данной ситуации и как это реализовано у других пользователей?

Выделяю два решения:

  1. Использование стороннего сервиса
  2. Вручную писать велосипед

Какой почтовый сервис выбрать

Выбор стороннего сервиса

При выборе стороннего сервиса, прежде всего, важна его стабильность в работе, репутация и цены. Существует больше сотни крупных почтовых компаний, которые предоставляют свои услуги для ведения почтовых рассылок и всяческих оповещений.  Всех их перечислять смысла нет. Я бы выделил Amazon SES — это гигант в почтовой индустрии. Все что вам будет необходимо для массовой рассылки, за вас уже давно придумали, осталось дело за малым — интегрировать систему и следить за результатом. Ценовая политика следующая:

  • 62 000 сообщений любым адресатом в месяц бесплатно
  • 1 Гб переданных данных ежемесячно — бесплатно, свыше — по тарифам..

Согласитесь, что для небольшой компании этих лимитов в месяц хватит с головой! При этом все бесплатно.

Собственный почтовый сервер

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

  • Сначала, естественно, настраиваем почтовый сервер.
  • Читаем официальную документацию всех почтовиков на которые вам придется отправлять сообщения. У каждого присутствуют свои ограничения. Например, часто запрещается отправлять более 100 писем на определенные серверы в течении часа.
  • После анализа, приступаем к написание самого скрипта. Нужно продумать множество мелочей. Последовательность действий следующая:
  1. Извлекаем из БД список всех emails, которым хотим отправлять рассылку
  2. Сортируем их не по имени, а по очередности чтобы за почтой Яндекс шла почта Гугла, затем Рамблера, затем mail итп. Тем самым мы скопом не кидаем все письма, что является хорошим тоном.
  3. Если вам нужно разослать письма 1500 клиентам, то не делаем это сразу же одним махом, а отправляем по 100 писем каждые 30 минут с интервалом в 2 секунды. Самый простой вариант реализации данной задачи - это скормить скрипт cron-у и вызывать его каждые пол часа. При этом в скрипте, естественно, ведем учет отправленных сообщений и статистику.
  • Занимаемся дизайном рисуем админку и клиентскую часть.
  • Тестируем
  • Убираем баги
  • Снова тестируем :)

Выводы

Если вы, фрилансер, небольшая фирма или компания, то я бы рекомендовал воспользоваться готовыми сервисами для рассылок.

Плюсы готовых сервисов для рассылок:

  • бесплатно, при небольших объемах;
  • удобный и работоспособный интерфейс;
  • нет вероятности попадания в DNSBL;
  • подробный учет статистики.

Если вы гигант, типа Gmail или vk.com , то у вас в штате наверняка работает более 1000 человек и уже давно нашлись спецы, написавшие свой почтовый сервер (и даже не один)!

ps: No Spam!

image03_5666B

SEO 2.0
SEO 2.0
Евгения Медникова
Евгений

соглашусь с автором, что намного проще воспользоваться готовым сервисом для рассылок, но найти качественный настоящая проблема. Я потратил кучу времени на поиски. Сейчас пользуюсь сервисом https://sendbulls.com/ Меня все устраивает, много преимуществ, я думаю дальше так и будет

swetoksv

Здравствуйте! Скажите, пожалуйста, где здесь раздел "Помощь"?

Создание и продвижение сайтов для бизнеса только кликни мы откликнемся
8-800-77-55-123 Меню
В порядке и на условиях, определённых Федеральным законом от 27 июля 2006 года № 152-ФЗ «О персональных данных». Согласие на обработку следующих моих персональных данных: фамилии, имени, отчества, года, месяцы, даты и места рождения, пола, гражданства, места жительства, в том числе сведения о регистрации по месту жительства, месту пребывания, места работы, социального положения (статуса), реквизитов документа, удостоверяющего личность. Обработка моих персональных данных Оператором осуществляется исключительно в целях защиты моих прав на регистрацию доменного имени, услуги по созданию и продвижению сайтов, услуги по размещению рекламных компаний в интернет и обеспечения соблюдения законов и иных нормативных правовых актов, связанных с предоставлением этих услуг. Я предоставляю Оператору право осуществлять следующие действия с моими персональными данными: сбор, систематизация, накопление, хранение, уточнение (обновление, изменение), использование, обезличивание, блокирование, уничтожение персональных данных, передача персональных данных между: - Оператором ООО «КликОН», в котором мне будут осуществляться вышеперечисленные услуги ; - Оператором АНО «Региональный Сетевой Информационный Центр», осуществляющим непосредственную регистрацию доменных имён ; Мне гарантируется конфиденциальность моих персональных при обработке их и хранении не дольше срока, предусмотренного нормативными актами. Настоящие согласие данное мной и действует бессрочно. Я оставляю за собой право отозвать своё согласие посредством составления соответствующего письменного документа, который может быть направлен мной в адрес Оператора по почте заказным письмом с уведомлением о вручении либо вручен лично под расписку уполномоченному представителю Оператора.