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

Linux服务器调用API发送通知邮件的实现方案

今天需要在Centos7.9服务器上做一个脚本,实现使用bash文件通过定时执行的方式发送邮件,研究了一下发现可以使用邮件API的方式进行发送,下面是我实现的方案:

准备工作:

需要一台linux服务器。

需要服务器已安装 curl。

需要注册了AokSend账号,并绑定域名制作发信邮箱(获取API_key)和邮件模板(获取邮件模板ID)。

第一步准备Linux服务器并安装curl指令

比如我用的是Linux的centos7.9。然后安装curl指令

yum install curl -y  # CentOS

检查curl是否安装成功

curl --version

如果 curl 已安装,该命令会输出 curl 的版本信息,包括版本号、支持的协议等。如果未安装,会提示命令未找到。

比如我的服务器返回:

[root@host ~]# curl --version
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.90 zlib/1.2.7 libidn/1.28 libssh2/1.8.0
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp 
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets

第二步配置AokSend邮件api

注册AokSend账号之后,绑定自己的域名,然后按要求制作域名解析,并回来验证域名解析是否生效。生效之后制作一下发信邮箱,邮箱后面是可以获取到API_key。然后制作一下邮件模板,模板通过审核之后才能看到邮件模板ID。比如我的模板是:

这一步主要是获取API_key和邮件模板ID。有了这两个才能放到下面的sh文件里面实现发送邮件。

注意:AokSend是付费产品,差不多15块钱一万封邮件,价格很便宜,适合日常使用。

第三步新建sh文件并写入代码

在root目录新建 send.sh 文件,并写入下面的代码:

# 调用 AokSend API 发送邮件通知
# 邮件标题和内容变量 {{tongzhi}} 替换为实际通知信息
NOTIFICATION="这是通知邮件信息,请检查服务器状态!"

# API 请求参数
API_URL="https://www.aoksend.com/index/api/send_email"
API_KEY="50ad6789【写入自己的API_Key】51221e177c"
TEMPLATE_ID="E_10【写入自己的邮件模板ID】2057"
TO_EMAIL="me【写入自己希望收到邮件的邮箱】u@163.com"

# 使用 curl 发送请求
curl -X POST "$API_URL" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "app_key=$API_KEY" \
-d "to=$TO_EMAIL" \
-d "template_id=$TEMPLATE_ID" \
-d 'data={"tongzhi":"'"$NOTIFICATION"'"}'

第四步设置触发条件

比如我可以设置服务器重启的时候触发一次邮件发送,发送内容给我提示服务器自动重启了。或者设置触发条件为端口服务器停止了,可以发邮件提示我重启服务器的指定端口的服务。也可以简单的设置为每天凌晨2点的定时任务,发一封邮件通知自己服务器正常运行。也可以设置某个定时任务操作完成之后执行一次发邮件,提示自己某操作已定时自动执行成功。

相关文章:

  • win10安装gitbash工具
  • WAF防护规则配置技巧与企业级安全实践指南
  • ICMP 协议深度解析
  • Java 大视界 -- 基于 Java 的大数据隐私保护在金融客户信息管理中的实践与挑战(178)
  • 深入理解重排(Reflow)与重绘(Repaint),写出高性能 CSS 动画
  • MyBatis的缓存、逆向工程、使用PageHelper、使用PageHelper
  • 用VAE作为标题显示标题过短,所以标题变成了这样
  • 6135. 奶牛体检-枚举
  • JavaScript学习24-防抖
  • scala-集合2
  • maskgct 的升级版Metis,支持情感控制、语速调节和音色转换、扩展性进一步增强
  • UniApp Vue 3 中的网络请求封装及用法
  • 在 Java 中调用 ChatGPT API 并实现流式接收(Server-Sent Events, SSE)
  • Github上一些使用技巧(缩写、Issue的Highlight)自用
  • 数学知识——分解质因数
  • 蓝桥杯嵌入式16届 —— 按键模块
  • 数据库管理-第311期 不同数据库的存算分离有何不同(20250407)
  • 【Android Sdk】uiautomatorviewer.bats闪退问题如何解决?
  • C++标准库 —— round 函数用法详解
  • 【DeepSeek原理学习2】MLA 多头隐变量注意力
  • 移动端开发流程/优化推广关键词
  • 网站后台更新了文章为何看不见/网站免费软件
  • 国外代码开源网站/seo报告
  • 广东网站建设系统/seo优化技巧
  • 免费b2b网站大全平台/怎么创建自己的网址
  • 最受欢迎的网站开发语言市场有率/北京seo运营推广