http-mail-express

An Express middleware implementing the "HTTP POST mail" principle as an SMTP proxy.

Usage no npm install needed!

<script type="module">
  import httpMailExpress from 'https://cdn.skypack.dev/http-mail-express';
</script>

README

http-mail-express

An Express middleware implementing the "HTTP POST mail" principle as an SMTP proxy.

The principle is that all POST requests to /~username should be received as messages by that user. This module resends received messages using SMTP.

This module (currently) accepts raw resources (e.g. images or HTML) or url-encoded forms. Multipart messages/forms are not supported - any external resources should be referenced by URL or sent as separate messages.

Usage

var httpMail = require('http-mail-express');

app.use(httpMail('example.com'));

Documents POSTed to /~username will be emailed to username@example.com. Plain text and HTML are unchanged, images are displayed inline in the email, and anything else is included as an attachment.

Forms (application/x-www-form-urlencoded) will be interpreted using the same fields as mailto: URLs - i.e. fields from RFC 4021 and the message header registry, plus the extra "body" field for text content. Typically you'll only use "to", "subject" and "body".

Options

app.use(httpMail('example.com', {
    webForm: true, /* generates a contact form for GET - provide function for HTML templating function */,
    transport: transport /* must support the .sendMail() method from "nodemailer" module */
}));