nuxt-mail
Version:
Adds email sending capability to a Nuxt.js app. Adds a server route, an injected variable, and uses nodemailer to send emails.
21 lines • 683 B
JavaScript
import { createError, defineEventHandler, readBody } from "h3";
import nodemailer from "nodemailer";
import { useRuntimeConfig } from "#imports";
import normalizeOptions from "./normalize-options.js";
import send from "./send.js";
const options = normalizeOptions(useRuntimeConfig().mail);
let transport = null;
export default defineEventHandler(async event => {
if (!transport) {
transport = nodemailer.createTransport(options.smtp);
}
try {
await send(await readBody(event), options, transport);
} catch (error) {
throw createError({
statusCode: 500,
statusMessage: error instanceof Error ? error.message : String(error)
});
}
return "";
});