luler 一、简介 这是一个基于 Gin 框架的邮件发送服务,对外提供API,实质是通过第三方SMTP发送邮件 提供一个简易的Web UI,可在线查看发送记录 支持Docker快速部署,非常轻量 通过一个GET请求就能发送邮件,适合快速接入终端命令行、shell脚本、各种代码请求等 该工具的开源地址:https://github.com/luler/hello_email_tool 该工具的主要功能与逻辑参考下图: 二、安装 1. go环境中,可以直接源码运行 git clone https://github.com/luler/hello_email_tool cd hello_email_tool go mod tidy cp .env.example .env #编辑SMTP 邮件配置、邮件接口授权码 go run main.go serve 2. 通过Docker快速部署(建议) 新建docker-compose.yml,配置如下 services: hello_email_tool: image: ghcr.io/luler/hello_email_tool:latest restart: always ports: - 7878:3000 volumes: - ./runtime:/app/runtime #这里会保存sqlite数据库 environment: - TZ=${TZ:-Asia/Shanghai} #时区 - PORT=${PORT:-3000} #服务端口 #数据库配置 - DATABASE_DEFAULT_DRIVER=${DATABASE_DEFAULT_DRIVER:-sqlite} - DATABASE_DEFAULT_NAME=${DATABASE_DEFAULT_NAME:-runtime/hello_email_tool.sqlite} #SMTP邮件配置,如下必须设置正确配置,如企业邮箱、QQ邮箱账号的SMTP配置 - SMTP_HOST=${SMTP_HOST:-smtp.example.com} - SMTP_PORT=${SMTP_PORT:-587} - SMTP_USERNAME=${SMTP_USERNAME:-your_email@example.com} - SMTP_PASSWORD=${SMTP_PASSWORD:-your_password} - SMTP_FROM=${SMTP_FROM:-your_email@example.com} - SMTP_FROM_NAME=${SMTP_FROM_NAME:-EmailTool} # 邮件接口授权码,必须修改为复杂的 - EMAIL_AUTH_CODE=${EMAIL_AUTH_CODE:-your_auth_code} 配置完成,直接执行如下1命令启动服务 docker-compose up -d 三、使用 1. 通过API发送邮件 邮件发送接口 请求地址: /api/email 请求方式: GET / POST 请求参数: 参数类型必填说明 auth_codestring是授权码,需与环境变量 EMAIL_AUTH_CODE 一致 tostring是收件人,多个用逗号分隔 ccstring否抄送人,多个用逗号分隔 subjectstring是邮件主题 bodystring是邮件正文 is_htmlbool否是否为 HTML 格式,支持 1/true from_namestring否发件人名称,默认使用环境变量 SMTP_FROM_NAME POSTMAN 请求示例: 2. 通过Web UI查看邮件发送记录 直接访问地址:http://server_ip:7878/,进入邮件发送列表页面 需要授权码,输入启动时设置EMAIL_AUTH_CODE变量的值 成功授权登录进入,看查看管理邮件发送日志 查看记录详情 四、总结 这是一个极简的邮件发送服务,优点就是可以把SMTP发送转成API接口发送,兼容不支持SMTP的客户端 提供简单的邮件记录与统计功能,可以知道发送了什么邮件、发了多少邮件、发送成功与失败 支持Docker一键部署,轻量内存占用低,低配置,易于集成 适合作为一个开发测试协助工具,发送一些告警信息等