> 웹 프론트엔드 > JS 튜토리얼 > Nuxt에서 이메일 보내기 SaaS 상용구에서 이메일을 처리하는 방법

Nuxt에서 이메일 보내기 SaaS 상용구에서 이메일을 처리하는 방법

Linda Hamilton
풀어 주다: 2024-12-01 11:45:10
원래의
434명이 탐색했습니다.

Sending Emails in Nuxt How I Handle Emails in My SaaS Boilerplate

Nuxt 3에서 중요한 것을 만들고 있다면 이메일을 보내야 합니다.
코드를 다시 작성하지 않고도 Resend, SendGrid 또는 기타 공급자 간에 전환할 수 있는 설정은 다음과 같습니다.

설정

  • AdonisJS 메일(AdonisJS 외부에서 작동하도록 만들었으므로 모든 JS 백엔드에서 작동함)
  • 템플릿용 Vue 이메일
  • 모든 이메일 제공업체(Resend, AWS SES, Mailgun, Sparkpost, Brevo, Custom SMTP)와 호환됩니다.

기본 구성

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;
};
로그인 후 복사

Vue 이메일을 사용한 이메일 템플릿

다음은 간단한 매직 링크 이메일 템플릿입니다.

<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의 멋진 기능

AdonisJS Mail에는 우리가 사용할 수 있는 수많은 강력한 기능이 포함되어 있습니다.

  1. 다중 전송 지원: 코드 한 줄로 이메일 제공업체 간 전환
  2. 캘린더 이벤트: 이메일에 캘린더 초대장 첨부
  3. 파일 첨부: 파일, 스트림, 버퍼를 쉽게 첨부
  4. HTML/텍스트 템플릿: HTML 및 일반 텍스트 이메일 모두 지원

예를 들어 캘린더 초대장을 첨부하는 방법은 다음과 같이 간단합니다.

message.icalEvent((calendar) => {
  calendar.createEvent({
    summary: 'Team Meeting',
    start: DateTime.local().plus({ minutes: 30 }),
    end: DateTime.local().plus({ minutes: 60 }),
  })
});
로그인 후 복사

이것이 잘 작동하는 이유

  • 언제든지 제공업체를 전환하세요
  • Vue에서 템플릿 작성
  • 쉬운 테스트
  • 모든 JS 백엔드에서 AdonisJS Mail의 모든 기능을 활용하세요

직접 시도해 보세요

AdonisJS Mail의 기능에 대해 자세히 알고 싶으십니까? 자세한 문서를 확인하세요.

이 이메일 설정은 Nuxt SaaS 상용구의 일부입니다.

SaaS를 구축하는 경우 확인하십시오. tRPC, 엔터프라이즈급 RBAC(역할 기반 액세스 제어) 및 인증, 팀 관리, 청구와 같은 프로덕션 지원 기능을 사용하는 유형 안전 API가 함께 제공됩니다. .

모든 기능은 이 이메일 시스템과 마찬가지로 개발자 경험에 중점을 두고 구축되었습니다.

위 내용은 Nuxt에서 이메일 보내기 SaaS 상용구에서 이메일을 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿