Сегодня речь пойдет про email-уведомления для пользователей, которые так и норовят попасть в СПАМ.
Как многие из вас знают, за последние несколько лет я успел наклепать целый ряд онлайн-сервисов, которые зачем-то продолжаю поддерживать и одной из крайне распространенных проблем была, как раз-таки, отправка уведомлений на Email. Постоянно с этим было что-то не так.
На первых порах, когда появился на свет Callback Free, в целом, было похуй. Все письма отправлялись тупо через php_mail, без каких-либо настроек. К первой тысячи пользователей сервиса я уже задолбался получать письма в «службу поддержки», что кому-то там не доходят уведомления о заказе обратного звонка. Соизволил-таки я через полгода добавить в DNS-записи домена DMARK, SPF и DKIM-записи – количество обращений подупало. При этом помогли только SPF и DMARK, т.к. при отправке через php_mail DKIM-подпись никак не используется.
Дальше меня начали атаковать пользователи Gmail, потому что в отличии от большинства провайдеров, в Google если письмо не подписано – ты идешь нахуй. Решением стало использование библиотеки PHPMailer, которая уже умеет подписывать письма с помощью DKIM (и еще много всего: добавлять вложения, отправлять HTML-письма и т.д.). Где-то в это же время я наткнулся на великолепный, естественно, бесплатный (условно) сервис mail-tester.com, который очень наглядно покажет, что не так с твоими рассылками, сам проверит DNS-записи и предложит замену (если будут какие косяки), чекнет ip сервера по всем популярным спам-базам. В целом, крайне удобная штука в качестве чек-листа для настройки массовых и/или автоматических рассылок. Но о нём – в следующем посте.
После, года 2 я вообще никак к этому не притрагивался. Рассылки были не идеальны, но лишнего времени ковырять настройки у меня не было, да и мне же не платит никто за это? В СТП приходили обращения по недоставленным письмам крайне редко, и я предпочитал закрыть на них глаза.
Длился мой похуизм ровно до тех пор, пока я не ввёл платную подписку на Workapp, и вот тут началось горение жопы. Если в случае с бесплатным сервисом, пользователь не обломится и залезет в папку СПАМ, а даже если не додумается, то это исключительно его проблемы. Одним таким больше, одним не меньше – когда твоим сервисом пользуются больше 10 тыс. человек – в принципе, фиолетово. Но всё меняется, когда ты сам начинаешь платить за таких пользователей (в рекламу). Ты бюджеты значит слил, а у тебя куча пользователей, привлеченных с помощью рекламы, просто не проходят верификацию (с высокой долей вероятности, потому что им письмо не дошло).
Первым делом, я тут же вылизал все рассылки до оценки 10/10 согласно mail-tester.com, и тут же вскрывается новая проблема – а письма-то доходят с охуенной задержкой (не мудрено, т.к. все сервисы крутятся на одном сервере, а Callback Free спамит минимум добрую дюжину писем в секунду).
Первая мысль – использовать специализированные сервисы для рассылки транзакционных писем. Я взял первый попавшийся из наиболее популярных – Mail Gun. И каково же было мое удивление, когда в mail-tester.com я увидел оценку 7.5! Серьезно? Я же за это еще и денег плачу и в замен получаю ip из блэклиста спам-ассассина.
В итоге я пришел к своему SMTP-серверу. Почему сразу так не сделал? А потому что повёлся на статейки Unisender, что это сложно, что требует мощного железа, что такие письма чаще всего валятся в СПАМ и вообще почтовые провайдеры считают всех владельцев self-hosted почты мошенниками и спамерами. А что же на самом деле?
1. Сложно? Нет!
Exim4 по умолчанию стоит практически на любом VDS, настройка домена под рассылки занимает от силы минут 5.
2. Требует мощного железа? Нет!
Антивирус ClamAV и Антиспам Spam assassin, действительно, могут положить сервер обрабатывая твои входящие письма, просто потому что для такого ПО рекомендуется использовать сервера минимум с 2 процессорами и 2 гигами ОЗУ. Но в моем случае, вся входящая почта попросту отбрасывается, мне нечего проверять, поэтому я не использую ни Антиспам, ни Антивирус, а exim4 даже с большим объемом исходящей корреспонденции не создает какой-либо видимой нагрузки.
3. Банят? Нет!
Ровно как mail-tester.com, все почтовые провайдеры, где я проводил тесты (Яндекс, Gmail, Mail RU) ни разу не пикнули, не вешали «красный замок» и не отправляли мои уведомления в СПАМ. Postmaster Mail RU также говорит об отсутствии каких-либо проблем спустя практически лям отправленных писем.
А вывод сегодня будет простой как три гривны: «никогда никому не верь»
Я зачем-то написал, что сервис mail-tester.com требует отдельного поста. На самом деле не требует, просто сохрани его в закладки и проверяй свои рассылки перед боевым запуском.
Что он умеет?
• Проверка на наличие и совпадение HTML- и текстовой версий письма
• Проверка DKIM
• Проверка SPF
• Проверка DMARK
• Проверка домена
• Проверка ip
• Тест SpamAssassin
• Тест Антивирусом
• Проверка на наличие Alt-тегов
• Проверка на наличие битых ссылок
• Проверка на наличие сокращенных ссылок
• Проверка наличия возможности отписаться от рассылок
• Проверка наличия ip в 24 самых распространённых блэк-листах