Назад | Перейти на главную страницу

Ошибка DKIM при использовании Exim4 в качестве «пограничного транспорта» для Exchange 2010

У меня есть сервер под управлением Exim 4.72, который настроен аналогично роли Exchange «Edge Transport»: он пересылает почту из Интернета в Exchange и пересылает почту из Exchange в Интернет.

Я настроил DKIM в Exim для исходящей почты. Он работает правильно, когда почта отправляется непосредственно в exim; Gmail сообщает, что хеш-код тела правильный. При отправке на Exchange, который затем пересылает на Exim, проверка хэша тела DKIM не выполняется.

Я пробовал и с простой, и с расслабленной пушкой. Кто-нибудь испытывал нечто подобное или имел какие-либо идеи?

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

Общая процедура тестирования:

  1. Захватите одно из необработанных сообщений. Измените получателя на свой личный почтовый ящик, чтобы вы могли получить копию отправляемого электронного письма. Предположим, что файл с сообщением называется test.eml. Сохраните его где-нибудь на сервере exim.
  2. Временно настройте exim для подписи сообщений DKIM от localhost. Не перезапускайте exim, мы просто проверяем это из командной строки.
  3. На сервере передайте сообщение exim, используя такую ​​команду:

    exim -d -t <test.eml> test.out 2> & 1

  4. По завершении будет получен файл с именем «test.out». Отредактируйте этот файл и найдите «PDKIM». Первым примером этого будет канонизированное тело. Четвертый экземпляр или около того будут канонизированными заголовками. Посмотрите на эти разделы и посмотрите, не изменилось ли что-нибудь, как по сравнению с исходным сообщением, которое вы отправили, так и с сообщением в том виде, в котором оно было получено.

  5. В общем, ищите что-нибудь относительно подписи DKIM. Данных будет очень много, поэтому, чтобы их найти, может потребоваться довольно много времени.
  6. Убедитесь, что никакие транспорты ничего не добавляют ПОСЛЕ генерации подписи DKIM.
  7. Удалите временную настройку конфигурации, позволяющую exim подписывать электронные письма с localhost.

Типичные изменения, которые я видел, обычно связаны с версией mime, типом mime, кодировкой передачи контента, типом контента или кодировкой, изменяемыми при передаче. Однако вы сказали, что ваши проверки заголовка проходят, а проверка тела - нет. Так что это усложняет задачу.