@swiftpost/mail
v0.0.3
Published
Allows you to compose and send swift html emails, with a special focus on authentication emails.
Readme
@swiftpost/mail
Overview
Allows you to compose and send swift html emails, with a special focus on authentication emails. It provides a flexible template system and integrates with Nodemailer for email delivery.
Installation
npm install @swiftpost/mailUsage
Configuration
Configure SwiftPost with your SMTP settings.
By default, it will use the environment variables SMTP_HOST, SMTP_PORT, SMTP_SECURE, SMTP_USER, and SMTP_PASS to configure the SMTP connection. If SMTP_URL is set in the environment, it will be used instead. If SMTP_FROM is set, it will be used as the default sender email address.
import { SwiftPost } from "@swiftpost/mail";
const swiftPost = new SwiftPost({
host: "smtp.swiftpost.io",
port: 587,
secure: false,
auth: {
user: "[email protected]",
pass: "password",
},
from: "[email protected]",
});Sending Emails
Use the provided methods to send different types of emails.
await swiftPost.sendWelcomeEmail(
{ to: "[email protected]" },
{
name: "Jon Manga",
companyName: "SwiftPost",
link: "https://swiftpost.io/welcome",
}
);SwiftPost methods
| Method | Description |
| ------------------------------------ | ------------------------------------------------------------------ |
| sendWelcomeEmail | Generates and sends a welcome email. |
| getWelcomeEmailHtml | Renders and returns the html for a welcome email. |
| sendConfirmationEmail | Generates and sends a confirmation email. |
| getConfirmationEmailHtml | Renders and returns the html for a confirmation email. |
| sendPasswordResetEmail | Generates and sends a password reset email. |
| getPasswordResetEmailHtml | Renders and returns the html for a password reset email. |
| sendPasswordlessLoginEmail | Generates and sends a passwordless login email. |
| getPasswordlessLoginEmailHtml | Renders and returns the html for a passwordless login email. |
| sendAcceptInvitationEmail | Generates and sends an accept invitation email. |
| getAcceptInvitationEmailHtml | Renders and returns the html for an accept invitation email. |
| sendPasswordInvitationEmail | Generates and sends a password invitation email. |
| getPasswordInvitationEmailHtml | Renders and returns the html for a password invitation email. |
| sendWelcomeWithCredentialsEmail | Generates and sends a welcome with credentials email. |
| getWelcomeWithCredentialsEmailHtml | Renders and returns the html for a welcome with credentials email. |
| sendMail | Sends an email using nodemailer's sendMail method. |
SwiftPost Options
SwiftPost options extend the Nodemailer SMTP options.
| Option | Type | Description |
| -------------- | ------- | ------------------------------------------------------------------------------------------------------- |
| host | string | The hostname or IP address to connect to (e.g., "smtp.swiftpost.io"). |
| port | number | The port to connect to (e.g., 587). |
| secure | boolean | If true, the connection will use TLS when connecting to the server. |
| auth | object | Authentication object containing user and pass properties. |
| from | string | The default email address to use as the sender. |
| url | string | SMTP URL to connect to. |
| transport | object | Custom transport object or string. |
| templatesDir | string | Directory path for email templates. You can specify your own path is you want to override the templates |
| debug | boolean | If true, enables debug mode for logging. |
You also have access to the @swiftpost/templ package to use and render your own templates.
Example of a custom template:
const templatePath = path.join(__dirname, "templates", "my-template.html");
const html = await swiftPost.templ.render(templatePath, {
name: "Jon Manga",
});const template = `<h1>Hello {{ name }}</h1>`;
const html = await swiftPost.templ.render(template, {
name: "Jon Manga",
});
await swiftPost.sendMail({
to: "[email protected]",
subject: "My Template",
html,
});You can also have access to the Templ class directly to use your own templates.
const templ = new Templ({
baseDir: path.join(__dirname, "templates"),
});NestJS
See the @swiftpost/nest package for more information on how to use SwiftPost with NestJS.
License
This project is licensed under the MIT License. See the LICENSE file for details.
