@swiftpost/mail v0.0.3
@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/mail
Usage
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: "user@swiftpost.io",
pass: "password",
},
from: "no-reply@swiftpost.io",
});
Sending Emails
Use the provided methods to send different types of emails.
await swiftPost.sendWelcomeEmail(
{ to: "hi@swiftpost.io" },
{
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: "hi@swiftpost.io",
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.