Horizon高级技巧邮件分发与Webhook推送功能实战指南【免费下载链接】Horizon Your own AI-powered news radar. Generates daily briefings in English Chinese. | 用 AI 构建你专属的新闻雷达项目地址: https://gitcode.com/gh_mirrors/horizon39/Horizon你是否厌倦了每天在海量信息中筛选重要新闻 Horizon作为一款AI驱动的新闻雷达不仅能智能筛选新闻还能通过邮件订阅和Webhook推送功能将精选内容直接送到你的收件箱和即时通讯工具。本文将为你详细介绍如何配置和使用Horizon的邮件分发与Webhook推送功能打造个性化的新闻推送系统。 邮件订阅功能打造专属新闻简报Horizon的邮件分发功能让你可以像订阅专业新闻简报一样每天定时接收AI筛选的重要新闻。这个功能不仅支持自动发送还能智能管理订阅者列表。邮件功能配置实战要启用邮件功能首先需要编辑data/config.json文件中的email配置部分{ email: { enabled: true, smtp_server: smtp.qq.com, smtp_port: 465, imap_enabled: true, imap_server: imap.qq.com, imap_port: 993, email_address: your-emailexample.com, sender_name: Horizon每日新闻, subscribe_keyword: SUBSCRIBE, unsubscribe_keyword: UNSUBSCRIBE } }核心功能亮点自动订阅管理用户只需发送主题为SUBSCRIBE的邮件到你的邮箱Horizon会自动将其加入订阅者列表。发送UNSUBSCRIBE即可退订。双语言支持邮件内容会根据配置自动生成中英文版本满足不同用户需求。HTML格式优化邮件采用美观的HTML格式确保在各种邮件客户端中都能良好显示。安全防护自动过滤noreply邮件地址防止误订阅。实战配置技巧技巧1使用Resend等现代邮件服务{ email: { enabled: true, smtp_server: smtp.resend.com, smtp_port: 465, smtp_username: resend, password_env: RESEND_API_KEY, imap_enabled: false, email_address: noreplyyourdomain.com, sender_name: Horizon Daily } }技巧2环境变量安全存储在.env文件中设置邮箱密码EMAIL_PASSWORDyour_app_password_here Webhook推送实时通知到即时通讯工具Webhook功能让Horizon能够将新闻摘要推送到飞书、钉钉、Slack、Discord等即时通讯平台实现实时通知。Webhook配置核心参数在data/config.json中配置webhook{ webhook: { enabled: true, url_env: HORIZON_WEBHOOK_URL, delivery: summary, platform: generic, layout: markdown, request_body: { text: #{message_title}\n\n#{summary} } } }支持的主要平台平台配置要点适用场景飞书/Lark使用platform: feishu团队协作、企业通知钉钉需要自定义关键词企业办公场景Slack标准Webhook格式技术团队协作Discord支持Markdown格式社区通知自定义Webhook灵活配置请求体集成到自建系统高级推送模式Horizon支持两种推送模式满足不同场景需求模式1摘要模式summary发送单个包含所有内容的完整摘要适合内容较少的场景配置简单易于管理模式2分项模式summary_and_items先发送概述消息然后为每个重要新闻项发送单独消息适合内容较多需要详细查看的场景{ webhook: { enabled: true, delivery: summary_and_items, overview_position: last, platform: feishu, layout: collapsible } }️ 实战配置指南步骤1基础环境配置克隆项目并安装依赖git clone https://gitcode.com/gh_mirrors/horizon39/Horizon cd Horizon uv sync复制配置文件cp .env.example .env cp data/config.example.json data/config.json配置AI服务在.env文件中OPENAI_API_KEYyour_openai_api_key # 或使用其他AI服务 ANTHROPIC_API_KEYyour_claude_api_key步骤2邮件功能详细配置编辑data/config.json重点配置email部分{ email: { enabled: true, smtp_server: smtp.gmail.com, smtp_port: 587, smtp_username: your-emailgmail.com, imap_enabled: true, imap_server: imap.gmail.com, imap_port: 993, email_address: your-emailgmail.com, password_env: EMAIL_PASSWORD, sender_name: Horizon AI News, subscribe_keyword: 订阅, unsubscribe_keyword: 退订 } }重要提醒对于Gmail等现代邮箱服务需要使用应用专用密码而非常规密码。步骤3Webhook集成配置飞书/Lark配置示例在飞书群组中创建自定义机器人获取Webhook URL配置Horizon{ webhook: { enabled: true, url_env: FEISHU_WEBHOOK_URL, delivery: summary, platform: feishu, layout: collapsible, languages: [zh], request_body: { msg_type: interactive, card: { schema: 2.0, config: {wide_screen_mode: true}, header: { title: {tag: plain_text, content: #{message_title}}, template: blue }, body: { elements: [ {tag: markdown, content: 重要新闻数量: #{important_items}/#{all_items}}, {tag: hr}, {tag: markdown, content: #{summary}} ] } } } } }钉钉配置示例{ webhook: { enabled: true, url_env: DINGTALK_WEBHOOK_URL, platform: generic, request_body: { msgtype: markdown, markdown: { title: Horizon #{date} 日报, text: Horizon重要新闻: #{important_items}/#{all_items}\n\n#{summary} } } } }步骤4运行测试配置完成后运行Horizon测试推送功能# 本地运行 uv run horizon # 使用Docker运行 docker compose run --rm horizon # 指定时间范围 uv run horizon --hours 48 高级技巧与最佳实践技巧1多语言推送策略Horizon支持中英文双语推送你可以根据受众灵活配置{ ai: { languages: [en, zh] }, webhook: { languages: [zh] // 只推送中文到Webhook } }技巧2智能内容截断对于长内容使用模板变量限制长度{ request_body: { text: #{message_title}\n\n#{summary?limit3000split---} } }这个配置会在3000字符处截断但会确保在---分隔符处完整断开。技巧3环境变量模板在配置中使用环境变量增强安全性{ email: { email_address: ${HORIZON_EMAIL_ADDRESS} }, webhook: { url_env: HORIZON_WEBHOOK_URL, headers: Authorization: Bearer ${HORIZON_WEBHOOK_TOKEN} } }技巧4错误处理与监控Horizon的Webhook功能包含完整的错误处理机制自动重试失败的请求详细的日志记录响应状态码检查平台特定错误码解析 实际效果展示从上图可以看到Horizon的运行过程包括新闻抓取、AI评分、内容筛选和推送发送的完整流程。 故障排除指南常见邮件问题SMTP连接失败检查端口配置465用于SSL587用于TLS确认是否启用应用专用密码验证防火墙设置IMAP订阅功能不工作确保imap_enabled设置为true检查邮箱服务是否支持IMAP确认订阅关键词设置正确常见Webhook问题推送失败检查Webhook URL是否正确验证平台要求的请求格式查看Horizon日志获取详细错误信息内容格式问题调整layout参数使用collapsible布局处理长内容调整delivery模式为summary_and_items 自动化部署方案GitHub Actions自动运行利用GitHub Actions实现每日自动运行# .github/workflows/daily-summary.yml name: Daily Summary on: schedule: - cron: 0 8 * * * # 每天UTC时间8点运行 workflow_dispatch: # 支持手动触发 jobs: horizon: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - uses: astral-sh/setup-uvv3 - run: uv sync - run: uv run horizon env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} EMAIL_PASSWORD: ${{ secrets.EMAIL_PASSWORD }} HORIZON_WEBHOOK_URL: ${{ secrets.HORIZON_WEBHOOK_URL }}Docker Compose持续运行使用Docker Compose实现稳定运行# docker-compose.yml version: 3.8 services: horizon: build: . environment: - OPENAI_API_KEY${OPENAI_API_KEY} - EMAIL_PASSWORD${EMAIL_PASSWORD} - HORIZON_WEBHOOK_URL${HORIZON_WEBHOOK_URL} volumes: - ./data:/app/data command: [uv, run, horizon] 性能优化建议邮件发送优化批量发送Horizon自动批量处理订阅者邮件连接复用SMTP连接在整个发送过程中保持错误隔离单个收件人错误不影响其他发送Webhook性能优化异步发送使用异步HTTP客户端提高性能连接池复用HTTP连接减少开销超时控制合理设置请求超时时间 总结Horizon的邮件分发和Webhook推送功能为新闻订阅提供了完整的解决方案。通过本文的实战指南你可以✅快速搭建邮件订阅系统让用户通过简单邮件订阅每日新闻 ✅集成主流即时通讯工具实现实时新闻推送 ✅配置智能内容分发根据内容重要度调整推送策略 ✅实现自动化运行通过GitHub Actions或Docker持续提供服务无论你是个人用户希望定制专属新闻简报还是团队需要共享重要行业动态Horizon都能提供稳定可靠的解决方案。开始配置你的Horizon新闻雷达享受AI筛选的高质量信息推送吧相关资源详细配置文档docs/configuration.md邮件服务源码src/services/email.pyWebhook服务源码src/services/webhook.pyAI功能模块src/ai/【免费下载链接】Horizon Your own AI-powered news radar. Generates daily briefings in English Chinese. | 用 AI 构建你专属的新闻雷达项目地址: https://gitcode.com/gh_mirrors/horizon39/Horizon创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考