fake-smtp-server
Version:
Fake SMTP Server for email testing
103 lines (79 loc) • 3.08 kB
Markdown
# Fake SMTP Server
Fake SMTP Server is an email testing tool for QA & development teams.
It allows manual testing in a web interface, and automated testing via an API.
## API
#### Listing all received emails
Received mails are listed on `http://localhost:1080/api/emails`, and looks like this:
```json
[
{
"attachments": [],
"text": "Hi Bob!",
"textAsHtml": "<p>Hi Bob!</p>",
"subject": "Hi",
"date": "2017-09-18T16:12:16.000Z",
"to": {
"value": [
{
"address": "bob@example.com",
"name": "Bob"
}
],
"html": "<span class=\"mp_address_group\"><span class=\"mp_address_name\">Bob</span> <<a href=\"mailto:bob@example.com\" class=\"mp_address_email\">bob@example.com</a>></span>",
"text": "Bob <bob@example.com>"
},
"from": {
"value": [
{
"address": "joe@example.com",
"name": "Joe"
}
],
"html": "<span class=\"mp_address_group\"><span class=\"mp_address_name\">Joe</span> <<a href=\"mailto:joe@example.com\" class=\"mp_address_email\">joe@example.com</a>></span>",
"text": "Joe <joe@example.com>"
},
"messageId": "<1433879119.43.1505751136615@[10.143.108.87]>",
"html": false
}
]
```
You can filter emails with the following parameters:
* `from`: filter sender
* `to`: filter recipient
* `since`: filter email date
* `until`: filter email date
Example:
```
GET http://localhost:1080/api/emails?from=joe@example.com&to=bob@example.com&since=2017-09-18T12:00:00Z&until=2017-09-19T00:00:00Z
```
##### Viewing headers in responses
By default, fake-smtp-server will not capture custom headers in emails. To enable headers, start the server with the `--headers` flag. If enabled, headers will be serialized as an object type.
For reference for what headers look like, consult [Nodemailer's documentation](https://nodemailer.com/extras/mailparser/#headers-map), but keep in mind that the HTTP endpoint returns plain JSON objects rather than `Map`s.
#### Removing all received email
To remove all emails without restarting the server:
```
DELETE http://localhost:1080/api/emails
```
## Web interface
Go to `http://localhost:1080`
## Install
```bash
npm install -g fake-smtp-server
```
## Usage
```
Usage:
fake-smtp-server [OPTIONS] [ARGS]
Options:
-s, --smtp-port [NUMBER] SMTP port to listen on (Default is 1025)
--smtp-ip [IP] IP Address to bind SMTP service to (Default is 0.0.0.0)
-h, --http-port [NUMBER] HTTP port to listen on (Default is 1080)
--http-ip [IP] IP Address to bind HTTP service to (Default is 0.0.0.0)
-w, --whitelist STRING Only accept e-mails from these adresses. Accepts
multiple e-mails comma-separated
-m, --max [NUMBER] Max number of e-mails to keep (Default is 100)
-a, --auth STRING Enable Authentication
--headers Enable headers in responses
-k, --no-color Omit color from output
--debug Show debug information
```