admin Site Admin
Зарегистрирован: 11.09.2008 Сообщения: 546
|
Добавлено: Сб Фев 28, 2015 1:46 pm Заголовок сообщения: Настройка SPF и DKIM для отправки почты со своего сервера че |
|
|
http://scriptidy.com/nastrojka-spf-i-dkim-dlya-otpravki-pochty-so-svoego-servera-cherez-yandex.html
Настроить отправку почты через сервера Яндекса достаточно легко, а вот сделать так, чтобы письма как можно реже попадали в спам – не так просто, как показалось на первый взгляд. Вот список действий, которые помогли мне:
1) Для начала делегируем свой домен на Яндекс. Можно и просто почтой для домена воспользоваться.
2) Получаем токен для активации API Яндекс.Почты для доменов.
3) Далее получаем приватный ключ для DKIM через API следующим образом: https://pddimp.yandex.ru/dkim/status.xml?domain=ДОМЕН&token=ТОКЕН&secretkey=yes
Сам ключ находится в секции secretkey. Мне пришлось копировать его с исходного кода HTML-страницы, потому что в браузере он выводился в неправильном формате – в одну строку.
4) Если домен на Яндекс не делегирован, то нужно настроить TXT-запись для подомена mail._domainkey.domain.com. именно на том сервере, с которого производится отправка писем. Если домен делегирован на Яндекс, то все должно быть прописано автоматом.
5) Настраиваем 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 — адреса тех серверов, с которых дополнительно отправляются письма.
6) Теперь почту с сервера легко можно отправлять через PHPMailer. В проекте на Yii я делаю это с помощью расширения Код: | YiiMailer:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 $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 (вторая часть п.1 и остальные пункты) нужны только тогда, когда используется почта для домена. Если вы проделегировали домен, то цифровая подпись ставится автоматически – о чем и написано в мануале Яндекса. |
|