Подключаю DKIM подпись к доменной почте на exim


Продолжаю учиться играть в почту.

При фильтрации почты на спам учитывается и такой момент как подпись писем от почтового сервера.

Идейно есть две вещи DomainKey и DKIM.

Если я правильно понял, то это очень похожие вещи, но сейчас, вроде, чаще используется DKIM.

Идея заключается в том, что все письма исходящие с сервера подписываются закрытым ключем, а публичный ключ публикуется в DNS домена.

Все настраивал по статье "Exim + DKIM на примере FreeBSD 8.2", но как обычно вышло все не без затыков.

Момент первый - куда втыкать.

 Эти строки нужно вставить в секцию remote_smtp транспорта, а не протокола:

  dkim_domain           = DKIM_DOMAIN
  dkim_selector         = YouSelectorName
  dkim_private_key      = DKIM_PRIVATE_KEY

Гуглится легко, но таки время.

Момент второй - как прописывать публичный ключ в DNS.

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

mail._domainkey  IN    TXT ("v=DKIM1; k=rsa;"
       "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8OvTXSllRSo9h5+Xgaps"
        "3wdCHp+3dIlQJX5VFkoJwHEas61/DSl90NvuFxrXWH0JZe5TP2bVCxnsWN2EiXUs"
        "FkQU3e/A3/MZkxusQXkd7v7S7OZOisAOS9Jhlbo8RsSxQvZRP/XXOsrfxrMcFR8n"
        "LjWDSrIqhfF3y7ZY69Xpc9k0HhKM87aZbdfCA/C9tOsfWTnTeFo1b7/07ntRiH5T"
        "yFGt+3qKI7d/lPTUjOGoxQt6kCVwUgZJOFKgiLGpGIsD9Yi/86RlXtEC9+bXx+zl"
        "tNswL3qab0A9pzTxnkRE/xNVxwRGlCHuOq6VGnP+qNDROl7vBn4mt7pF1/CP5iKt"
        "OwIDAQAB")

Если пытаться все это запихнуть в одну строку, то Bind ругается syntax error. И еще, важно не забыть k=rsa; иначе тот же гугл говорит:

dkim=neutral (bad version) header.i=@youdomain.com

Если все получилось, то у гугла в заголовке письма появляется

dkim=pass header.i=

А яндекс, рядом с именем/адресом отправителя появляется значек и при клике на него пишут

Цифровая подпись верна
Письмо отправлено с домена youdoman.com
Тип подписи DKIM

Соответственно, все получилось.

Пока у меня остался только вопрос, как правильно подписывать сообщения от локального пользователя к локальному.