Почему smtplib.SMTP().sendmail не отправляет сообщение, подписанное DKIM

Я установил постфикс на сервере вместе с openDKIM.

Когда я бегу:

echo "Testing setup" | mail -s "Postfix test" {my_email_address}

Я получаю электронное письмо, и в заголовках почты есть заголовок DKIM-Signature.

Однако когда я пишу скрипт Python для отправки электронной почты, используя smtplib:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import make_msgid

msg = MIMEMultipart('alternative')
part1 = MIMEText('Hello, world', 'plain')
msg.attach(part1)
msg['From'] = 'alert@{my_domain}'
msg['To'] = '{my_email_address}'
msg['Subject'] = 'Test Email'
msg['Message-ID'] = make_msgid()

mailer = smtplib.SMTP('localhost')
mailer.sendmail('alert@{my_domain}', '{my_email_address}', msg.as_string())
mailer.quit()

В электронном письме, которое приходит в мой почтовый ящик, отсутствует заголовок DKIM-Signature, а в заголовке Authentication-Results я вижу dkim=none (no signatures found);

Итак, мой вопрос: нужно ли мне подписывать мою электронную почту вручную (например, с помощью dkimpy) или есть какие-то настройки, которые я могу включить, чтобы она была подписана для меня?

Дайте мне знать, если есть какая-либо дополнительная информация, которую вы хотите/нужна.


person Olly F-G    schedule 01.03.2018    source источник


Ответы (1)


Трудно сказать наверняка, поскольку вы не включили какую-либо информацию о конфигурации или журнале. Но информация OpenDKIM говорит следующее:

Сообщение будет проверено, если оно не соответствует критериям подписи, а именно: (1) домен по адресу From: (если он присутствует) должен быть указан с помощью переключателя командной строки -d или < em>Domain, и (2) (a) клиент, подключающийся к MTA, должен пройти аутентификацию, или (b) клиент, подключающийся к MTA, должен быть указан в файле, на который ссылается Параметр файла конфигурации InternalHosts (или быть в списке по умолчанию для этого параметра), или (c) клиент должен быть подключен к порту демона, указанному в параметре файла конфигурации MTA, или ( г) АПС должен установить один или несколько макросов, соответствующих критериям, заданным параметром файла конфигурации MacroList.

В вашем SMTP-коде вы явно не аутентифицированы в MTA. Итак, возникает вопрос: позволяет ли ваша конфигурация OpenDKIM замечать ваше желание каким-либо другим способом, например, иметь локальный хост во внутренних хостах? (Я думаю, что это значение по умолчанию, но, возможно, вы его переопределили.)

person Ove    schedule 06.03.2018