Resend.com 是一个专注于电子邮件 API 服务的平台,致力于帮助开发者和管理员高效发送及管理事务性邮件(如注册验证、密码重置、通知等)。官方网站:https://resend.com
一、概述
1. 主要功能
-
电子邮件 API 提供简洁的 REST API,支持开发者将邮件发送功能无缝集成至应用(如 Node.js、Python、Ruby 等),支持 HTML 模板、动态变量和附件等功能。
-
高送达率(Deliverability) 通过优化邮件服务器设置及认证(如 SPF、DKIM、DMARC),有效降低邮件被归类为垃圾邮件的可能性。
-
实时日志与分析 提供邮件发送状态(成功/失败)、打开率、点击率等详细数据,便于用户监控和分析邮件效果。
-
域名验证(Domain Verification) 支持绑定自定义域名(如 mail.yourdomain.com),增强品牌信任度。
2. 适用场景
- 网站的用户注册/登录:发送验证码或欢迎邮件。
- 网站的密码重置:提供安全链接或一次性验证码。
- 网站的交易通知:发送订单确认或付款提醒。
- 网站的营销邮件(需合规):发送新闻简讯或促销活动(需符合用户订阅要求)。
3. 与同类服务的对比
二、实施步骤
1.创建API Keys
首先到https://resend.com官网注册个账号,然后看图
然后点击 create API Key ,出现下图
点击Add 后出现下图
复制好这个Api Key,保存下来放到以后可以很容易找到的地方
2.使用smtp进行测试
到这个网站https://smtpserver.com/smtptest进行测试
- onboarding@resend.dev 这个是测试用的,官方提供的测试发送邮箱
- mailTo: 这个只能填自己在resend注册时候的邮箱,测试阶段往其他邮箱发邮件发不出去
- password: 这里填上面申请的API KEY 然后就可以到resend里的email查看,如下图
3.使用自己的域名邮箱发送邮件
添加域名
然后把这些解析添加到你的域名托管商的DNS解析上,添加完成之后进行验证
然后就可以到使用smtp服务测试了,在test@gmail.com里就可以收到以你的域名邮箱发来的测试邮件了
三、代码开发
我是使用nextjs来实现应用,所以代码如下:
import { Resend } from 'resend';
// 检查 API 密钥是否已设置
if (!process.env.RESEND_API_KEY) {
console.error('RESEND_API_KEY 未设置。邮件功能将不可用。');
throw new Error('RESEND_API_KEY 环境变量未设置');
}
// 检查发件人邮箱是否已设置
if (!process.env.EMAIL_FROM) {
console.error('EMAIL_FROM 未设置。邮件功能将不可用。');
throw new Error('EMAIL_FROM 环境变量未设置');
}
// 创建 Resend 客户端
export const resend = new Resend(process.env.RESEND_API_KEY);
发送邮件的代码
await resend.emails.send({
to: user.email,
from: process.env.EMAIL_FROM as string,
subject: "Reset your password",
html: `<div style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; padding: 20px;">
<h2 style="color: #6b46c1;">修改密码验证</h2>
<p>您好,</p>
<p>感谢您使用我们的服务修改密码。请点击下面的链接验证您的电子邮件地址:</p>
<p style="margin: 20px 0;">
<a href="${url}" style="background-color: #6b46c1; color: white; padding: 10px 15px; text-decoration: none; border-radius: 4px;">点击这里,验证邮件后修改密码</a>
</p>
<p>如果无法点击上面的按钮,请复制以下链接到浏览器地址栏:</p>
<p>${url}</p>
<p>如果您没有请求此验证,请忽略此电子邮件。</p>
<p>此链接将在24小时后失效。</p>
</div>`