Installation
Install nodemailer via your package manager:
Basic Configuration
const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransporter({
host: 'smtp.lettermint.co',
port: 587,
secure: false, // true for 465, false for other ports
auth: {
user: 'lettermint',
pass: 'your-api-token',
},
});
async function sendEmail() {
try {
const info = await transporter.sendMail({
from: 'sender@yourdomain.com',
to: 'recipient@example.com',
subject: 'Test Email',
text: 'Hello! This is a test email.',
html: '<h1>Hello!</h1><p>This is a test email.</p>',
});
console.log('Message sent:', info.messageId);
} catch (error) {
console.error('Error sending email:', error);
}
}
sendEmail();
Advanced Features
Multiple Recipients
const mailOptions = {
from: 'sender@yourdomain.com',
to: ['user1@example.com', 'user2@example.com'],
cc: 'manager@yourdomain.com',
bcc: 'archive@yourdomain.com',
subject: 'Newsletter',
html: '<h1>Monthly Update</h1>',
};
Attachments
const mailOptions = {
from: 'sender@yourdomain.com',
to: 'recipient@example.com',
subject: 'Document Attached',
html: '<p>Please find the document attached.</p>',
attachments: [
{
filename: 'document.pdf',
path: './files/document.pdf',
},
{
filename: 'data.json',
content: JSON.stringify({ key: 'value' }),
},
],
};
const mailOptions = {
from: 'sender@yourdomain.com',
to: 'recipient@example.com',
subject: 'Custom Headers',
html: '<p>Email with custom headers.</p>',
headers: {
'X-Priority': '1',
'X-Custom-Header': 'Custom Value',
},
};
Add metadata that will be included in webhook payloads:
const mailOptions = {
from: 'sender@yourdomain.com',
to: 'recipient@example.com',
subject: 'Order Confirmation',
html: '<p>Your order has been confirmed.</p>',
headers: {
'X-LM-Metadata-order_id': '12345',
'X-LM-Metadata-customer_id': 'cust_789',
'X-LM-Metadata-campaign': 'order_confirmation',
},
};
When using SMTP, metadata is passed via X-LM-Metadata-*
headers. These are extracted by Lettermint and included in webhook payloads, but not added to the actual email sent to recipients.