camelot / smtp-dev-server
Development SMTP fake server
Requires
- php: >=8.1
- ext-pcntl: *
- ext-sockets: *
- monolog/monolog: ^3.0
- php-mime-mail-parser/php-mime-mail-parser: ^7.1
- psr/log: ^2.0 || ^3.0
- symfony/config: ^6.0
- symfony/console: ^6.0
- symfony/dependency-injection: ^6.0
- symfony/dotenv: ^6.0
- symfony/event-dispatcher: ^6.0
- symfony/finder: ^6.0
- symfony/http-kernel: ^6.0
- symfony/routing: ^6.0
- symfony/stopwatch: ^6.0
- twig/twig: ^3.4
Requires (Dev)
- camelot/coding-style: ^3.0
- friendsofphp/php-cs-fixer: ^3.11
- phpunit/phpunit: ^9.5
- symfony/mailer: ^6.0
- symfony/phpunit-bridge: ^6.0
This package is auto-updated.
Last update: 2024-12-06 08:06:11 UTC
README
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.
Installation
Globally:
$ composer global require camelot/smtp-dev-server
As a development dependency for your project:
$ composer require --dev camelot/smtp-dev-server
Configuration
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.
Use
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
Server
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
.
Arguments
backing Storage type (null, memory, mailbox) [default: "mailbox"]
Options
-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
Client
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
.
Arguments
backing Storage type (null, memory) [default: "null"]
Options
-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.