Testing mail locally with the Google App Engine Development Web Server

The Google App Engine Mail API lets you easily send email from your applications. However, I found it difficult to test it locally when using the Development Web Server.

The documentation states that you can either use an existing SMTP provider or sendmail with the local server but the former solution didn't work for me with GMail or the SMTP server at my web host. And, from a quick Google search for sendmail, I got the impression that I should stay away from it.

In the end, I opted to use a simple Python-based SMTP server by Les Smithson to debug my mail calls locally.

It's very simple to use:

  1. Download the smtps.py script.
  2. In Terminal, change to the folder you downloaded the script into and run it with python smtps.py <port number>, replacing <port number> with the port you want the SMTP server to listen on.
  3. Start your Google App Engine Dev Web Server with dev_appserver.py --smtp_host=localhost --smtp_port=<port number>.

That's it! Now test your Google App Engine application locally in the Development Web Server and the contents of email messages sent by your application will appear in the Terminal window running the SMTP server.