From 671b7ab149171c276e1fd60cc65bb02a2634c8ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Bocahu?= Date: Wed, 27 Dec 2023 11:19:17 +0100 Subject: [PATCH] mail module: add Message-ID header (#7740) * mail module: add Message-ID header * Update plugins/modules/mail.py Co-authored-by: Felix Fontein --------- Co-authored-by: Felix Fontein --- .../7740-add-message-id-header-to-mail-module.yml | 2 ++ plugins/modules/mail.py | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/7740-add-message-id-header-to-mail-module.yml diff --git a/changelogs/fragments/7740-add-message-id-header-to-mail-module.yml b/changelogs/fragments/7740-add-message-id-header-to-mail-module.yml new file mode 100644 index 0000000000..1c142b62ef --- /dev/null +++ b/changelogs/fragments/7740-add-message-id-header-to-mail-module.yml @@ -0,0 +1,2 @@ +minor_changes: + - mail - add ``Message-ID`` header; which is required by some mail servers (https://github.com/ansible-collections/community.general/pull/7740). diff --git a/plugins/modules/mail.py b/plugins/modules/mail.py index 13f7c5becd..9060b9c782 100644 --- a/plugins/modules/mail.py +++ b/plugins/modules/mail.py @@ -222,7 +222,7 @@ import smtplib import ssl import traceback from email import encoders -from email.utils import parseaddr, formataddr, formatdate +from email.utils import parseaddr, formataddr, formatdate, make_msgid from email.mime.base import MIMEBase from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText @@ -349,6 +349,11 @@ def main(): msg['From'] = formataddr((sender_phrase, sender_addr)) msg['Date'] = formatdate(localtime=True) msg['Subject'] = Header(subject, charset) + try: + msg['Message-ID'] = make_msgid(domain='ansible') + except TypeError: + # `domain` is only available in Python 3 + msg['Message-ID'] = make_msgid() msg.preamble = "Multipart message" for header in headers: