Skip to content
Souloss
Go back

博客通知系统配置指南

了解如何配置 astro-minimax 博客的多渠道通知系统,支持 Telegram、邮件和 Webhook,实时接收评论和 AI 对话通知。

教程/配置 |
| 3 分钟阅读 | 750 字

astro-minimax 内置多渠道通知系统,可以在博客收到评论或用户进行 AI 对话时,自动发送通知到 Telegram、邮箱或自定义 Webhook。

flowchart LR
    Event[博客事件] --> N{通知系统}
    N --> T[🤖 Telegram Bot]
    N --> E[📧 Email]
    N --> W[🔗 Webhook]

    subgraph 事件类型
        C[💬 新评论]
        A[🗣 AI 对话]
    end

    C --> Event
    A --> Event

    style T fill:#0088cc,color:#fff
    style E fill:#ef4444,color:#fff
    style W fill:#8b5cf6,color:#fff

功能概览

通知系统支持以下功能:

功能说明
多渠道Telegram Bot、Email (Resend)、Webhook
多事件新评论、AI 对话
丰富信息Token 用量、阶段耗时、引用文章等
隐私保护Session ID 自动匿名化

环境变量配置

通知系统通过环境变量配置,所有变量以 NOTIFY_ 开头。

Telegram Bot 配置

# Notify - Telegram Provider
NOTIFY_TELEGRAM_BOT_TOKEN=your-bot-token
NOTIFY_TELEGRAM_CHAT_ID=your-chat-id
bash

获取 Bot Token

  1. 在 Telegram 搜索 @BotFather
  2. 发送 /newbot 创建新 Bot
  3. 按提示设置 Bot 名称
  4. 获得 Token(格式:123456789:ABCdefGHIjklMNOpqrsTUVwxyz

获取 Chat ID

  1. 在 Telegram 搜索 @userinfobot
  2. 发送 /start
  3. 获取你的 Chat ID(纯数字,如 123456789

Tip

Chat ID 可以是个人私聊、群组或频道。发送到群组时,Bot 需要是群组管理员。

Email 配置 (Resend)

# Notify - Email Provider (Resend)
NOTIFY_RESEND_API_KEY=re_xxx
NOTIFY_RESEND_FROM=noreply@yourdomain.com
NOTIFY_RESEND_TO=you@example.com
bash

获取 Resend API Key

  1. 注册 Resend 账号
  2. 在 Dashboard 点击 “Create API Key”
  3. 复制生成的 API Key(格式:re_xxx

Note

使用 Resend 测试域名 (onboarding@resend.dev) 时,只能发送到你在 Resend 注册时使用的邮箱。正式使用需要验证自己的域名。

Webhook 配置

# Notify - Webhook Provider
NOTIFY_WEBHOOK_URL=https://your-webhook.com/notify
bash

Webhook 会收到 POST 请求,JSON 格式如下:

{
  "event": "comment",
  "timestamp": "2026-03-17T12:00:00.000Z",
  "data": {
    "author": "张三",
    "content": "文章写得真好!",
    "postTitle": "如何使用 Astro",
    "postUrl": "https://example.com/posts/how-to-use-astro"
  }
}
json

配置文件示例

.env 文件中添加完整配置:

# Notify - Telegram Provider
NOTIFY_TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
NOTIFY_TELEGRAM_CHAT_ID=123456789

# Notify - Email Provider (Resend)
NOTIFY_RESEND_API_KEY=re_xxx
NOTIFY_RESEND_FROM=noreply@yourdomain.com
NOTIFY_RESEND_TO=you@example.com

# Notify - Webhook Provider (可选)
NOTIFY_WEBHOOK_URL=https://your-webhook.com/notify
bash

通知效果预览

评论通知

💬 新评论

📖 文章:如何使用 Astro
👤 评论者:张三

「文章写得真好!」

🔗 查看评论
plaintext

AI 对话通知

Waline 评论通知集成

如果你的博客使用 Waline 评论系统,可以配置 Webhook 来触发通知:

配置 Waline Webhook

在 Waline 服务端配置中添加:

# Waline 服务端环境变量
WEBHOOK=https://your-blog.pages.dev/api/notify/comment
yaml

或者在 vercel.json / netlify.toml 中:

{
  "env": {
    "WEBHOOK": "https://your-blog.pages.dev/api/notify/comment"
  }
}
json

Webhook 端点

通知系统提供以下 API 端点:

端点说明
POST /api/notify/comment评论通知(Waline Webhook)

自定义模板

如果需要自定义通知格式,可以在代码中创建自定义通知器:

代理配置

如果服务器需要通过代理访问外部 API,可以配置 HTTP 代理:

# HTTP/HTTPS 代理
HTTP_PROXY=http://127.0.0.1:7890
HTTPS_PROXY=http://127.0.0.1:7890
bash

通知系统会自动检测并使用代理。

故障排除

通知发送失败

  1. 检查环境变量:确保所有必需的变量都已正确配置
  2. 检查网络:确保服务器可以访问 Telegram API (api.telegram.org) 和 Resend API (api.resend.com)
  3. 检查日志:通知失败会在日志中输出错误信息

Telegram 通知失败

邮件通知失败

架构说明

通知系统作为独立包 @astro-minimax/notify 存在:

packages/notify/
├── src/
│   ├── providers/    # 渠道提供者
│   │   ├── telegram.ts
│   │   ├── email.ts
│   │   └── webhook.ts
│   ├── templates/    # 通知模板
│   └── types.ts      # 类型定义
└── README.md
plaintext

设计原则

总结

astro-minimax 通知系统提供了简单而强大的多渠道通知能力。只需配置几个环境变量,就能实时接收博客评论和 AI 对话的通知,帮助你及时了解博客动态。



上一篇
CLI 工具使用指南
下一篇
为什么选择 astro-minimax:设计决策与技术思考

相关推荐

评论区

文明评论,共建和谐社区