npm.io
2.5.0 • Published 1 week ago

@norvento/persistent-mail

Licence
ISC
Version
2.5.0
Deps
7
Size
57 kB
Vulns
23
Weekly
0

Persistent Mail

Mail sender with disk persistency. It uses microsoft graph api to send the mails.

Config

You have two options to configure the library:

From environment variables:

The following environment variables must be declared:

AZURE_CLIENT_ID
AZURE_TENANT_ID
AZURE_CLIENT_SECRET
MAIL_USERNAME
MAIL_PASSWORD
MAIL_STORE_PATH
MAIL_CRON
From config object

A config object with the following properties must be provided:

{
    azureClientId: string,
    azureTenantId: string,
    azureClientSecret: string
    username: string,
    password: string,
    storePath: string,
    cron: string
}

Recipients

The to, cc and bcc fields accept a single address, a comma separated string, or an array of addresses:

const mail = new Mail("to@domain.com, to2@domain.com", "subject", "body", undefined, undefined, undefined, "cc@domain.com", ["bcc1@domain.com", "bcc2@domain.com"]);

The constructor signature is:

new Mail(to, subject, text?, html?, importance?, attachments?, cc?, bcc?)

Example with config from environment vars

The vars where previously defined in a .env file located at the root level

const { Mail, PersistentMail } = require("@norvento/persistent-mail");

const mail = new Mail('to', 'subject', 'body');

async function sendMail() {
    await PersistentMail.init();
    PersistentMail.sendMail(mail);
}

sendMail();

##Example with config from config object

const { Mail, PersistentMail } = require("@norvento/persistent-mail");

const mail = new Mail('to', 'subject', 'body');

const myConfig = {
    azureClientId: "my azure client id,
    azureTenantId: "my azure tenant id",
    azureClientSecret: "my azure client secret",
    username: "username",
    password: "password",
    storePath: "/tmp/persisten-mail",
    cron: "*/1 * * * *"
}

async function sendMail() {
    await PersistentMail.init(myConfig);
    PersistentMail.sendMail(mail);
}

sendMail();