diff --git a/README.md b/README.md index 4e7cfb8..826d7c6 100644 --- a/README.md +++ b/README.md @@ -20,13 +20,20 @@ * setup a proper fake smtp server - a few names: Mailcatcher, Maildev, Mailhog - Mailhog: free software, easy to install (go, docker) - - docker run -d -p 1025:1025 -p 8025:8025 mailhog/mailhog + + wget https://github.com/mailhog/MailHog/releases/download/v1.0.1/MailHog_linux_amd64 + + docker run -d -p 1025:1025 -p 8025:8025 mailhog/mailhog ## Other problems with sending mail * in dev/testing env, we don't really want to send to the actual recipients - but we still want to craft the email for them -* + +## Other benefits + +* can test email displays as wanted +* can check attachments (receipt, invoice...) +* API -> can be used in unit tests / CI +* Test deliverability issues with Jim: MailHog's Chaos Monkey ## Links diff --git a/app.py b/app.py index 67f06c1..0a58e19 100755 --- a/app.py +++ b/app.py @@ -2,6 +2,50 @@ from bottle import get, post, run, template import smtplib +from email.mime.text import MIMEText +from email.mime.multipart import MIMEMultipart + +def craft_email(from_address, to_address, subject): + return f"""\ +From: {from_address} +To: {to_address} +Subject: {subject} + +You're just one click away from SuperBuzz bliss! Click this confirmation link: +[confirmation link]. +""" + +def craft_fancy_email(from_address, to_address, subject): + message = MIMEMultipart("alternative") + message["Subject"] = "multipart test" + message["From"] = from_address + message["To"] = to_address + + # Create the plain-text and HTML version of your message + text = """\ +You're just one click away from SuperBuzz bliss! Click this confirmation link: +[confirmation link].""" + html = """\ + +
+Tou're just one click away from SuperBuzz bliss!
+ Click this confirmation link:
+ Confirm SuperBuzz
+