Как правильно настроить postfix и opendkim и позволить получающему серверу знать все детали, отправленные подписью?

То, что я пытаюсь достичь - Bottomline: письма отправляются в папку "Входящие", а не в спам.

У меня есть сервер, на котором работает postfix (почтовый сервер), и у меня есть 3 домена. Почтовый сервер используется как для входящей, так и для исходящей почты.

Я подписываюсь с opendkim и имею записи DNS на месте.

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

учтите, что моим почтовым сервером является mailserver.example.com, а 3 других домена - example1.com, example2.com и example3.com

когда кто-то отправляет электронное письмо от admin@example1.com, оно должно отображать:

admin@example1.com через mailserver.example.com

отправлено по почте: mailserver.example.com

подписано: example1.com

Я заметил, что почтовые рассылки mailjet и amazon почти не попадают в спам, факт "возможно", потому что исходное обратное имя хоста / ip разрешает то, что отправляется по почте и подписывается.

Конфиг-файлы:

/etc/opendkim/Keytable

mvs._domainkey.example1.com example1.com:selc:/etc/opendkim/keys/example1_com/selc.private
mvs._domainkey.example2.com example2.com:selc:/etc/opendkim/keys/example2_com/selc.private

/etc/opendkim.conf

Domain          example1.com
KeyFile     /etc/opendkim/keys/example1_com/selc
Selector        selc

Domain          example2.com
KeyFile     /etc/opendkim/keys/example2_com/selc
Selector        selc

Canonicalization    simple
Mode            sv
Syslog                  yes
LogWhy                  yes
UMask                   022
UserID                  opendkim:opendkim
KeyTable           /etc/opendkim/KeyTable
SigningTable       /etc/opendkim/SigningTable
ExternalIgnoreList /etc/opendkim/TrustedHosts
InternalHosts      /etc/opendkim/TrustedHosts
Socket                  inet:34562@localhost
X-Header        no

и наконец

/etc/opendkim/SigningTable

example1.com selc._domainkey.example1.com
example2.com selc._domainkey.example2.com

Куда я скучаю?

1 ответ

Решение

Прежде всего, удалите эти значения (они не нужны, если вы используете KeyTable):

Domain      example1.com
KeyFile     /etc/opendkim/keys/example1_com/selc
Selector    selc

Domain      example2.com
KeyFile     /etc/opendkim/keys/example2_com/selc
Selector    selc

Настройте ваш KeyTable так:

mykey1 example1.com:recordname1:/path/to/domain.key
mykey2 example2.com:recordname2:/path/to/domain.key

Настройте свою SigningTable следующим образом (обратите внимание на сопоставление с подстановочными знаками и mykey1 и mykey2 из KeyTable):

*@example1.com mykey1
*@example2.com mykey2

И, наконец, измените ваш opendkim.conf так, чтобы он включал SigningTable через префикс refile: (поддержка регулярных выражений):

SigningTable    refile:/etc/opendkim/SigningTable

И запись домена для справки (примечание recordname1 и recordname2 из KeyTable):

recordname1._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=..."
recordname2._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=..."

Кроме того, проверьте, есть ли у вас имя узла вашего узла (с которого вы отправляете почту) в файле InternalHosts:

server1.example1.com
server2.example2.com
mail.example1.com
mail.example2.com

Опять же, вы можете использовать префикс refile: чтобы добавить что-то вроде:

*.example1.com
*.example2.com

если у вас несколько хостов и вы не хотите включать их все вручную. Если вы принимаете только локальную почту, вы должны добавить сюда localhost.

Вам следует проверить файл журнала на наличие уведомлений DKIM о пропуске подписи, если ваш хост отсутствует в файле InternalHosts.

Пример opendkim.conf:

# Set these values (Syslog, SyslogSuccess, LogWhy) for debugging and check syslog for details
Syslog      yes
SyslogSuccess   yes
LogWhy      yes

UMask       002
UserID      opendkim:opendkim

KeyTable            /etc/opendkim/KeyTable
SigningTable        refile:/etc/mail/SigningTable
InternalHosts       refile:/etc/mail/hosts
Другие вопросы по тегам