LogoLaunchSaaS

新闻通讯

配置新闻通讯提供商来管理订阅

新闻通讯

LaunchSaaS 支持新闻通讯订阅,具有可扩展的提供商架构。你可以轻松切换提供商、添加自定义实现或完全禁用新闻通讯功能。

支持的提供商

  • Resend - 使用 Resend Audiences 进行新闻通讯管理
  • Custom - 使用你自己的新闻通讯提供商扩展

配置

src/configuration/features.ts 中配置你的新闻通讯提供商:

export const features: Features = {
  newsletter: {
    provider: "resend", // "resend" | "disabled"
  },
  // ... 其他功能
};

设置 Resend 新闻通讯

1. 创建 Resend 账户

  1. resend.com 注册
  2. 验证你的电子邮件地址
  3. 免费套餐每天可发送 100 封邮件

2. 获取 API 密钥

  1. 在 Resend Dashboard 中前往 API Keys
  2. 点击 "Create API Key"
  3. 给它一个名称(例如 "LaunchSaaS")
  4. 添加到你的 .env 文件:
RESEND_API_KEY="re_..."

3. 设置 Resend Audiences

  1. 在 Resend Dashboard 中前往 Audiences
  2. 为新闻通讯订阅创建受众
  3. 复制 Audience ID 并添加到 .env 文件:
RESEND_AUDIENCE_NEWSLETTER="audience-id-for-newsletter"

4. 可选:等待列表受众

你也可以为等待列表订阅创建单独的受众:

RESEND_AUDIENCE_WAITLIST="audience-id-for-waitlist"

如果你正在设置环境,现在可以返回环境设置指南继续。

自定义新闻通讯提供商

要添加自定义新闻通讯提供商:

  1. src/lib/newsletter/providers/ 中创建实现 NewsletterProvider 接口的新提供商类
  2. src/lib/newsletter/factory.ts 中注册
  3. 添加到 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",
  },
};

禁用时,系统使用无操作提供商,将订阅请求记录到控制台而不是处理它们。

参考资料

下一步