camelot/smtp-dev-server

Development SMTP fake server

0.0.4 2022-09-23 08:52 UTC

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

image

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

image image

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.