3.0.8 • Published 3 years ago
@greendeck/preview-email v3.0.8
preview-email
Automatically opens your browser to preview Node.js email messages sent with Nodemailer. Made for Lad!
Table of Contents
Screenshot

Install
npm:
npm install preview-emailyarn:
yarn add preview-emailUsage
NOTE: You should probably just use email-templates directly instead of using this package.
The function previewEmail returns a Promise which resolves with a URL. We automatically open the browser to this URL unless you specify options.open as false (see Options for more info).
const previewEmail = require('preview-email');
const nodemailer = require('nodemailer');
const transport = nodemailer.createTransport({
jsonTransport: true
});
// <https://nodemailer.com/message/>
const message = {
from: 'niftylettuce+from@gmail.com',
to: 'niftylettuce+to@gmail.com',
subject: 'Hello world',
html: '<p>Hello world</p>',
text: 'Hello world',
attachments: [ { filename: 'hello-world.txt', content: 'Hello world' } ]
};
// note that `attachments` will not be parsed unless you use
// `previewEmail` with the results of `transport.sendMail`
// e.g. `previewEmail(JSON.parse(res.message));` where `res`
// is `const res = await transport.sendMail(message);`
previewEmail(message).then(console.log).catch(console.error);
transport.sendMail(message).then(console.log).catch(console.error);Custom Preview Template and Stylesheets
Using the options.template object, you can define your own template for rendering (e.g. get inspiration from template.pug and write your own!):
const path = require('path');
// ...
previewEmail(message, { template: path.join(__dirname, 'my-custom-preview-template.pug') })
.then(console.log)
.catch(console.error);Debugging
Thanks to the debug package, you can easily debug output from preview-email:
DEBUG=preview-email node app.jsOptions
message(Object) - a Nodemailer message configuration objectoptions(Object) - an object with the following two properties:id(String) - a unique ID for the file name created for the preview indir(defaults touuid.v4()from uuid)dir(String) - a path to a directory for saving the generated email previews (defaults toos.tmpdir(), see os docs for more insight)open(Object or Boolean) - an options object that is passed to open (defaults to{ wait: false }) - if set tofalsethen it will not open the email automatically in the browser using open, and if set totruethen it will default to{ wait: false }template(String) - a file path to apugtemplate file (defaults to preview-email's template.pug by default) - this is where you can pass a custom template for rendering email previews, e.g. your own stylesheeturlTransform(Function (path) => url) - a function to build preview url from file path (defaults to(path) => 'file://[file path]') - this is where you can customize the opened path to handle WSL to Windows transformation or build a http url ifdiris served.
Contributors
| Name | Website |
|---|---|
| Nick Baugh | http://niftylettuce.com/ |