@antelopejs/nodemailer
v0.0.6
Published
SMTP email module for AntelopeJS, implementing the Email interface with Nodemailer
Readme
@antelopejs/nodemailer
The AntelopeJS email module: it sends the email interface's messages over SMTP with Nodemailer.
Interfaces
| Interface | Documentation |
| ------------------------------------------------------------------------------ | --------------------------------------------------------------------- |
| @antelopejs/interface-email | Email |
The module implements Send, SendBatch, SendTemplate with inline templates, attachments, reply headers and priorities. Provider-hosted templates are not supported: SendTemplate with a template ID returns a NOT_SUPPORTED error.
Install
ajs project modules add @antelopejs/nodemailerThe module ships no default configuration: add a config block before starting the project.
Configuration
import { defineConfig } from "@antelopejs/interface-core/config";
export default defineConfig({
name: "my-project",
modules: {
nodemailer: {
source: {
type: "package",
package: "@antelopejs/nodemailer",
version: "^0.0.5",
},
config: {
host: "smtp.example.com",
port: 587,
secure: false,
auth: { user: "smtp-user", pass: "smtp-password" },
defaults: { from: "[email protected]" },
},
},
},
envOverrides: {
SMTP_PASSWORD: "modules.nodemailer.config.auth.pass",
},
});| Key | Description |
| --------------- | ------------------------------------------------------------------------------------------------------------ |
| host | SMTP host. Required unless ethereal is true. |
| port | SMTP port, as a number. Required unless ethereal is true. |
| secure | Use TLS from the start of the connection. Defaults to true on port 465 and false otherwise. |
| auth | Optional SMTP credentials, { user, pass }. Both must be non-empty when set. |
| defaults.from | Sender used when a message has no from. |
| ethereal | Set to true in development to send through a temporary Ethereal account instead. |
With ethereal: true, the module ignores the other keys, creates an account at startup, logs its address and uses it as the default sender. Each sent message logs a preview URL where you can read it.
Quick start
In the module that sends email, add the interface:
pnpm add @antelopejs/interface-emailimport { Send } from "@antelopejs/interface-email";
const result = await Send({
to: "[email protected]",
subject: "Welcome",
text: "Your account is ready.",
html: "<p>Your account is ready.</p>",
});result.success tells whether the SMTP server accepted the message; result.error describes a failure.
Documentation
- Email: the
@antelopejs/interface-emailcontract this module implements - Configuration: module sources,
configblocks and config variables inantelope.config.ts
Compatibility
| Package | Supported range |
| ----------------------------- | ---------------- |
| @antelopejs/interface-email | >=0.0.5 <1.0.0 |
| @antelopejs/interface-core | >=0.1.1 <1.0.0 |
The module is developed and tested against @antelopejs/core ^1.13.4 on Node.js 24, with nodemailer ^6.10.1.
Contributing
pnpm install
pnpm dev # run the playground/ project with an Ethereal account
pnpm lint
pnpm format:check
pnpm knip
pnpm test # build, then ajs module testRead the contribution guidelines before opening a pull request.
