In this tutorial, we will use Docker to run a container for our email api.
I had some small projects that required a local mail server to send alerts or other types of emails.
Back in the day, my projects were written in PHP and then as a simple solution, I’ve been using Postfix with its basic configuration. Postfix is a simple email server, easy to administer and secure.
But, what if you don’t need a whole email server just for sending some emails? Yeah, you don’t!
What you just need is a service, a service that can send emails to a destination. As a workaround, I have made a small project in Python using Flask to handle emails.
Docker and Flask mailer
Flask mailer is an API made in Python with Flask that sends emails over an SMTP Google account. How does this work?
The service will expose an endpoint that accepts POST requests with the following JSON arguments: to, subject and body. In other words, it will assemble the email and using an existing Google account it will send it further to its destination.
What you’ll need?
Mainly Docker installed and my docker image of the service itself. The image is listed on Docker Hub right here. There is a short info, however, I will show the step by step guide to make it work and to send your first email using this service.
Pull the flask mailer image from Docker Hub:
docker pull skykery/api_mail
Launch a docker container that forwards port 9505
to 9505
with the following environment variables API_MAIL_USER
and API_MAIL_PASS
.
API_MAIL_USER
it is the email address you want to send the email
API_MAIL_PASS
the password of the used email address
docker run -p 9505:9505 -e API_MAIL_USER="test@gmail.com" -e API_MAIL_PASS="test" --name flask_mailer skykery/api_mail
If it works, you’ll be seeing:

To stop the container use:
docker stop flask_mailer
Example of sending an email through our service
curl -X POST http://127.0.0.1:9505/mail/ -d '{"to":"admin@techwetrust.com", "subject": "Hello from flask", "body": "Hmm, seems it is working!"}' -H "Content-Type: application/json"

Don’t forget to turn off your security checks on the used Google account – How to turn on Less secure app access on used Google Account?
If you are curious about Flask mailer source code, navigate to the Github project.
Now, you can use the service with any project you want, have fun!