新闻通讯
配置新闻通讯提供商来管理订阅
新闻通讯
LaunchSaaS 支持新闻通讯订阅,具有可扩展的提供商架构。你可以轻松切换提供商、添加自定义实现或完全禁用新闻通讯功能。
支持的提供商
- Resend - 使用 Resend Audiences 进行新闻通讯管理
- Custom - 使用你自己的新闻通讯提供商扩展
配置
在 src/configuration/features.ts 中配置你的新闻通讯提供商:
export const features: Features = {
newsletter: {
provider: "resend", // "resend" | "disabled"
},
// ... 其他功能
};设置 Resend 新闻通讯
1. 创建 Resend 账户
- 在 resend.com 注册
- 验证你的电子邮件地址
- 免费套餐每天可发送 100 封邮件
2. 获取 API 密钥
- 在 Resend Dashboard 中前往 API Keys
- 点击 "Create API Key"
- 给它一个名称(例如 "LaunchSaaS")
- 添加到你的
.env文件:
RESEND_API_KEY="re_..."3. 设置 Resend Audiences
- 在 Resend Dashboard 中前往 Audiences
- 为新闻通讯订阅创建受众
- 复制 Audience ID 并添加到
.env文件:
RESEND_AUDIENCE_NEWSLETTER="audience-id-for-newsletter"4. 可选:等待列表受众
你也可以为等待列表订阅创建单独的受众:
RESEND_AUDIENCE_WAITLIST="audience-id-for-waitlist"如果你正在设置环境,现在可以返回环境设置指南继续。
自定义新闻通讯提供商
要添加自定义新闻通讯提供商:
- 在
src/lib/newsletter/providers/中创建实现NewsletterProvider接口的新提供商类 - 在
src/lib/newsletter/factory.ts中注册 - 添加到
src/schemas/site-configuration.ts中的Features类型
示例:
import { NewsletterProvider } from "../provider";
export class CustomNewsletterProvider implements NewsletterProvider {
async subscribe(
email: string,
metadata?: Record<string, unknown>,
): Promise<void> {
// 实现订阅逻辑
}
async unsubscribe(email: string): Promise<void> {
// 实现取消订阅逻辑
}
}在工厂中注册:
case "custom":
return new CustomNewsletterProvider();禁用新闻通讯
要禁用新闻通讯功能:
export const features: Features = {
newsletter: {
provider: "disabled",
},
};禁用时,系统使用无操作提供商,将订阅请求记录到控制台而不是处理它们。