Skip to content
Snippets Groups Projects

Feature/add mailer service

Merged Karel van Klink requested to merge feature/add-mailer-service into develop
4 files
+ 61
0
Compare changes
  • Side-by-side
  • Inline
Files
4
+ 32
0
"""The mailer service sends notification emails, as part of workflows that require interaction with external parties."""
import smtplib
from email.message import EmailMessage
from ssl import create_default_context
from gso.settings import load_oss_params
def send_mail(recipient: str, subject: str, body: str) -> None:
"""Send an email message to the given address.
Only supports STARTTLS, not SSL.
:param str recipient: The destination address.
:param str subject: The email subject.
:param str body: The contents of the email message.
"""
email_params = load_oss_params().EMAIL
msg = EmailMessage()
msg["From"] = email_params.from_address
msg["To"] = recipient
msg["Subject"] = subject
msg.set_content(body)
with smtplib.SMTP(email_params.smtp_host, email_params.smtp_port) as s:
if email_params.starttls_enabled:
tls_context = create_default_context()
s.starttls(context=tls_context)
if email_params.smtp_username and email_params.smtp_password:
s.login(email_params.smtp_username, email_params.smtp_password)
s.send_message(msg)
Loading