2.0.0 • Published 2 years ago

moleculer-mail v2.0.0

Weekly downloads
778
License
MIT
Repository
github
Last release
2 years ago

Moleculer logo

moleculer-mail NPM version

Send emails with nodemailer. Support localized templates.

Features

Install

$ npm install moleculer-mail --save

or

$ yarn add moleculer-mail

Usage

Send an HTML e-mail with Gmail

"use strict";

const { ServiceBroker } = require("moleculer");
const broker = new ServiceBroker();

// Load service
broker.createService(require("moleculer-mail"), {
    settings: {
        from: "sender@moleculer.services",
        transport: {
            service: 'gmail',
            auth: {
                user: 'gmail.user@gmail.com',
                pass: 'yourpass'
            }
        }
    }
});

// Send an e-mail
broker.call("mail.send", { 
    to: "john.doe@example.org", 
    subject: "Hello Friends!", 
    html: "This is the <b>content</b>!"
}).then(console.log);

Send an e-mail with mailgun with Cc & Bcc

// Load service
broker.createService(require("moleculer-mail"), {
    settings: {
        transport: {
            service: "mailgun",
            auth: {
                api_key: 'api12345',
                domain: 'domain.com'
            }
        }
    }
});

// Send an e-mail to some people
broker.call("mail.send", { 
    to: "john.doe@example.org", 
    cc: "jane.doe@example.org",
    bcc: "boss@example.org",
    subject: "Hello Friends!", 
    text: "This is a text only message!"
}).then(console.log);

Send an e-mail from template

// Load service
broker.createService(require("moleculer-mail"), {
    settings: {
        transport: {
            type: "sendmail"
        },
        templateFolder: "./email-templates",

        // Global data for templates
        data: {
            siteName: "My app"
        }
    }
});

// Send a welcome template
broker.call("mail.send", { 
    to: "john.doe@example.org", 
    template: "welcome",
    language: "de",
    data: {
        name: "John Doe",
        username: "john_doe",
        verifyToken: "123456"
    }
});

Settings

PropertyTypeDescription
fromStringSender's default email address. Use it if missing from ctx.params
transportObjectTransport settings. Send to nodemailer.createTransporter
htmlToTextBooleanEnable html-to-text conversion
templateFolderStringPath to template folder
fallbackLanguageStringFallback language folder in template
dataObjectGlobal data for templates

Transport options

Read more from transport options

Localized templates

The service support templates. You should follow the given folder structure:

<templateFolder>
... en (language)
...... welcome (template name)
.........subject.hbs (subject template for "en" language)
.........html.pub (html template for "en" language)
... hu (language)
...... welcome (template name)
.........subject.hbs (subject template for "hu" language)
.........html.pub (html template for "hu" language)

Actions

NameParamsResultDescription
mail.sendAny field from hereObjectSend an email.
mail.rendertemplate,language,dataObjectRender a template.

Test

$ npm test

In development with watching

$ npm run ci

License

The project is available under the MIT license.

Contact

Copyright (c) 2016-2022 MoleculerJS

@moleculerjs @MoleculerJS

1.2.6

2 years ago

2.0.0

2 years ago

1.2.5

4 years ago

1.2.4

4 years ago

1.2.3

5 years ago

1.2.2

5 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.1

6 years ago

1.1.0

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago