Главное Свежее Вакансии Образование
Выбор редакции:
43 146 26 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Честные рассылки через PDD.Yandex, как не попасть в спам

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

Предупреждение

Тех. поддержка яндекса настоятельно рекомендует не использовать их ящики для рассылок. Если у вас не очень много подписчков (до 10000) то по чуть-чуть вполне можно использовать.

Основы

Нужно понимать, что спама в электронной почте много и все ему противодействуют.

Поэтому есть SPF (Sender Policy Framework) и DKIM (DomainKeys Identified Mail). Первый определяет, какие почтовые сервера могут использовать домен, без этой записи, вся почта с вашего домена будет считаться недоверенной.

DKIM более продвинутый метод проверки, каждое письмо будет подписано ЭЦП. То есть достоверно отправлено с вашего сервера и было подписано внутри него.

Далее для рассылок нужно понимать, что используя почту для доменов нужно поддерживать лимиты рассылки, за одно соединение нельзя отправлять более 35 писем, поэтому в скрипте надо будет разрывать соединение.

Также я заметил, что нужно делать перерывы между отправкой писем. Используя перерыв в 1 секунду между письмами и в 10 секунд между соединениями, я смог отправить более 2000 писем за один день. Дальше нужно ждать 24 часа, возможно если использовать большие промежутки времени, вы сможете отправить и больше, но предел будет 3000 для яндекса.

Настроим DNS

Вы должны добавить записи в DNS вашего домена.

https://yandex.ru/support/pdd/records.xml

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

Если вы пользуетесь DNS от яндекса, то DKIM будет уже настроен для него при привязке почты.

Если же нет, информация по настройки есть тут - https://yandex.ru/support/pdd/additional/dkim.xml

Копипасть полную инфу не буду, но дам подсказку, в поле хост надо писать именно "mail._domainkey" (без кавычек) и никак иначе.

Для всех настроек DNS нужно ждать 24 часа. Потом можно отправить любое письмо на test@allaboutspam.com обратным письмом придет ссылка на анализ вашего письма. Будут показаны все проблемы, работает ли у вас DKIM, SPF и т.д.

Заголовки

Существуют обязательные заголовки для рассылок. Приведу пример того, как я это использовал в SwiftMail:

$headers = $swift_message->getHeaders();
$headers->addTextHeader('Precedence', 'bulk');

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

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

$list = $swift_message->getHeaders()->get('List-Unsubscribe');
$list->setValue('<'.$link.'>')

Каждые 30-35 запросов рвем соединение и ждем:

$transport->stop();
echo "transport sleep\r\n";
sleep(10);
$transport->start();

Немного помогу с подключением и заданием самих сообщений это все задаём один раз:

$transport = Swift_SmtpTransport::newInstance('smtp.yandex.ru', 465,'ssl')
    ->setUsername('почта@домен')
    ->setPassword('пароль');
$swift_message = Swift_Message::newInstance()
    ->setReplyTo($from,'PushAll - Напоминание')
    ->setFrom($from,'PushAll - Напоминание')
    ->setSubject($subject)
    ->setReturnPath($from);

Шлем по одному в цикле, это используем каждый раз

$swift_message->setTo($email);
$swift_mailer->send($swift_message,$failedRecipients);

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

  1. Почему этот человек получил письмо (например, потому что он был зарегистрирован) Для полноты требуется время подписки, айпи подписки и т.д. но я этим принебрег.
  2. Указана та же самая ссылка на отписку.
  3. Никаких кратких ссылок, все ссылки должны работать и видны, также не приветствуются длинные ссылки.

Основное перечислил, но общий свод правил можно прочитать в помощи яндекса - https://yandex.ru/support/mail/spam/honest-mailers...

Когда следует остановиться?

Если вы видите:

554 5.7.1 Message rejected under suspicion of SPAM

То ждите 24 часа и продолжайте. Учитывайте это в коде своего рассылочного скрипта. Процесс переноса пользователя из списка "Кому еще надо отправить" и "Отправлено" должен идти именно после отправки письма, и желательно делать это сразу в БД. К примеру, я использую для этого redis.

Не пытайтесь снова отправить сообщение до прошествия 24 часов, иначе счетчик сбросится и придется ждать еще 24 часа.

Немного обезопасим себя на принимающей стороне

Зарегистрируйте свой домен в postmaster.yandex.ru , postmaster.google.com , postmaster.mail.ru. Это позволит вам поднять свой уровень доверия и узнавать о проблемах с рассылкой.

Что делать после рассылки?

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

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

Будьте вежливы

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

Буду признателен, если вы поделитесь своим опытом в комментариях или скорректируете неточности, описанные в статье.

+11
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Розанов Александр
Спасибо большое, однозначно пригодится для рассылки. Как раз искали решение проблемы! Однозначно, ставлю плюс!
Ответить
Art-Booking
Платформа для организации мероприятий
Dmitriy Mandrika
Яндекс борется с рассылками, о чем сказано в правилах:
>С вашего ящика отправляется большое количество однотипных или шаблонных писем, а также писем с коммерческими или рекламными предложениями. В Яндекс.Почте отправка таких писем не разрешена — наш сервис предназначен для живого общения между людьми.
https://yandex.ru/support/mail/support/create-send/sending-limits.xml

Рекомендую использовать Amazon SES или другой подобный специализированный сервис.
Ответить
PushAll
Платформа мгновенных уведомлений.
Олег Карнаухов
Да я про это и написал в статье тоже. Я скорее на своё решение перейду не вижу смысла использовать стороннее.
Ответить
Глюкъ Виртуален
Рассылки зло.
Все незапрошенные рассылки мой фильтр автоматически репортит в spamcop. Счастливо потрахаться.
Ответить
PushAll
Платформа мгновенных уведомлений.
Олег Карнаухов
Приветствую что это зло. Использую их как последнюю меру связи с пользователем. Т.к. больше никак не связаться. Кнопка отписки в конце достаточно крупная а не мелким шрифтом как обычно делают.

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

Это можно будет скомбинировать с настройкой времени. К примеру в рабочее время тебе будут приходить пуши по почте - не так отвлекают. А в обычное пушами. Ну и ещё от их приоритета зависеть будет.
Ответить
Александр Банов
Отличная статья.
Ранее через пуши ты рассказывал про статистику открытие писем.
Как ты смотрел эту статистику?
Через: postmaster.yandex.ru , postmaster.google.com , postmaster.mail.ru ?
Ответить
PushAll
Платформа мгновенных уведомлений.
Олег Карнаухов
Я одну из картинок сделал через скрипт с редиректом. Грубо говоря я отслеживаю кто открыл картинку. И на основании этого делаю вывод что письмо открыто.
Ответить
Resta.by
Недвижимость в Беларуси, CRM для компаний
denthebat 19583
...или используйте mailchimp и забудьте про эти запары.
Ответить
PushAll
Платформа мгновенных уведомлений.
Олег Карнаухов
Я сейчас настроил у себя postfix не вижу смысла вообще в mailchimp если есть свой почтовый сервер. В чем профит?
Ответить
Resta.by
Недвижимость в Беларуси, CRM для компаний
denthebat 19583
Да хотя бы в том, что не надо настраивать postfix.
Ответить
Симулятор бизнес-процессов
Сервис имитационного моделирования и оптимизации бизнес-процессов
Prolis Labkk
Для приветственных и транзакционных рассылок почтового сервера хватит. А вот массовые рассылки делать на нем как-то страшновато, нет желания в этом погрязать.
Ответить
PushAll
Платформа мгновенных уведомлений.
Олег Карнаухов
Чистый postfix настроил я за 15 минут. DKIM прикрутил за 30 минут, из за того что тупил жестко. Над dovecot я помучался, но для рассылки это вообще не нужно, я вообще это сделал похоже просто так, чтобы у меня был удобный интерфейс для просмотра писем. а по сути оно и так в папочку прилетает.

К слову, у mailchimp бесплатный тариф это 2000 пользователей. У меня рассылка была на 3000 ящиков, пользователей сейчас 5000. И я расту большими темпами.

Судя по ценам - платить по 2 цента за письмо? Я разослал 3700, это бы мне стоило 5000 рублей. Может я конечно что то не так у них там посчитал.

Плюс:
1. Я буду делать конвертацию почты в пуши через перенаправление. тут мне нужна прямая связь постфикса с моим бекендом.
2. Я буду делать функцию приёма пакетов пушей через почту. К пример занятые люди могут получать уведомления днем на почту менее важные, важные (по работе) в виде пушей обычных. Как итог если есть перерыв на работе - можно глянуть почту и все что там пришло.
Когда рабочие часы пройдут - переключается приоритет и все летит уже пушами. Буду работать над этим.
Ответить
PushAll
Платформа мгновенных уведомлений.
Олег Карнаухов
Ну к слову почему бы нет? Все рекомендации почтовиков я удовлетворяю, за уровнем жалоб слежу (их кстати не было)
Ответить
Resta.by
Недвижимость в Беларуси, CRM для компаний
denthebat 19583
А я просто зарегался за минуту и получил тоже самое + статистика, трекинг, шаблонизаторы и т.д. Но если объемы будут больше то да, лучше что то свое.
Ответить
PushAll
Платформа мгновенных уведомлений.
Олег Карнаухов
домен кстати все равно придется вручную во всяких postmaster регать. те же dkim, spf тоже прописывать. Я верно понимаю, вы же через свой домен рассылаете? Если вам там дают другой - то это очень плохо для рассылок, одно из правил рассылки - они должны исходить с вашего публичного домена, иначе могут быть приняты за спам.

Статистику открытий хорошую дают те же postmaster. Я же еще брал по статистике открытий изображения (и то она не точная т.к. у некоторых изображения выключены)
А чем трекинг от статистики в данном случае отличается? :)

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

К слову для нормальных рассылок, где письма сильно адаптивые в любом случае придется использовать API. Шаблоны вообще не пойму в чем их смысл, проект то верстаешь, тут тоже самое, разве что надо все табличками делать, чтобы адаптивно везде нормально показывалось.

Я за 1-2 часа сверстал собственный шаблон с небольшим текстом и мини версией рекомендаций каталога.

Плюс еще:
1. Я получил большой опыт в настройке всего этого
2. Я не привязан к чему то внешнему
3. Это бесплатно.
4. Больше возможностей. По сути интегрировав поддержку приёма писем пользователями от каналов я получаю аналог меилчимпа, только в разы дешевле (или вообще бесплатно)

При этом смотрите картину что в планах
1. OAuth без ящика работающий через PushAll. Это позволяет пользователю не палить ящик и иметь сразу канал уведомлений и почтовых оповещений, и смс в дальнейшем.
2. Ползьователь не палит свои контракты, в любой момент может отписаться.
3. Как итог - полное отсутствие спама и прозрачность. Сайты могут контролировать % мертвых душ, которые отписались от их канала и отказались от всех рассылок.
Ответить
Максим Рассказов
> Сразу в случае чего можно пометить аккаунт как мертвый (или временно неактивный), если пришло сообщение о недоступности ящика, сразу можно налету многие вещи делать.

А можете подробнее рассказать как пометить аккаунт ? Куда приходят сообщения о недоступности ящика ?
Ответить
PushAll
Платформа мгновенных уведомлений.
Олег Карнаухов
На сам ящик с которого отправляем приходит письмо, что получатель не найден или не доступен.
Ответить
vsDesk helpdesk
Российская help desk (service desk) система
Иванов Александр
У mailchmp, еще есть smtp сервис mandrill - https://mandrill.zendesk.com/hc/en-us/articles/205582427-What-is-Mandrill- стоит 10$ в мес., имеет ограничение в 25000 писем. Далее 0.25 за 1000 писем. Тонкости не знаю, сам не пользовался, но как вариант, посмотрите, может пригодится.
Ответить
PushAll
Платформа мгновенных уведомлений.
Олег Карнаухов
25000 писем мало, ниже описал ;)
0.25$ это 17.5 рублей. Выходит 1.7 копейки за письмо. У меня пуши дешевле стоят :)
100 тысяч пушей в сутки стоят 30-50 тысяч рублей. (я еще примеряюсь) То есть 3.1 миллиона.
Если при 50к, то это будет по 1.6 копейки за пуш, а при 30к это уже 0.96 копейки. Думаю скорее 30к будет за 100к пушей в сутки, 5к, за 10к пушей и там уже промежуточные кому сколько нужно.
Так что мне это будет даже невыгодно скорее. Я вот не знаю что я буду делать потом с смсками. Либо брать с клиентов за них, либо с компаний (что логичнее) либо вообще ни с кого не брать, а компенсировать платными клиентами с пушей.
Ответить
152ФЗ.РФ
Виджет защиты сайта по 152ФЗ
Марк Тлен
На http://rumailer.ru бесплатно до 10000 писем по базе в 5000 адресов можно рассылать, конечно, если это не спам, модерация жесткая. А так могу сказать, что если рассылать большие объемы со всеми подписями настроеными, то лучше использовать с десяток ip, которые будут меняться во время рассылки.
Ответить
PushAll
Платформа мгновенных уведомлений.
Олег Карнаухов
УЖАСНЫЙ совет. Видимо забыл написать главное - у вас всегда должен быть один IP адрес. Если у вас одна рассылка идет с множества адресов почтовики расценивают это как спам.

Насчет rumailer - у меня уже больше 5000 человек :) Когда я подключу приём уведомлений через почту, думаю там будет много писем :)
У меня сейчас на данный момент за эти сутки отправлено в системе 20 тысяч уведомлений.
Ответить
Look@news.info
Агрегатор новостей с рейтингами по популярности.
Евгений Лисовский
Не совсем уж и ужасный. Если у каждого IP будет нормальная обратная запись, которая есть в списке MX-серверов в зоне.
Но это решение больше для распределения нагрузки SMTP-серверов, чем для обхода ограничений для принимающей стороны.
Ответить
152ФЗ.РФ
Виджет защиты сайта по 152ФЗ
Марк Тлен
Крупные сервисы рассылок в любом случае используют большое кол-во ip. Если через тебя по 1млн писем в сутки уходит с 1го ip, то вероятность, что его забанят гораздо выше, чем если бы это число разбивается на несколько адресов. А в рекомендациях почтовиков пишут, что да, надо с одного ip отправлять
Ответить
PushAll
Платформа мгновенных уведомлений.
Олег Карнаухов
Я думаю они отправляют письма одних и тех же клиентов на одном айпи, а новых уже с других. т.е. при работе одного клиента его IP не меняется.
Вообще тут нужно узнавать у тех кто отправляет эти письма в таких количествах. Но я уверен, что они не идут против рекомендации почтовиков.
Дело в том, что IP адрес с большим числом ПОЛОЖИТЕЛЬНЫХ отправок, получает повышенный статус безопасности. То есть старые IP с большим статусом безопасности это хорошо, и даже миллион писем не забанит, это скорее лучше от разных айпи суммарно в миллион писем будет бан паттерна письма.
Ответить
Vlad Zhy
Чтобы избежать попадания сообщений в папку спама, нужно использовать функцию спам-теста в этой - https://www.epochta.ru/products/mailer/ программе для рассылки писем по электронной почте и устранить все ошибки
Ответить
Anna Baykalova
При отравке на test@allaboutspam.com приходит уведомление, что такого адреса нет.

Поэтому, чтобы проверить свои настройки, надо:
1. Отправить письмо на text@allaboutspam.com
2. Зайти на страницу http://www.allaboutspam.com/email-server-test-report/index.php
3. Ввести тот имейл, с которого отправляли письмо

Вам откроется отчет.
Ответить
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.