当前位置: 首页 > news >正文

借助Github Action实现通过 HTTP 请求触发邮件通知

Github仓库:Send Mail

Send Mail

通过 HTTP 请求触发 Github Actions 自动发送邮件的 workflow。可用于各种通知场景,如 IP 变更通知、任务完成提醒等。只要可以发起 HTTP 请求的地方,都可以使用此功能发送邮件通知。

如何使用

  • fork 本仓库到你的 Github 账号下。

  • 在你的仓库中,进入 Settings -> Secrets and variables -> Actions,添加以下 Secrets:

    • MAIL_USERNAME:SMTP 服务器用户名(通常是你的邮箱地址)

    • MAIL_PASSWORD:SMTP 服务器密码(通常是授权码)

      名称必填
      MAIL_USERNAMESMTP 服务器用户名(通常是你的邮箱地址)
      MAIL_PASSWORDSMTP 服务器密码(通常是授权码)
  • 发送http请求触发邮件发送

    • 请求格式如下:

      curl --request POST \--url https://api.github.com/repos/<owner>/<repo>/dispatches \--header 'Accept: application/vnd.github+json' \--header 'Authorization: <YOUR_GITHUB_TOKEN>' \--header 'Content-Type: application/json' \--data '{"event_type": "send_mail","client_payload": {"to": "example@163.com","subject": "📧 外部触发邮件通知","template": "ip_update_template.html","variables": {"xx": "xx","ipv4Result": "成功","ipv4Domains": "example.com,api.example.com","ipv6Addr": "fe80::abcd","ipv6Result": "未改变","ipv6Domains": "v6.example.com","message": "来自Webhook的提醒111"}}}'
      

      其中:

      • <owner>:你的 Github 用户名或组织名

      • <repo>:你的仓库名

      • <YOUR_GITHUB_TOKEN>:你的 Github 个人访问令牌(需要有 repo 权限)

        变量名说明
        <owner>你的 Github 用户名或组织名
        <repo>你的仓库名
        <YOUR_GITHUB_TOKEN>你的 Github 个人访问令牌(需要有 repo 权限)
    • 示例请求:

      curl --request POST \
      --url https://api.github.com/repos/vains-Sofia/send-mail/dispatches \
      --header 'Accept: application/vnd.github+json' \
      --header 'Authorization: <YOUR_GITHUB_TOKEN>' \
      --header 'Content-Type: application/json' \
      --data '{"event_type": "send_mail","client_payload": {"to": "example@163.com","subject": "📧 外部触发邮件通知","template": "ip_update_template.html","variables": {"ipv4Addr": "192.168.0.2","ipv4Result": "成功","ipv4Domains": "example.com,api.example.com","ipv6Addr": "fe80::abcd","ipv6Result": "未改变","ipv6Domains": "v6.example.com","message": "来自Webhook的提醒111"}}}'
      
    • 入参说明:

      • event_type:固定值,必须为 send_mail
      • client_payload:包含邮件相关信息的对象,包含以下字段:
        • to:收件人邮箱地址

        • subject:邮件主题

        • template:邮件模板文件名(需预先在仓库中准备好对应的 HTML 模板文件,位于 mail-templates/ 目录下)

        • variables:模板变量的键值对,根据模板中的占位符进行替换

          变量名说明
          event_type固定值,必须为 send_mail
          client_payload包含邮件相关信息的对象
          to收件人邮箱地址
          subject邮件主题
          template邮件模板文件名(位于 mail-templates/ 目录下)
          variables模板变量的键值对,根据模板中的占位符进行替

邮件模板示例

  • 仓库中的 mail-templates/ip_update_template.html,点击查看模板内容

模板示例效果

在这里插入图片描述

注意事项

  • 确保用户名和密码(授权码)有效。
  • 确保你的 Github 个人访问令牌具有足够的权限来触发仓库的 repository_dispatch 事件。
  • 邮件模板文件需预先在仓库中准备好,位于 mail-templates/ 目录下。

参考资料

  • Github Actions 文档
  • dawidd6/action-send-mail
  • create-a-repository-dispatch-event

欢迎大家提供反馈和建议!

http://www.dtcms.com/a/564602.html

相关文章:

  • C语言实现策略模式
  • 微美全息(NASDAQ:WIMI)容错量子计算赋能,大规模机器学习模型高效量子算法获突破
  • 怎么通过贷款网站找做贷款客户wordpress主题支持分页
  • Linux网络编程核心实践:TCP/UDP socket与epoll高并发服务器构建
  • Kafka:专注高吞吐与实时流处理的分布式消息队列
  • 【基于one-loop-per-thread的高并发服务器】--- 项目介绍模块划分
  • 玩转Rust高级应用 如何于 `match` 分支模式之后的额外 `if` 条件,指定匹配守卫提供的额外条件
  • 太原理工大学头歌作业--2025数据结构实验一:顺序表
  • GNSS 高精度定位一体机的测试
  • Rust编程学习 - 如何学习有关函数和闭包的高级特性,这包括函数指针以及返回闭包
  • 学校建设网站前的市场分析网站可以不进行icp备案吗
  • MATLAB电力系统等值电路建模工具
  • C语言内功强化之函数
  • GAOXian_CAD_KURUICHENG
  • 【MRTK3踩坑记录】Unity 2022 中 MRTK3 Input Simulator 无法使用 WASD 控制相机的完整排查记录
  • 高校网站建设的意义流量网站建设教程
  • 布局具身智能赛道,深圳作为科技完成近亿元融资
  • 无zookeeper Kafka 4.1.0 Raft 集群搭建
  • 十五五规划产业布局正式落地,美尔斯通加速深耕量子科技
  • 解决glibc版本低VSCode无法远程问题
  • 线上编程哪家比较好阳西网站seo
  • 数据分析-数据沙箱
  • 【JUnit实战3_26】第十五章:表现层测试(下)—— Selenium 在网页测试中的用法
  • 浏览器——CSDN网站的页面就是打不开,显示无法访问的解决办法
  • 110、23种设计模式之状态模式(19/23)
  • 做一手楼盘的网站嵌入式工程师能干多久
  • Spring Boot 应用 Docker 监控:Prometheus + Grafana 全方位监控
  • git clone失败
  • Linux 命令与运维终极手册(2025 完整版)
  • 05-异常处理-导读