Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A `StreamStack` subclass that parses raw e-mail messages.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 examples
Octocat-spinner-32 tests
Octocat-spinner-32 README.md
Octocat-spinner-32 index.js
Octocat-spinner-32 package.json
Octocat-spinner-32 parser.js
README.md

node-mail-stack

A StreamStack subclass that parses raw e-mail messages.

This module implements RFC 5322. Specifically, it parses the e-mail headers into an Object and fires a "headers" events. Then the body of the message is emitted as 'data' events, and can be .pipe()ed into other node WritableStream instances.

Usage

var smtp = require('smtp')
var mail = require('mail-stack');

smtp.createServer(function(conn) {
  conn.on('DATA', function(message) {
    message.accepted = true;

    var mailParser = new mail.Parser(message);
    mailParser.on('headers', function(headers) {
      // 'headers' is an Array, with 'key' and 'value' properties
      // for each entry. Duplicate values are handled fine.
      // Header names are also attached directly to the 'headers'
      // object for programmatic convenience:   headers.From  -> 'sender@example.com'
      console.log(headers);

      // Any 'data' events from the parser are part of the message body.
      mailParser.pipe(process.stdout, {end:false});
    });
  });
});

See the examples/ directory for some more usage examples.

Something went wrong with that request. Please try again.