@studiowebux/mailer

6.0.0-alpha • Public • Published

Introduction

This module is a wrapper to send emails, it uses nodemailer. This is a SMTP Implementation.

Installation

npm install --save @studiowebux/mailer

NPM

Usage

Configuration

Transport configuration

Official documentation : https://nodemailer.com/smtp/

const opts = {
  isEnabled: true,
  host: '127.0.0.1',
  port: 2525,
  secure: false,
  auth: {
    user: '',
    pass: '',
  },
  pool: false,
  tls: {
    // do not fail on invalid certs
    rejectUnauthorized: false,
  },
};

The isEnabled parameter allows to deactivate the mailer service, that way it doesn't send all emails while doing tests.

Email data object

Official documentation : https://nodemailer.com/message/

// NOTE : bcc field is not detected by the mailparser and/or the smtp-server
const data = {
  from: 'test@from.local',
  to: ['test1@to.local', 'test2@to.local'],
  cc: ['test3@cc.local', 'test5@cc.local', 'test6@cc.local'],
  bcc: ['test4@bcc.local'],
  subject: 'Testing the webux mailer',
  html: '<p>Hello World !</p>',
  text: 'Hello World !',
};

Functions

constructor(opts, log = console)

Initializes the transporter and the logger function

Verify(): Promise<String>

Verifies the transporter configuration and authentication

webuxMailer
  .Verify()
  .then((info) => {
    console.log(info);
  })
  .catch((e) => {
    console.error(e);
  });

Sendmail(data): Promise<Object>

Sends an email if the mailer is enabled

const data = {
  from: 'test@from.local',
  to: ['test1@to.local', 'test2@to.local'],
  subject: 'Testing the webux mailer',
  html: '<p>Hello World !</p>',
  text: 'Hello World !',
};

webuxMailer
  .Sendmail(data)
  .then((info) => {
    console.log(info);
  })
  .catch((e) => {
    console.error(e);
  });

Quick start

For testing only, Check the examples/ directory for complete code.

example.js

const WebuxMailer = require('@studiowebux/mailer');

const opts = {
  isEnabled: true,
  host: process.env.HOST || '127.0.0.1',
  port: 2525,
  secure: false,
  auth: {
    user: process.env.USER || '',
    pass: process.env.PASSWORD || '',
  },
};

const webuxMailer = new WebuxMailer(opts, console);

const data = {
  from: 'test@from.local',
  to: ['test1@to.local', 'test2@to.local'],
  subject: 'Testing the webux mailer',
  html: '<p>Hello World !</p>',
  text: 'Hello World !',
};

webuxMailer.Sendmail(data).then((info) => {
  console.log(info);
});

Videos and other resources

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

SEE LICENSE IN license.txt

Readme

Keywords

none

Package Sidebar

Install

npm i @studiowebux/mailer

Weekly Downloads

2

Version

6.0.0-alpha

License

SEE LICENSE IN license.txt

Unpacked Size

7.63 kB

Total Files

5

Last publish

Collaborators

  • tgingras