Я установил 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 .