Настройки Яндекс - почты

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

MX-запись:

ПоддоменТип записиПриоритетКуда указывает
@ MX 10 mx.yandex.ru.

Записи поддоменов:

ПоддоменТип записиДанные
(куда указывает)
Примечание
imap.ВАШ_ДОМЕН.ru. CNAME imap.yandex.ru. Чтобы забирать почту по протоколу IMAP, его необходимо включить на странице «Настройки» в разделе «Сбор почты»
pop.ВАШ_ДОМЕН.ru. CNAME pop.yandex.ru. Чтобы забирать почту по POP3
smtp.ВАШ_ДОМЕН.ru. CNAME smtp.yandex.ru. Чтобы отправлять почту по SMTP
mail.ВАШ_ДОМЕН.ru. CNAME domain.mail.yandex.net. WEB-интерфейс почты на вашем домене
@ TXT v=spf1 redirect=_spf.yandex.ru Настройка SPF-записи, чтоб отправляемые письма не считались спамом

Запись подтверждения владения доменом:

ПоддоменТип записиКуда указывает
yamail-XXXXXXXX CNAME mail.yandex.ru.

Не забывайте точки на конце значений!

В почтовой программе прописывайте:

Получение почты, POP3:

  • адрес почтового сервера - pop.ВАШ_ДОМЕН.ru
  • защита соединения — SSL
  • порт — 995

Отправка почты, SMTP:

  • адрес почтового сервера - smtp.ВАШ_ДОМЕН.ru
  • защита соединения — SSL
  • порт — 465

Не рекомендуется использовать почтовый сервер вашего провайдера для отправки почты от вашего имени на Яндексе, т.к. в этом случае письма не получат цифровую подпись и больше вероятность попадания в спам у получателя.

Альтернативый вариант:
POP3: pop.yandex.ru
SMTP: smtp.yandex.ru
Пользователь: Имя@ВАШ_ДОМЕН.ru
Пароль: ****
Другие настроки....
Сервер исходящей почты:
[x] SMTP-серверу требуется проверка подлинности
   (*) Аналогично серверу для входящей почты

Просмотр почты через WEB-интефейс:

mail.ВАШ_ДОМЕН.ru

Настройка SPF и DKIM для отправки почты со своего сервера через Yandex

  • Получаем токен для активации API Яндекс.Почты для доменов:
    http://api.yandex.ru/pdd/doc/reference/get-token.xml
  • Далее получаем приватный ключ для DKIM через API следующим образом:
    https://pddimp.yandex.ru/dkim/status.xml?domain=ДОМЕН&token=ТОКЕН&secretkey=yes
  • Сам ключ находится в секции secretkey. Его нужно скопировать из исходного кода HTML-страницы.
  • Если домен на Яндекс не делегирован, то нужно настроить TXT-запись для подомена mail._domainkey.domain.com. именно на том сервере, с которого производится отправка писем. Если домен делегирован на Яндекс, то все должно быть прописано автоматом.
  • SPF (Sender Policy Framework) — расширение для протокола SMTP, позволяющее проверить, не подделан ли домен отправителя. Настраиваем SPF TXT запись:
    Если письма от имени вашего домена будут отправлять не только серверы Яндекса, а например, серверы, на которых размещён ваш сайт (какие-нибудь уведомления о регистрации или о заказах), эти серверы тоже нужно перечислить в SPF-записи. Вместо “v=spf1 redirect=_spf.yandex.ru” необходимо указать следующее значение:
    “v=spf1 ip4:IP-1 ip4:IP-2 ip4:IP-3 include:_spf.yandex.ru ~all”, где IP-1, IP-2, IP-3 — адреса тех серверов, с которых дополнительно отправляются письма.
    На этапе тестирования и отладки:
    v=DMARC1;p=none;rua=mailto:admin@htmlweb.ru;ruf=mailto:admin@htmlweb.ru;fo=1 Когда все настроено:
    v=DMARC1;aspf=s;p=reject;sp=reject
  • Теперь почту с сервера легко можно отправлять через PHPMailer, например используя YiiMailer:
$mail = new YiiMailer('registration', ['activationUrl' => $activationUrl,'sourcePassword' => $sourcePassword,]);

$mail->setFrom(Yii::app()->params['noreplyEmail'], Yii::app()->params['siteName'] . ' Support');
$mail->setSubject('Welcome to ' . Yii::app()->params['siteName'] . '.com!');
$mail->setTo($model->email);
$mail->isSMTP();
$mail->Host = Yii::app()->params['noReplaySmtpHost']; // smtp.yandex.ru
$mail->Port = Yii::app()->params['noReplaySmtpPort']; // 465
$mail->SMTPAuth = true;
$mail->SMTPSecure = Yii::app()->params['noReplaySmtpSecure']; // ssl
$mail->Username = Yii::app()->params['noreplyEmail']; // noreplay@domain.com
$mail->Password = Yii::app()->params['noReplaySmtpPassword']; // noreplay@domain.com password

$environments = require(Yii::getPathOfAlias('application') . '/config/environments.php');
$mail->DKIM_private = dirname($environments[ENVIRONMENT]['config_main']) . '/DKIM_private_key.txt';
$mail->DKIM_domain = Yii::app()->params['DKIM_domain'];
$mail->DKIM_selector = Yii::app()->params['DKIM_selector'];
$mail->send();

DKIM подпись для писем отправляемых с сайта и через WEB-интерфейс Яндекс

Если Вы делегируете почту на яндекс, то при отправке писем через WEB-интерфейс, по умолчанию они все будут подписываться с помощью DKIM-подписи, что уменьшает вероятность попадания писем в СПАМ.

Если Вы хотите подписывать почту и когда вы отправляете письма через PHP функцию mail с вашего сервера Вам необходимо получить закрытый ключ. Для этого нужно:

  • Авторизоваться на Яндекс и получить авторизационный токен с помощью запроса: https://pddimp.yandex.ru/get_token.xml?domain_name=example.com
  • Получить приватный ключ можно с помощью API Яндекс.Почты для домена с помощью запроса: https://pddimp.yandex.ru/dkim/status.xml?domain=example.com&token=ТОКЕН&secretkey=yes
  • Настройка сервера описана на хабре: habrahabr.ru/post/151904

Для проверки корректности подписи используйте сервис Проверка письма на СПАМ. Или отправьте письмо на ваш ящик mail.ru, затем на yandex.ru. Откройте полученное письмо, в кнопке "ещё" найдите пункт "служебные заголовки". Надите запись "dkim=pass" и "dmarc=pass", если нашли - все отлично.


Настройки отображения аватара в письме и обработка нажатия на кнопку "Спам"

Настройка аватара mail.ru и уведомления при нажатии кнопки СПАМ

Настройка аватара mail.ru и уведомления при нажатии кнопки СПАМ в mail почте делаются здесь: postmaster.mail.ru.

Настройка аватара yandex.ru и уведомления при нажатии кнопки СПАМ

Яндекс использует аватары из Gravatar.com.

Здесь можно зарегистрировать FBL-ящик - ящик, на который будет приходить информация обо всех письмах, помеченных как спам на яндексе. Также яндекс поддерживает заголовок в письме List-Unsubscribe.

Настройка аватара gmail.com

Для указания аватара отправителя для почтового ящика на google почтовом сервисе, необходимо загрузить в профиле google-аккаунта свою аватарку.

Feedback Loop или информация о жалобах на спам

FBL – это стандарт выдачи информации о жалобах на спам от провайдера услуг электронной почты отправителю писем. После нажатия пользователем кнопки «Спам» в почтовой системе, почтовая система формирует уведомление о том, что пользователеь пометил письмо как спам. Эту систему используют такие почтовые службы как Hotmail, Yahoo, AOL, mail.ru.

Gmail не предоставляет FBL, но использует специальный заголовок List-Unsubscribe для отписки пользователя от рассылки.

При наличии в письме заголовка List-Unsubscribe у Яндекса рядом с кнопкой «Спам» добавится кнопка «Отписаться».

Обратите внимание, письма без DKIM подписи не получат возможность отправки уведомление о нажатии СПАМ.

Здесь есть скрипт и сервис разбора почты и автоматической отписки.

Проверка микроразметки в письмах

Google предоставляет возможность проверки микроразметки в письмах markup-tester.

Проверка вероятности попадания письма в спам

Сервис mail-tester позволяет принять письмо и проверить какова вероятность попадания его в спам.

Обязательно проверьте и регулярно проверяйте ваш IP адрес на предмет попадания в базы спамеров.

Что нужно ещё сделать, чтобы снизить попадание в спам

Заголовок "Return-Path:" должен соответствовать обратной зоне вашего ip, с которго вы отправляете почту. Проверить можно здесь. Изменить можно с помощью различных способов, самый простой, используя пятый параметр функции mail():

mail('User@htmlweb.ru', mime_header_encode('Заказ'), '<html><body><h1>Проверка</h1><p>Это тестовое письмо</p></body></html>',
    "MIME-Version: 1.0\n".
    "Message-Id: <".urlencode('/unsubscribe/?uid='.$uid)."@htmlweb.ru>\n".
    "From: <noreply@htmlweb.ru>\n".
    "Reply-To: <zakaz@htmlweb.ru>\n".
    'List-Unsubscribe: <' . 'https://htmlweb.ru/unsubscribe/?uid='.$uid. ">\n". /* обработчик отписки*/
    "Content-Type: text/html; charset=".charset,
    '-f webmaster@htmlweb.ru' /* это Return-Path: */
);

Можно настроить postfix:
Посмотреть настройки: postconf -n
Изменить здесь: /etc/postfix/main.cf
Протокол работы: journalctl -u postfix

mydomain = htmlweb.ru

Перезапустить: postfix reload

Можно его прописать в /usr/local/zend/etc/php.ini:

sendmail_path =/usr/lib/sendmail -t -i -f zakaz@htmlweb.ru

Обязательно удалите заголовок "X-PHP-Originating-Script:", который добавляет php для информирования какой скрипт и в какой строке вызвал функцию mail(). Для этого нужно в файле php.ini закомментировать строчку: "mail.add_x_header = On" и перегрузить сервер. Этот параметр показывает принимающему почтовому серверу, что письмо отправил скрипт и существенно портит рейтинг письма.

Использование плюса в почтовом адресе яндекс почты

Яндекс.Почта принимает письма на адреса вида «ваш почтовый адрес+слово» (например, login+vk@yandex.ru, login+123@yandex.ru и т.п.). Все письма отправленные на эти адреса попадут в один ящик. Сделано для того, чтобы вы могли определить с какого ресурса "ушла" ваша почта. Подробности здесь.

Эмпирическим путем выявлено, что первый + может быть, например +75555555@yandex.ru

А ещё вы получаете одинаковые имена ящиков на @yandex.ru, @ya.ru, @yandex.by, @yandex.com

Сервис проверки Email на валидность учитывает данную особенность формирования адреса почтовых серверов @yandex и @gmail.

Использование плюса и точек в адресе google почты

Ну, и раз уж мы рассказали про возможности Яндекса, упомянем и гугл.

Добавьте знак «плюс» («+») и любую комбинацию слов или цифр после своего адреса электронной почты. Например, если ваше имя было login@gmail.com, вы можете отправить письмо на адрес login+friends@gmail.com или login+mailinglists@gmail.com. Вставьте одну или несколько точек (".") в любом месте вашего адреса электронной почты. Gmail не распознает точки как символы в адресах — он их просто игнорирует. Например, вы можете сообщить людям, что ваш адрес: login@gmail.com, lo.gin@gmail.com или l.o.g.i.n@gmail.com.

Подробности здесь и здесь.

Читать по теме:


.