Подпись DKIM не проверяется при отправке почты с помощью PHP


У меня возникла проблема с фильтрацией писем gmail/hotmail с моего сервера как спама. Оценка убийцы спама довольно низкая, поэтому я знаю, что мой IP-адрес не находится ни в каких черных списках или подобных, что означает, что именно фильтрация, которую используют gmail/hotmail, останавливает прохождение писем.

Я провел некоторое исследование и прочитал, что использование DKIM, возможно, решит проблемы, с которыми я сталкиваюсь. Я пошел дальше и включил DKIM на своем сервере. Теперь, когда я отправляю электронные письма с помощью своего почтового клиента, инструмент, расположенный здесь (http://www.brandonchecketts.com/emailtest.php ) сообщает, что подпись DKIM является действительной.

Следующим шагом было внедрение подписи DKIM в мои письма на PHP. Поэтому я пошел дальше и использовал этот класс DKIM, расположенный здесь (http://sourceforge.net/projects/dkim-class-php /), который является побочным продуктом PHPMailer.

Однако, когда я отправляю электронные письма сейчас, несмотря на то, что они содержат подпись DKIM, я получаю странную ошибку от инструмента проверки.

result = fail
Details: message has been altered

Вы можете увидеть полную отчет здесь: http://www.brandonchecketts.com/emailtest.php?email=K86KTXpMbl%40www.brandonchecketts.com

Спасибо за любую помощь, я отчаянно пытаюсь заставить это работать и уже несколько часов бьюсь головой о стену.

Author: nmford, 2012-07-30

2 answers

Я дал ответ на это здесь: Настройка ключей домена/DKIM в SMTP-клиенте на основе PHP

В основном вам нужно убедиться, что вы предоставляете все заголовки, которые ваш MTA добавляет в ваше исходящее электронное письмо. Поскольку разные системы настроены по-разному, не существует единого решения, подходящего для всех.

Посмотрите на источник сообщения, который не смог подписать (и выдает Сообщение Изменено ошибка), чтобы определить, какие заголовки были добавлен. Как правило, ваш MTA добавит Идентификатор сообщения и Дата заголовок (заголовок даты также может привести к низкой оценке спама, если он отсутствует, поэтому вы также можете включить его!).

Еще одна распространенная ошибка заключается в том, что вы сами изменяете сообщение ПОСЛЕ подписания сообщения, поэтому убедитесь, что в вашем коде не было внесено никаких изменений после того, как вы подписали свое сообщение.

После определения того, какие заголовки были добавлены, вам следует добавить эти заголовки самостоятельно (и, следовательно, переопределите поведение вашего MTA по умолчанию, добавив их) в электронное письмо перед подписанием.

 3
Author: Nepaluz, 2017-05-23 10:28:24

Я обнаружил странное поведение php mail() + постфикс с dkim:

Если вы сделаете

$headers .= "From: USER <$from_email>\n";

DKIM будет неверным, но если вы сделаете это:

$headers .= "From: USER <" . $from_email . ">\n";

Все В порядке! Странный. Очень странно. Также пользователям рекомендуется сделать

trim($emailContent) 
 0
Author: oWk, 2016-02-09 19:22:51