Я установил DKIM на Exim с доменом, установленным как:
DKIM_DOMAIN = ${sender_address_domain}
Однако домен всегда устанавливается на тот же домен (мой основной домен), что приводит к сбою проверки DMARC из-за выравнивания при отправке электронных писем для других доменов (я размещаю несколько веб-сайтов).
Читая документацию, я думаю, что sender_address_domain - это адрес конверта, а не поле From. Как я могу изменить адрес конверта так, чтобы он совпадал с полем «От» данного электронного письма (я предполагаю, что это также позволит правильное выравнивание SPF)?
Кроме того, в целях безопасности можно ли иметь белый список допустимых доменов , поэтому Exim отказывается отправлять электронные письма, у которых есть другой домен в поле От?
Добавьте правило перезаписи:
* "$header_from:" F
В debian это можно добавить, создав такой файл, как /etc/exim4/conf.d/rewrite/10_from_rewrite
. Это правило перезаписывает поле отправителя в соответствии с заголовком From, что позволяет выравниванию DMARC работать правильно.
Добавить правило перезаписи в конфигурацию Exim4:
*@+local_domains "${local_part}@${domain}" F
Правило перезаписывает заголовок Envelope-from, чтобы он соответствовал заголовку From, позволяя выравниванию DMARC работать правильно. Рекомендуется добавить его в конец раздела, чтобы избежать конфликтов с текущими правилами.
Эту конфигурацию можно найти в файле /etc/exim4/conf.d/rewrite/10_from_rewrite
или в разделе rewrite/31_exim4-config_rewriting
файла . ]/etc/exim4/exim4.conf.template
(для Debian). Это зависит от типа вашей конфигурации – называется один монолитный или разделенный конфигурационный файл Exim4 с возможной необходимостью запуска команды update-exim4.conf
.
Перезапустите Exim после реконфигурации с помощью systemctl restart Exim4
.
Объяснение правила:
*
из *@+local_domains
= для всех "local_parts", например. пользователи. +local_domains
= для всех доменов, обслуживаемых сервером Exim4 (определено в переменных dc_other_hostnames
и dc_readhost
), а не другими доменами (попытки перенаправления и т.д.).${local_part}@${domain}
составляет адрес электронной почты, соответствующий RFC2822, из поля "От". Переменные описаны в документации exim4 — строковые расширения. Вы можете использовать просто "$header_from:", но адреса в форме "John Doe (hidden)" не будут работать и будут записаны в paniclog из-за части "John Doe". F
= целевое поле перезаписи операция Envelope-from, см. документацию exim4 – перезапись адреса.