Перейти к основному контенту

Письма с сайта возвращаются с ошибкой DMARC policy

Примеры писем:

550 5.7.1 This message was not accepted due to domain owner DMARC policy (RFC 7489) https://help.mail.ru/mail-help/postmaster/dmarc
550-5.7.1 Unauthenticated email from mail.ru is not accepted due to domain's
550-5.7.1 DMARC policy. Please contact administrator of mail.ru domain if this
550-5.7.1 was a legitimate mail. Please visit
550-5.7.1 https://support.google.com/mail/answer/2451690 to learn about DMARC
... 550 5.7.1 Email rejected per DMARC policy for ...

Проблема с доставкой сообщений связана с применением новой политики DMARC, связанной с ужесточением правил прохождения спам фильтров.

DMARC — это протокол защиты от спама и от несанкционированной рассылки почты от имени домена, основанный на существующих механизмах DKIM и SPF. Официальный сайт: dmarc.org.

Если вы получаете подобные приведённым выше сообщения, скорее всего, почта с сайта у вас отправляется от имени почтового ящика на базе @mail.ru, @bk.ru, @list.ru или @inbox.ru. Mail.Ru не принимает сообщения, отправленные через phpmail, если в почтовых заголовках числится ящик, принадлежащий mail.ru. Такие сообщения, согласно внедрённой Mail.Ru политике DMARC, отклоняются.

Как решить проблему

Решить проблему можно двумя способами:

Способ 1: изменить ящик, с которого отправляются сообщения

Обычно e-mail, от имени которого рассылаются почтовые сообщения, прописывается в административной части CMS. Также его можно изменить напрямую в скрипте, рассылающем сообщения (поле «From»).

Необходимо, чтобы сообщения рассылались с ящика на базе вашего доменного имени, например «webmaster@domain.ru», где domain.ru — ваш домен. При этом должна быть корректно настроена SPF-запись: Как настроить SPF-запись?

Также, почтовый ящик необходимо изменить в файле php.ini:

Изменение ящика в php.ini
  1. 1.
    войдите в панель управления хостингом и откройте на редактирование файл php.ini: Как изменить параметры PHP;
  2. 2.

    найдите строку вида:

    sendmail_path = "/usr/sbin/sendmail -t -i -f e-mail@mail.ru"

    В данной строке вместо «e-mail@mail.ru» укажите почтовый ящик, не относящийся к доменам @mail.ru, @bk.ru, @list.ru и @inbox.ru.
    Желательно указать почтовый ящик на вашем домене, например, «webmaster@domain.ru», где domain.ru — ваш домен.

    Кроме этого, прописанный в php.ini почтовый ящик должен существовать. Если вы пользуетесь почтой на хостинге, создайте почтовый ящик на домене по инструкции и пропишите его в файле php.ini.

Способ 2: использовать SMTP-авторизацию

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

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0