惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
B
Blog RSS Feed
大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 【当耐特】
MongoDB | Blog
MongoDB | Blog
Hugging Face - Blog
Hugging Face - Blog
有赞技术团队
有赞技术团队
T
The Blog of Author Tim Ferriss
B
Blog
小众软件
小众软件
T
Tailwind CSS Blog
MyScale Blog
MyScale Blog
I
InfoQ
Engineering at Meta
Engineering at Meta
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
H
Help Net Security
雷峰网
雷峰网
S
SegmentFault 最新的问题
V
Visual Studio Blog
爱范儿
爱范儿

皓子的小站

网站字体应用之坑——font-family 篇 糟糕的 meta name="theme-color" How to Automatically Track Newly Supported ESLint Rules in Oxlint How to Gradually Migrate from ESLint to Oxlint (Without Breaking Everything) 静态资源预压缩:零运行时开销,极致节省带宽 CVE-2025-70886 Proof of Concept (PoC) | A Script to Crash Halo CMS Comment Backend 自定义网页鼠标指针——一段曲折的旅程 CVE-2025-70886 漏洞复现/PoC | 一个脚本让 Halo CMS 评论后台瘫痪 2025 年终总结 & 博客两周年 老用户专享!已有 Halo 专业版授权可免费升级商业版 自动追踪 Oxlint 对 ESLint 规则的新增支持 Halo 贡献者证书与实体周边盲盒开箱 博客评论系统指南 CDN 回源跟随配置导致登录异常问题排查 SCDN 免费赞助计划:助力高质量博客&博客圈 锐捷校园网:网络共享与带宽叠加方案(哈理工案例) ESLint 到 Oxlint 渐进式迁移快速上手指南 Fixing Vite Breaking Inline JS & CSS in Thymeleaf Templates 解决 Vite 破坏 Thymeleaf 模板内联 JS & CSS 的方法 我的博客,为什么是月更? 博客俱乐部一周年纪念品开箱 网站字体加载之坑——format 篇 经历 1000000000 次 DDoS 请求攻击后,我总结了三条经验 题解分享:[AtCoder Beginner Contest 414 E] Count A%B=C 题解分享:[蓝桥杯 2025 国 Python A] 杨辉三角 P12876 FiF口语训练破解刷分教程(适用于 Windows) 不要与蠢人辩论 小心网络地雷·续篇 当心网络组织“开往”·续篇 当心网络组织“开往”
快速部署教程 - &#3689...
HowieHz · 2025-01-21 · via 皓子的小站

前言

有许多服务(如 ddnsgo)仅支持 Webhook 通知,不支持设置邮箱(SMTP)服务进行通知。
本文介绍的这个可本地部署的服务就是用于将 Webhook 转换成邮箱通知。

本文重在教学如何快速部署,快速体验。

下面列出此项目相关的链接:

此项目特点

  • 接收 GET 和 POST 请求作为 Webhook 触发器
  • 允许发送纯文本或 HTML 格式的电子邮件
  • 配置灵活,支持多种 SMTP 服务器
  • 异步处理,提高性能和响应速度
  • 轻量,占用内存/存储低

Windows 环境下快速部署

先决条件

  • SMTP 服务器账号(如 Gmail, QQ 邮箱等)

部署测试流程

  1. 进入 Releases 页面,找到最新版本,从 Assets 栏下下载最新二进制文件。点我直接下载 webhook-email-sender.exe v1.0.0

  2. 将下载完毕的 webhook-email-sender.exe 放置到任意目录中,双击 webhook-email-sender.exe 会在运行目录下生成默认配置文件 config.json

  3. 修改 config.json 以正确配置

    • 配置文件说明
    {
      "SMTP_SERVER": "smtp.example.com",
      "SMTP_PORT": 587,
      "SMTP_TLS": false,
      "SMTP_USERNAME": "your_username",
      "SMTP_PASSWORD_ENV": "SMTP_PASSWORD",
      "SMTP_PASSWORD": "your_password",
      "SERVICE_HOST": "127.0.0.1",
      "SERVICE_PORT": 5000,
      "SERVICE_PATH": "/webhook",
      "SERVICE_TOKEN": ""
    }
    
    • SMTP_SERVER: SMTP 服务器地址
    • SMTP_PORT: SMTP 服务器端口
    • SMTP_TLS: 是否启用 TLS 加密
    • SMTP_USERNAME: SMTP 登录用户名
    • SMTP_PASSWORD_ENV: 存储 SMTP 密码的环境变量名称
    • SMTP_PASSWORD: SMTP 登录密码(如果未设置环境变量)
    • SERVICE_HOST: 服务监听的主机
    • SERVICE_PORT: 服务监听的端口
    • SERVICE_PATH: Webhook 路径
    • SERVICE_TOKEN: 用于身份验证的令牌,如果置空则为不启用

    解释:程序会先读取配置文件 SMTP_PASSWORD_ENV 项所指定的环境变量,如果指定的环境变量未设置,则会读取配置文件的 SMTP_PASSWORD 项作为密码。
    注意: 为了安全起见,不要将 config.json 传到公共代码仓库。
    提示:如果发送邮件失败,请尝试 SMTP_PORT 分别为 587465,对应 SMTP_TLS 分别为 falsetrue,的组合

  4. 运行 webhook-email-sender.exe

  5. 新开一个终端窗口输入 Invoke-WebRequest -Uri "http://localhost:5000/webhook?subject=测试邮件&to=recipient@example.com&body=这是测试邮件内容" -Method GET 测试是否部署成功(recipient@example.com 修改为你的实际接收邮箱)

  6. 快速部署流程已结束,完整文档请看:文档链接

Linux/Mac 环境下快速部署

先决条件

  • Python 3.8+
  • SMTP 服务器账号(如 Gmail, QQ 邮箱等)

部署测试流程

  1. 克隆仓库

    git clone https://github.com/HowieHz/webhook-email-sender.git
    cd webhook-email-sender
    
  2. 创建并激活虚拟环境

    python -m venv venv
    # Windows
    venv\Scripts\activate
    # macOS/Linux
    source venv/bin/activate
    
  3. 安装依赖

    pip install -r requirements.txt
    
  4. 初次启动服务,会在运行目录下生成:

    python main.py
    
  5. 修改生成的 config.json 以正确配置

    • 配置文件说明
    {
      "SMTP_SERVER": "smtp.example.com",
      "SMTP_PORT": 587,
      "SMTP_TLS": false,
      "SMTP_USERNAME": "your_username",
      "SMTP_PASSWORD_ENV": "SMTP_PASSWORD",
      "SMTP_PASSWORD": "your_password",
      "SERVICE_HOST": "127.0.0.1",
      "SERVICE_PORT": 5000,
      "SERVICE_PATH": "/webhook",
      "SERVICE_TOKEN": ""
    }
    
    • SMTP_SERVER: SMTP 服务器地址
    • SMTP_PORT: SMTP 服务器端口
    • SMTP_TLS: 是否启用 TLS 加密
    • SMTP_USERNAME: SMTP 登录用户名
    • SMTP_PASSWORD_ENV: 存储 SMTP 密码的环境变量名称
    • SMTP_PASSWORD: SMTP 登录密码(如果未设置环境变量)
    • SERVICE_HOST: 服务监听的主机
    • SERVICE_PORT: 服务监听的端口
    • SERVICE_PATH: Webhook 路径
    • SERVICE_TOKEN: 用于身份验证的令牌,如果置空则为不启用

    解释:程序会先读取配置文件 SMTP_PASSWORD_ENV 项所指定的环境变量,如果指定的环境变量未设置,则会读取配置文件的 SMTP_PASSWORD 项作为密码。
    注意: 为了安全起见,不要将 config.json 传到公共代码仓库。
    提示:如果发送邮件失败,请尝试 SMTP_PORT 分别为 587465,对应 SMTP_TLS 分别为 falsetrue,的组合

  6. 正式启动服务:

    python main.py
    
  7. 新开一个终端窗口输入以下指令测试是否部署成功 (recipient@example.com 修改为你的实际接收邮箱)

    curl "http://localhost:5000/webhook?subject=测试邮件&body=这是测试邮件内容&to=recipient@example.com"
    
  8. 快速部署流程已结束,完整文档请看:文档链接

结语

欢迎在评论区讨论,
评论区验证码为简单的 100 以内算术题。