Назад | Перейти на главную страницу

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-адрес x.x.x.x является заменой 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 не установлен.

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

Я использую 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 так же?

РЕДАКТИРОВАТЬ

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

Значение по умолчанию - когда вы пересылаете что-то в Amavis (в моем случае порт 10026), тогда Amavis вернет результат, используя порт на один выше (в моем случае 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