Debug your emails while making sure real customers never see them.

Installs: 1 138

Dependents: 0

Suggesters: 0

Security: 0

Stars: 70

Watchers: 3

Forks: 11

Open Issues: 21



License: MIT Build status



Safely test sending your emails by using this local SMTP server and viewing the results on the web interface.

By using this locally installed SMTP server you can be sure that your real customers will never see your test emails!

However you can see all of them by simply opening the provided interface in any browser.


All messages single message


  • php 7.3
  • ext-curl (php7.2-curl)
  • ext-mbstring (php7.2-mbstring)
  • ext-sqlite3 (php7.2-sqlite3)
  • ext-xml (php7.2-xml)
  • ext-zip (php7.2-zip)
  • composer

If you don't have Composer yet, download it following the instructions on http://getcomposer.org/ or just run the following command:

curl -s http://getcomposer.org/installer | php


  • composer create-project jfoucher/mailocal
  • That's it



  • cd mailocal to enter the directory just created by composer
  • Run bin/mailocal to run both the SMTP server and the web server

Alternatively you can:

  • Run yarn run build to build the frontend assets
  • php bin/console email:server to launch the SMTP server
  • php bin/console server:start to start Symfony's built-in web server


  • Configure your other apps to use this new local SMTP server:
    • host:
    • port: 2525 (or the one you chose, see below)
    • You can configure a SMTP username and password by setting the SMTP_SERVER_USER and SMTP_SERVER_PASSWORD fields in your .env file. Make sure you update your email client's credentials accordingly.
  • Mailocal uses an SQLite database by default (in var/data.db) but you can choose to use any other database by setting the correct URL in the .env file.
  • By default, bin/mailocal will start a web server that listens on (address) and the first free port starting from 8000. This is where you can view any emails you receive. You can force bin/mailocal to always listen on a specific address/port by setting the value of WEB_SERVER_ADDRESSPORT in your .env file. The value can be address:port, address, or port.


You can now view any emails you receive by opening in your browser

The SMTP runs on port 2525 by default. Pass the --port option to use another one, like this: php bin/console email:server --port=587


This project is licensed under the MIT License - see the LICENSE.md file for details


Never use this in production, only run it on your local machine.