DKIM установлен на AWS EC2, но в почтовом заголовке нет сообщения в Outlook

Я настраиваю экземпляр AWS EC2 с Postfix,и настроили его с помощью Route53, включая обратный DNS. Я проверил, что могу отправлять электронные письма, и Outlook их принимает нормально, а Gmail - нет. Я следовал этому руководству , чтобы установить и настроить opendkim, и когда я использую этот валидатор , я получаю это сообщение о том, что это действительная запись DKIM . Однако, когда я использую этот валидатор , я получаю ответ, что «Это сообщение не содержит DKIM-подпись». Кроме того, когда я отправляю электронное письмо в Outlook, оно попадает в основной почтовый ящик, но при аутентификации я получаю следующие результаты:

Authentication-Results: spf=pass (sender IP is x.x.x.x)

 smtp.mailfrom=mail.example.com; mail.outlookserver.com; dkim=none (message not

 signed) header.d=none;mail.outlookserver.com; dmarc=pass action=none

 header.from=mail.example.com;compauth=pass reason=100

IP-адрес xxxx является заменой IP-адреса моего почтового сервера, а mail.example.com - полное доменное имя моего почтового сервера. mail.outlookserver.com - это почтовый сервер Outlook. Очевидно, что записи SPF и DMARC проходят, а запись DKIM - нет. У меня есть запись DKIM, установленная в AWS Route 53, как показано здесь и здесь , и я могу сделать копание и получить ожидаемое значение, где $ key - мой открытый ключ:

andreaskralj@linuxdev:~$ dig +short TXT mail._domainkey.example.com
"v=DKIM1; h=sha256; k=rsa; " "p=$key"

Я не уверен, почему моя запись DKIM не воспринимается Outlook или другим валидатором как действительная. Если у кого-нибудь есть идеи о том, что я могу попробовать, или нужна дополнительная информация, дайте мне знать.

Изменить:

Я попытался добавить следующие строки в /etc/postfix/master.cf :

pickup    unix  n       -       y       60      1       pickup
  -o smtpd_milters=inet:localhost:8892
  -o non_smtpd_milters=inet:localhost:8892

Линия подбора уже была там; Я добавил строки -o в соответствии с предложенным ответом @Lasse Michael Mølgaard. К сожалению, в заголовках моих писем все еще написано, что DKIM не установлен.

2
задан 14 February 2020 в 19:20
1 ответ

Предложение основано на моем комментарии:

Я использую amavis для подписи своих писем, поэтому я добавил строку под строкой получения по умолчанию с -o content_filter = ... , так что теперь говорится.

pickup    unix  n       -       y       60      1       pickup
    -o content_filter=amavis:[127.0.0.1]:10026

Мне интересно, можете ли вы использовать smtpd_milters и non-smtpd_milters таким же образом?

EDIT

Если вы хотите использовать Amavis DKIM для подписи почты, вам нужно немного подправить ваш мастер-файл.

По умолчанию, когда вы перенаправляете что-то в Amavis (в моем случае порт 10026), то Amavis возвращает результат, используя порт на один выше (в моем case 10027).

Таким образом, у меня есть следующая запись в моем файле master.cf :

amavis unix - - y - 2 smtp
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes
        -o smtp_bind_address=

127.0.0.1:10027 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtp_send_xforward_command=yes
-o milter_default_action=accept
-o milter_macro_daemon_name=ORIGINATING
-o disable_dns_lookups=yes

Способ, которым Amavis знает, как отправить подписанный результат обратно в Postfix, взят из этой части в /etc/amavis/conf.d/50-user:

# :* = send to incoming Port + 1
$forward_method = 'smtp:127.0.0.1:*';
$notify_method = 'smtp:127.0.0.1:*';
$interface_policy{'10026'} = 'ORIGINATING';
$policy_bank{'ORIGINATING'} = {
  originating => 1,
};

Здесь есть очень короткий пример подписи с Amavis

0
ответ дан 25 February 2020 в 23:12

Теги

Похожие вопросы