Maison >interface Web >js tutoriel >Envoi d'e-mails dans Nuxt Comment gérer les e-mails dans mon passe-partout SaaS
Si vous construisez quelque chose de sérieux dans Nuxt 3, vous devrez envoyer des e-mails.
Voici ma configuration qui vous permet de basculer entre Resend, SendGrid ou tout autre fournisseur sans réécrire le code.
const generateMailer = async () => { const mailer = await generateMailer({ default: "resend", from: { address: "hi@saas-boilerplate.dev", name: "SaaS Boilerplate", }, mailers: { resend: transports.resend({ key: process.env.RESEND_API_KEY || "", baseUrl: "https://api.resend.com", }), // Easy to add more providers! sendgrid: transports.sendgrid({ key: process.env.SENDGRID_API_KEY || "", }) }, }); return mailer; };
Voici un modèle d'e-mail de lien magique simple :
<template> <Html> <Body> <Container> <Heading>Sign In to Your Account</Heading> <Text>Hi {{ username }},</Text> <Text>Click the button below to sign in:</Text> <Section> <Button :href="signInLink">Sign In</Button> </Section> <Text> Or copy this link: <Link :href="signInLink">{{ signInLink }}</Link> </Text> <Hr /> <Text>This link expires in 1 hour.</Text> </Container> </Body> </Html> </template> <script setup lang="ts"> import { Body, Button, Container, Heading, Html, Link, Section, Text, Hr } from "@vue-email/components"; interface Props { username?: string; signInLink?: string; } withDefaults(defineProps<Props>(), { username: "User", signInLink: "https://app.example.com/sign-in", }); </script>
import MagicLinkSignIn from "~/emails/MagicLinkSignIn.vue"; const mailer = await getMailer(); await mailer.send(async (message) => { message .to(email) .subject("Magic Link Sign In") .html( await render(MagicLinkSignIn, { username: user?.name, signInLink: url, }) ); });
AdonisJS Mail est livré avec des tonnes de fonctionnalités puissantes que nous pouvons utiliser :
Par exemple, joindre une invitation d'agenda est aussi simple que :
message.icalEvent((calendar) => { calendar.createEvent({ summary: 'Team Meeting', start: DateTime.local().plus({ minutes: 30 }), end: DateTime.local().plus({ minutes: 60 }), }) });
Vous voulez en savoir plus sur ce qu'AdonisJS Mail peut faire ? Consultez leur documentation détaillée.
Cette configuration de messagerie fait partie de mon passe-partout Nuxt SaaS.
Si vous créez un SaaS, jetez-y un œil : il est livré avec des API de type sécurisé utilisant tRPC, un RBAC (contrôle d'accès basé sur les rôles) de niveau entreprise et des fonctionnalités prêtes pour la production telles que l'authentification, la gestion d'équipe et la facturation. .
Chaque fonctionnalité est conçue avec la même attention portée à l'expérience des développeurs que ce système de messagerie.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!