在 Nuxt 中发送电子邮件 我如何在 SaaS 样板中处理电子邮件

在 nuxt 中发送电子邮件 我如何在 saas 样板中处理电子邮件

如果您正在 nuxt 3 中构建任何严肃的东西,您将需要发送电子邮件。
这是我的设置,可让您在 resend、sendgrid 或任何其他提供程序之间切换,而无需重写代码。

设置

adonisjs mail(我让它在 adonisjs 之外工作,因此它可以与任何 js 后端一起工作)用于模板的 vue 电子邮件可与任何电子邮件提供商合作(resend、aws ses、mailgun、sparkpost、brevo、自定义 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 email 的电子邮件模板

这是一个简单的魔术链接电子邮件模板:

                    sign in to your account        hi {{ username }},        click the button below to sign in:        
or copy this link: {{ signinlink }}
this link expires in 1 hour. import { body, button, container, heading, html, link, section, text, hr} from "@vue-email/components";interface props { username?: string; signinlink?: string;}withdefaults(defineprops(), { username: "user", signinlink: "https://app.example.com/sign-in",});

登录后复制

发送电子邮件

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 附带了大量我们可以使用的强大功能:

多种传输支持:只需一行代码即可在电子邮件提供商之间切换日历活动:将日历邀请附加到您的电子邮件文件附件:轻松附加文件、流或缓冲区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 的类型安全 api、企业级 rbac(基于角色的访问控制)以及身份验证、团队管理和计费等生产就绪功能.

每个功能的构建都与此电子邮件系统一样注重开发人员体验。

以上就是在 Nuxt 中发送电子邮件 我如何在 SaaS 样板中处理电子邮件的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2648233.html

(0)
上一篇 2025年3月7日 08:08:38
下一篇 2025年2月18日 06:33:42

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • React Native 的基本级联形式

    我想分享我处理级联表单字段的 3 种方法。 第一种方法是通用的,使用状态变量。第二种是使用普通变量和一个布尔状态变量来触发状态效果(刷新页面)。 第三种是带有普通变量的动态表单字段。 在这篇文章中,我们看到第一种方法,即基于国家、州、城市数…

    2025年3月7日 编程技术
    200
  • 如何使用 @shopify/restyle 在 React Native 中构建类型强制的 UI 组件

    自从我在博客上写一篇技术文章以来已经有一段时间了,这是一篇关于使用 @shopify/restyle 和 expo 在 react native 中构建类型强制 ui 组件的新文章。 @shopify/restyle 是一个强大的 reac…

    2025年3月7日 编程技术
    200
  • 掌握依赖倒置原则:使用 DI 实现干净代码的最佳实践

    如果您熟悉面向对象编程,或者刚刚开始探索它,您可能遇到过缩写词solid。 solid 代表了一组旨在帮助开发人员编写干净、可维护和可扩展代码的原则。在这篇文章中,我们将重点关注 solid 中的“d”,它代表依赖倒置原则。 但在深入了解细…

    2025年3月7日 编程技术
    200
  • #FreeJavaScript

    一万六十七天…… 我在墙上又划了一笔。真的没有空间了。成千上万的线条像伤疤一样延伸……现在,每天早上,在这个小小的四轮驱动的牢房里,这已经成为一种习惯。寒冷潮湿的空气无助于咳嗽。 不过,我还是很感谢隔壁牢房吹奏的口琴。它增加了我要讲的故事的…

    2025年3月7日
    200
  • OST 掌握 JavaScript 的重要 JS 概念

    JavaScript 是一种多功能且功能强大的语言,对于现代 Web 开发至关重要。要精通 JavaScript,理解其一些核心概念至关重要。这些概念不仅有助于编写高效且可维护的代码,还使开发人员能够构建复杂且动态的 Web 应用程序。在本…

    2025年3月7日
    200
  • 掌握 JavaScript:利用高阶流释放函数响应式编程的力量

    javascript 中使用高阶流的函数响应式编程 (frp) 是处理代码中复杂的、基于时间的交互的强大方法。这是一种将我们的程序视为一系列数据流,而不是一系列命令式命令的方式。 让我们首先了解什么是流。在 frp 中,流是随时间变化的值序…

    2025年3月7日
    200
  • Angular 的新功能:信号

    嘿,angular 爱好者!今天,我很高兴与您分享 angular 中最新、最酷的功能之一:信号。如果您像我一样,总是在寻找使代码更高效、更易于管理的方法,那么您一定会喜欢这个。 什么是信号?简单来说,信号是 angular 应用程序中处理…

    2025年3月7日
    200
  • Javascript 中的符号及其示例

    symbol 是一个内置对象,其构造函数返回一个 symbol 基元 — 也称为 symbol 值 或只是一个 symbol — 保证是唯一的。符号通常用于向对象添加唯一的属性键,这些属性键不会与任何其他代码可能添加到该对象的键发生冲突,并…

    2025年3月7日
    200
  • Logging System with Proxy and Fetch

    代理对象:fetchlogger 包装了 fetch 函数。它使用 apply trap 来拦截对 fetch 的调用。 请求日志记录:记录请求的 url 和选项。响应处理:记录响应状态、状态文本和 url。克隆响应以确保正文可以被多次读取…

    2025年3月7日
    200
  • 如何将交互式图表和图形添加到 Tailwind CSS 管理模板

    管理仪表板模板对于有效管理和可视化数据至关重要。 tailwind css 以其实用性优先的方法而闻名,它简化了设计令人惊叹的管理仪表板的过程。向这些仪表板添加交互式图表和图形可以将原始数据转换为富有洞察力的可视化效果,从而增强整体用户体验…

    2025年3月7日 编程技术
    200

发表回复

登录后才能评论