То, что я пытаюсь достичь - Итог: письма должны идти во входящие, а не в папку для спама.
У меня есть сервер, на котором работает 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
Где я скучаю?
Прежде всего, удалите эти значения (они не нужны, если вы используете 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