Make email replies more resilient

Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
This commit is contained in:
Mario Limonciello 2023-11-16 10:52:46 -06:00
parent 8228c2222f
commit bfd5f0b9d5
1 changed files with 22 additions and 6 deletions

View File

@ -81,6 +81,11 @@ def quiet_cmd(cmd):
def reply_email(content, branch):
user = None
password = None
server = None
port = None
if "SMTP_USER" in os.environ:
user = os.environ["SMTP_USER"]
if "SMTP_PASS" in os.environ:
@ -96,15 +101,26 @@ def reply_email(content, branch):
reply = email.message.EmailMessage()
orig = email.message_from_string(content)
try:
reply["To"] = ", ".join(
email.utils.formataddr(t)
for t in email.utils.getaddresses(
orig.get_all("from", []) + orig.get_all("to", []) + orig.get_all("cc", [])
orig.get_all("from", [])
+ orig.get_all("to", [])
+ orig.get_all("cc", [])
)
)
except ValueError:
logging.warning("Failed to parse email addresses, not sending email")
return
reply["From"] = "linux-firmware@kernel.org"
try:
reply["Subject"] = "Re: {}".format(orig["Subject"])
except ValueError:
logging.warning("Failed to parse subject, not sending email")
return
reply["In-Reply-To"] = orig["Message-Id"]
reply["References"] = orig["Message-Id"]
reply["Thread-Topic"] = orig["Thread-Topic"]