port-nimara-client-portal/server/utils/email.ts

46 lines
1.0 KiB
TypeScript
Raw Normal View History

import nodemailer from 'nodemailer';
interface EmailOptions {
from: string;
to: string;
subject: string;
html?: string;
text?: string;
}
interface SmtpConfig {
host: string;
port: number;
secure: boolean;
auth: {
user: string;
pass: string;
};
}
export async function sendEmail(options: EmailOptions, config?: SmtpConfig) {
// Use provided config or default to environment config
const smtpConfig = config || {
host: process.env.SMTP_HOST || 'mail.portnimara.com',
port: parseInt(process.env.SMTP_PORT || '465'),
secure: process.env.SMTP_SECURE !== 'false',
auth: {
user: process.env.SMTP_USER || '',
pass: process.env.SMTP_PASS || ''
}
};
// Create transporter
const transporter = nodemailer.createTransport(smtpConfig);
// Send email
try {
const info = await transporter.sendMail(options);
console.log('Email sent:', info.messageId);
return info;
} catch (error) {
console.error('Failed to send email:', error);
throw error;
}
}