@calculusky/transactional-email
v1.0.10
Published
Send transactional emails using any of the popular email providers: sendgrid, Brevo with a single wrapper
Downloads
88
Maintainers
Readme
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: "[email protected]", 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: "[email protected]", // 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: "[email protected]" } }],
};
//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: "[email protected]", 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: "[email protected]", // 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: "[email protected]" } }],
};
//Brevo message options
const message: Brevo.BrevoOptions = {
sender: { email: "[email protected]", name: "John Doe" },
to: [{ email: "[email protected]", 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: