JSPM

simple-smtp-listener-es5

1.0.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q18642F

A simple SMTP listen server

Package Exports

  • simple-smtp-listener-es5

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (simple-smtp-listener-es5) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

simple-smtp-listener

A NodeJS script that acts as a simple SMTP listen server. Accepts all emails, and emits them both as an EventEmitter and through a socket.

Usage (single access)

If only 1 script needs to receive mails:

const SMTPServer = require("simple-smtp-listener").Server;
const server = new SMTPServer(25 /* port */);
server.on("test@example.com", (mail)=>{
    ...
});

Usage (multi access)

If multiple scripts need to receive mails, create a symlink at /var/dev/simple-smtp-listener/ pointing to the working directory, then create a symlink at /etc/systemd/system/simple-smtp-listener.service pointing to ./service/simple-smtp-listener.service. Finally run sudo systemctl start simple-smtp-listener. This starts the server and keeps it running should it crash.

If you aren't running systemd, do the equivalent on your system.

Then in your scripts do

const SMTPClient = require("simple-smtp-listener");
const client = new SMTPClient();
client.on("test@example.com", ()=>{
    ...
});

Mail object

All listeners receive a single response, a Mail object. This is simply the email parsed by Nodemailer's Mailparser. See their documentation for details.

Socket

If you need access to mails from non-JS code (or you don't want to use SMTPClient), you can instead listen to the UNIX/Windows socket (default UNIX location: /tmp/app.simple-smtp-listener).

The server emits emails as UTF8-encoded JSON to all clients, using node-ipc.