Я установил DKIM с exim4 на своем сервере debian. Все работает правильно с одним фиксированным доменом, например следующее работает отлично.
DKIM_DOMAIN = example.com
Теперь я пытаюсь изменить это для работы с несколькими доменами. Итак, я изменил это на
DKIM_DOMAIN = ${lc:${domain:$h_from}}
(другие изменения, а также необходимые) - однако это не работает, потому что фактические электронные письма отправляются из разных *.example.com
. Итак, я подумал, что буду использовать `$ {sg ...}, чтобы удалить первую часть, однако у меня возникли проблемы с правильным ответом. Что бы я ни попробовал, exim выдаст это в журнале:
failed to expand dkim_domain: missing } at end of string - could be header name not terminated by colon
Ситуация усложняется тем фактом, что некоторые из доменов называются «.com», а другие - «.co.uk». Как минимум, мне нужно обслуживать example.org
, example.com
и example.co.uk
.
Вот что у меня есть на данный момент:
${sg{${lc:${domain:$h_from}}}{\N^.+\.(example\.(co\.uk|org|com))\$\N}{\$1}}
Это снова приводит к появлению вышеуказанного сообщения об ошибке. Может ли кто-нибудь помочь мне решить эту проблему?
Я подписываюсь для нескольких доменов отправителя со следующими элементами конфигурации. Все сайты используют один и тот же закрытый ключ. Установить закрытый ключ было бы сложнее, если бы они использовали разные ключи, но это можно сделать. Я использую селектор как расширение имени файла закрытого ключа. В настоящее время 201710
.
DKIM_CANON = relaxed
DKIM_DOMAIN = ${sender_address_domain}
DKIM_PRIVATE_KEY = CONFDIR/dkim.private.201710
DKIM_SELECTOR = ${extract{-1}{.}{DKIM_PRIVATE_KEY}}
DKIM_STRICT = true
DKIM_WARN = true
Вам нужно будет опубликовать открытый ключ во всех доменах, для которых вы подписываете, иначе получатели не смогут проверить подпись.
Я написал статью о Реализация DKIM с Exim.