DKIM на хостинге MasterHost
Доброго времени суток!
Пробовал прописать стандартный wa-config/mail.php не проходит.
Хостер предлагает свою реализацию отправки писем:
<?php // Если нужно показать лог SMTP-сессии, то можно раскомментировать следующую строчку. // $_SERVER['debug'] = true; function MailSmtp($reciever, $subject, $content, $headers, $debug = 0) { $smtp_server = 'smtp.masterhost.ru'; // адрес SMTP-сервера $smtp_port = 25; // порт SMTP-сервера $smtp_user = 'user@domen.ru'; // Имя пользователя для авторизации на SMTP-сервере $smtp_password = 'pAsSwORd'; // Пароль для авторизации на SMTP-сервере $mail_from = 'frommailbox@domen.ru'; // Ящик, с которого отправляется письмо $sock = fsockopen($smtp_server,$smtp_port,$errno,$errstr,30); $str = fgets($sock,512); if (!$sock) { printf("Socket is not created\n"); exit(1); } smtp_msg($sock, "HELO " . $_SERVER['SERVER_NAME']); smtp_msg($sock, "AUTH LOGIN"); smtp_msg($sock, base64_encode($smtp_user)); smtp_msg($sock, base64_encode($smtp_password)); smtp_msg($sock, "MAIL FROM: <" . $mail_from . ">"); smtp_msg($sock, "RCPT TO: <" . $reciever . ">"); smtp_msg($sock, "DATA"); $headers = "Subject: " . $subject . "\r\n" . $headers; $data = $headers . "\r\n\r\n" . $content . "\r\n."; smtp_msg($sock, $data); smtp_msg($sock, "QUIT"); fclose($sock); } function smtp_msg($sock, $msg) { if (!$sock) { printf("Broken socket!\n"); exit(1); } if (isset($_SERVER['debug']) && $_SERVER['debug']) { printf("Send from us: %s<BR>", nl2br(htmlspecialchars($msg))); } fputs($sock, "$msg\r\n"); $str = fgets($sock, 512); if (!$sock) { printf("Socket is down\n"); exit(1); } else { if (isset($_SERVER['debug']) && $_SERVER['debug']) { printf("Got from server: %s<BR>", nl2br(htmlspecialchars($str))); } $e = explode(" ", $str); $code = array_shift($e); $str = implode(" ", $e); if ($code > 499) { printf("Problems with SMTP conversation.<BR><BR>Code %d.<BR>Message %s<BR>", $code, $str); exit(1); } } } ?>
Соответственно не помогло, подскажите где может быть ошибка?
Эта тема в архиве. Добавление комментариев к ней отключено.
2 ответа
Не проходит что? Начнем с того каким методом вы отправляете письма? SMTP или phpmail?
Если SMTP, то DKIM настраивайте в редакторе DNS для вашего домена (для мастерхоста в панели управления вашим доменом все есть уже и в редакторе DNS появится), а в Инсталлере не трогайте ничего на тему DKIM вообще. Есс-но при этом надо иметь учетную запись на почтовом сервере мастерхоста (или любого другого) и прописать её в mail.php.
Если второй способ, то в Инсталлере включаете DKIM и настраиваете вашу DNS запись соответственно, но уже панель управления у мастерхоста на тему DKIM не трогаете и про mail.php забываете.
Почта через SMTP может ходить через кого угодно (Гугл, Мэйлру, Яндекс, Мастерхост). Домен может быть делегирован куда угодно и там всегда настраивается DKIM. А уже откуда взять DKIM - это зависит от способа отправки.
Выберите решение из предложенных выше по тексту.
Всё оказалось просто. Заветная подпись настроена за 30 мин (с учетом ожидания регистрации в DNS).
Идем в Рассылки - Редактировать отправителя - Транспорт SMTP (тех поддержка ответила, что подпись действует только при отправке через SMTP) - заполняем.
Не закрываем и идём в редактор DNS на хостинге.
Создаем новую запись с данными нашего ключа -
через 20 мин заветная подпись имеется.
Спасибо @replicant, дал верное направление.
Оставлю здесь, может кому пригодится