@calculusky/transactional-email
TypeScript icon, indicating that this package has built-in type declarations

1.0.10 • Public • Published

Transactional Email

Send transactional emails using any of the popular email providers: Sendgrid, Brevo with a single wrapper

Installation

pnpm install @calculusky/transactional-email
#or
npm install @calculusky/transactional-email
#or
yarn add @calculusky/transactional-email

Usage

First, obtain your API key from the dashboard for any of the service provider you would want to use.

Examples

CommonJS Usage

Note: In order to gain the TypeScript typings (for intellisense / autocomplete) while using CommonJS, use require().default as seen below:

const TransactionalEmail = require("@calculusky/transactional-email").default;

const email = new TransactionalEmail({
    apiKey: "YOUR API KEY",
    from: { email: "info@example.com", name: "John Doe" }, // optional (default value for the sender). You can set or overwrite it in the send() method options
});

//sendgrid message options
const message = {
    from: "info@example.com", // Use the email address or domain you verified
    subject: "Sending with Sendgrid Provider",
    text: "This is just a test mail",
    html: "<strong>This is just a test mail</strong>",
    personalization: [{ to: { email: "johndoe@gmail.com" } }],
};

//ES6
email.send({ provider: "sendgrid", emailOptions: message }).then(
    () => {},
    (error) => {
        console.error(error);

        if (error.response) {
            console.error(error.response.data);
        }
    }
);
//ES8
(async () => {
    try {
        await email.send(message);
    } catch (error) {
        console.error(error);

        if (error.response) {
            console.error(error.response.data);
        }
    }
})();

TypeScript Usage

import TransactionalEmail, {
    Brevo,
    Sendgrid,
} from "@calculusky/transactional-email";

const email = new TransactionalEmail({
    provider: "YOUR PROVIDER" //values: brevo or sendgrid
    apiKey: "YOUR PROVIDER API KEY",
    from: { email: "info@example.com", name: "John Doe" }, // optional (default value for the sender). You can set or overwrite it in the send() method options
});

//sendgrid message options
const message: Sendgrid.SendgridOptions = {
    from: "info@example.com", // Use the email address or domain you verified
    subject: "Sending with Sendgrid Provider",
    text: "This is just a test mail",
    html: "<strong>This is just a test mail</strong>",
    personalization: [{ to: { email: "johndoe@gmail.com" } }],
};

//Brevo message options
const message: Brevo.BrevoOptions = {
    sender: { email: "info@example.com", name: "John Doe" },
    to: [{ email: "receiver@example2.com", name: "John Smith" }],
    subject: "Sending with Brevo Provider",
    textContent: "This is just a test mail",
    htmlContent: "<strong>This is just a test mail</strong>",
};

//ES6
email.send(message).then(
    () => {},
    (error) => {
        console.error(error);

        if (error.response) {
            console.error(error.response.data);
        }
    }
);
//ES8
(async () => {
    try {
        await email.send(message);
    } catch (error) {
        console.error(error);

        if (error.response) {
            console.error(error.response.data);
        }
    }
})();

Note: Message options vary for different providers. Please checkout the option interface for each provider. For more details, you can visit their official platforms for transactional message options. Below are the links:

Package Sidebar

Install

npm i @calculusky/transactional-email

Weekly Downloads

22

Version

1.0.10

License

MIT

Unpacked Size

58 kB

Total Files

19

Last publish

Collaborators

  • calculusky