@alenov
Программист

Преодоление Sender Policy Framework: как красиво решить задачу рассылки писем пользователей своим почтовым сервисом?

Исходные данные такие.

Есть SaaS сервис, который, кроме прочих основных дел, доставляет сообщения от пользователя SaaS его клиентам. Почту доставляет mail-сервер сервиса, скажем, mail.saas.ru.

Допустим, пользователь имеет свой адрес отправителя saas_user@yandex.ru, и отправляет сообщение своему клиенту на адрес client@yandex.ru. И тут засада: принимающий сервер Яндекса с некоторых пор сурово следит за соблюдением SPF и тут же режектит сообщение.

Как я обхожу это дело сейчас? Я создаю на своём почтовом сервисе специальный адрес типа saas_user@saas.ru и отправляю письмо, указывая этот адрес в From. В Reply-To, разумеется, указываю saas_user@yandex.ru. Худо-бедно работает, но выглядит как костыль. Как сделать красиво, указывая в From реальный адрес saas_user@yandex.ru, и в то же время не нарушить SPF? Я же не могу сказать админу Яндекса "добавь mail.saas.ru в свою txt-запись"!

P.S. Та же проблема с отправкой на адреса в пользовательских доменах. По феншую, нужно им в txt-запись добавить правило для saas.ru. Как-то сложно очень...
  • Вопрос задан
  • 273 просмотра
Решения вопроса 1
SPF для того и придуман, чтобы только добавленные (в т.ч. неявно добавленные) в SPF запись хосты могли отправлять почту от имени пользователя домена. Поверх SPF, наверное еще и DMARC есть. Везде, где есть и проверяется SPF и/или политика DMARC, Ваши сообщения с нарушением SPF не будут приняты почтовым сервером. А если будут приняты, то пометятся как спам. В этом случае Вы даже не узнаете, что они не прочитаны.

Поэтому здесь верное решение именно такое, как Вы уже применили. Но красивым его не назовешь. А красиво было бы не от имени пользователя SaaS письмо посылать, а по нажатию кнопки или ссылки в письме открывать на вашем веб сайте тикет, назначенный на пользователя SaaS. Т.е. чтобы вообще не было имейла отправителя saas_user@yandex.ru, а вместо этого у получателя была возможность с ним связаться через тикет.

И обратите внимание, кроме From и Reply-To, есть еще Return-Path. Возможно, Вам в Return-Path нужно указать свой адрес, а в From и Reply-To - saas_user@yandex.ru. Коммерческие сервисы рассылок так делают.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы