A super simple CLI for sending emails
Introduction
Maildown is a command line interface that lets you send emails using Amazon AWS SES with a minimum of fuss
Why can't I just use boto3
?
Maildown makes it easier to add structure and style to your email content. It supports Markdown syntax out of the box, meaning that you can just send Markdown files as emails with no additional effort.
How much does it cost?
Maildown is open source and therefore completely free. It relies on Amazon SES, which isn't completely free, but it does let you send up to 62,000 free emails per month (when sent from an EC2 instance). So for the vast majority of people, Maildown costs nothing to run.
Installation and usage
Pre requisites
In order to use Maildown, you first need to create an AWS free tier account here. Once you've signed up, you'll also realistically need to take your AWS SES account out of the sandbox
Install with pip
You can install maildown as follows:
Authenticating Maildown
Maildown stores your credentials locally for convenience. Before you can use Maildown's features, you should run the maildown init
command
maildown init AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
If you have previously used the
aws cli
and have already runaws configure
, or if you have set the environment variablesAWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
in your environment, you can just usemaildown init
with no arguments to store your credentials
Verify email addresses
Amazon only lets you send emails from verified email addresses - In other words, you need to verify that you own your email address before you can send mails from it. You can either do this from the SES console, or by using Maildown:
$ maildown verify [email protected] Email sent to [email protected]. You must click the link in this email to verify ownership before you can send any emails
When you use the above command, AWS will send an email to the email address you provided. You'll need to click on the link to verify your ownership of the account. Once you've done this, you can repeat the previous command to check the status
$ maildown verify [email protected] This email address has already been verified
You are now ready to start sending emails!
Sending emails
You can now send emails with the following command
maildown send [email protected] "my email subject" -f "email.md" [email protected] [email protected]
The above arguments, in order, are:
- The sending email address (which must have been verified)
- The subject line of your email
- A markdown file containing some content to send. Note that you can also use the
-c
flag to pass string content to be sent directly to the email, e.g.-c "hello"
- A list of email addresses to send the content to
Styling emails
By default, Maildown bakes in its own default style sheet when sending emails. This looks something like this (the below email is the content of this readme):
You can apply your own styles by simply using the --theme
flag when sending mails, like this:
maildown send [email protected] "my email subject" -f "email.md" --theme "my-style.css" [email protected] [email protected]