https://github.com/camelotproject/smtp-dev-server
Fake SMTP server for local development
https://github.com/camelotproject/smtp-dev-server
developer-tools mime rfc2822 rfc822 smtp-server testing
Last synced: 3 months ago
JSON representation
Fake SMTP server for local development
- Host: GitHub
- URL: https://github.com/camelotproject/smtp-dev-server
- Owner: CamelotProject
- License: mit
- Created: 2022-09-11T16:08:35.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-10-06T03:43:09.000Z (over 2 years ago)
- Last Synced: 2025-01-13T08:27:04.360Z (5 months ago)
- Topics: developer-tools, mime, rfc2822, rfc822, smtp-server, testing
- Language: PHP
- Homepage:
- Size: 156 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
SMTP Development Server
=======================**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:
```console
$ composer global require camelot/smtp-dev-server
```As a development dependency for your project:
```console
$ composer require --dev camelot/smtp-dev-server
```Configuration
-------------Configuration is handled via environment variables.
```shell
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:
```console
$ 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:
```console
$ 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.