FOR USE IN DEVELOPMENT ENVIRONMENTS ONLY
A simple and very fake SMTP server for development/testing purposes. Because, why not.
Features
- SMTP server that can accept & store valid RFC822/RFC2822 email
- HTTP server/site as a client interface to the messages received
WARNING: Do not expose running server ports to open networks and do not run as
root
or an admin user! There are ZERO security features built into these
servers.
Globally:
$ composer global require camelot/smtp-dev-server
As a development dependency for your project:
$ composer require --dev camelot/smtp-dev-server
Configuration is handled via environment variables.
SMTP_LOG_LEVEL=debug
SMTP_LOG_FILE="/path/to/smtp.log"
SMTP_SPOOL_DIR="/path/to/spool"
HTTP_LOG_LEVEL=debug
HTTP_LOG_FILE="/path/to/http.log"
See the .env
file in this directory for an example if you're cloning this
repository, you can create a .env.local
file to override any of the values in
the .env
file.
Both servers have two output targets, console and PSR logger.
Console output levels are managed by passing -v
, -vv
, or -vvv
as options
on the command line.
Logger output is managed via environment variables that are used internally to configure the loggers.
For example:
$ SMTP_LOG_LEVEL=debug vendor/bin/smtp-dev-server -vvv
To start the server, simply run:
$ vendor/bin/smtp-dev-server
This will output internal information to STDOUT. You can specify verbosity with the command options below.
Server can be stopped by sending a signal, e.g. CTRL+C
.
backing Storage type (null, memory, mailbox) [default: "mailbox"]
-i, --ip=IP TCP/IP address [default: "127.0.0.1"]
-p, --port=PORT Port to listen on [default: 2525]
-r, --retries=RETRIES Number of times to retry connecting to the server socket address if it is currently in use [default: 10]
-h, --help Show help
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
To start the server, simply run:
$ vendor/bin/smtp-dev-client
This will output internal information to STDOUT. You can specify verbosity with the command options below.
Server can be stopped by sending a signal, e.g. CTRL+C
.
backing Storage type (null, memory) [default: "null"]
-i, --ip=IP TCP/IP address [default: "127.0.0.1"]
-p, --port=PORT Port to listen on [default: 2580]
-r, --retries=RETRIES Number of times to retry connecting to the server socket address if it is currently in use [default: 10]
-h, --help Show help
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Open (default) http://127.0.0.1:2580
to view & manage messages received by the SMTP server component.