2026/1/21 18:04:42
网站建设
项目流程
网站开发及app开发报价单,网站建设实践,wordpress 阅读小说,邯郸做wap网站价格1、 这是一个基于 Gin 框架的邮件发送服务#xff0c;对外提供API#xff0c;实质是通过第三方SMTP发送邮件• 提供一个简易的Web UI#xff0c;可在线查看发送记录
• 支持Docker快速部署#xff0c;非常轻量
• 通过一个GET请求就能发送邮件#xff0c;适合快速接入终端…1、 这是一个基于 Gin 框架的邮件发送服务对外提供API实质是通过第三方SMTP发送邮件• 提供一个简易的Web UI可在线查看发送记录• 支持Docker快速部署非常轻量• 通过一个GET请求就能发送邮件适合快速接入终端命令行、shell脚本、各种代码请求等• 该工具的开源地址https://github.com/luler/hello_email_tool2. go环境中可以直接源码运行gitclone https://github.com/luler/hello_email_toolcdhello_email_tool go mod tidycp.env.example .env#编辑SMTP 邮件配置、邮件接口授权码go run main.go serve3、过Docker快速部署建议vi 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_emailexample.com}-SMTP_PASSWORD${SMTP_PASSWORD:-your_password}-SMTP_FROM${SMTP_FROM:-your_emailexample.com}-SMTP_FROM_NAME${SMTP_FROM_NAME:-EmailTool}# 邮件接口授权码必须修改为复杂的-EMAIL_AUTH_CODE${EMAIL_AUTH_CODE:-your_auth_code}docker run 命令dockerrun -d\--name hello_email_tool\--restart always\-p7878:3000\-v /data/runtime:/app/runtime\-eTZ${TZ:-Asia/Shanghai}\-ePORT${PORT:-3000}\-eDATABASE_DEFAULT_DRIVER${DATABASE_DEFAULT_DRIVER:-sqlite}\-eDATABASE_DEFAULT_NAME${DATABASE_DEFAULT_NAME:-runtime/hello_email_tool.sqlite}\-eSMTP_HOST${SMTP_HOST:-smtp.example.com}\-eSMTP_PORT${SMTP_PORT:-587}\-eSMTP_USERNAME${SMTP_USERNAME:-your_emailexample.com}\-eSMTP_PASSWORD${SMTP_PASSWORD:-your_password}\-eSMTP_FROM${SMTP_FROM:-your_emailexample.com}\-eSMTP_FROM_NAME${SMTP_FROM_NAME:-EmailTool}\-eEMAIL_AUTH_CODE${EMAIL_AUTH_CODE:-your_auth_code}\ghcr.io/luler/hello_email_tool:latest创建启动脚本推荐创建 run-email-tool.sh 文件#!/bin/bash# 设置实际的环境变量值请根据您的实际情况修改exportTZAsia/ShanghaiexportPORT3000exportDATABASE_DEFAULT_DRIVERsqliteexportDATABASE_DEFAULT_NAMEruntime/hello_email_tool.sqliteexportSMTP_HOSTsmtp.qq.comexportSMTP_PORT587exportSMTP_USERNAMEyour_emailqq.comexportSMTP_PASSWORDyour_smtp_passwordexportSMTP_FROMyour_emailqq.comexportSMTP_FROM_NAMEEmailToolexportEMAIL_AUTH_CODEyour_complex_auth_code_here运行容器dockerrun -d\--name hello_email_tool\--restart always\-p7878:3000\-v /data/runtime:/app/runtime\-e TZ\-e PORT\-e DATABASE_DEFAULT_DRIVER\-e DATABASE_DEFAULT_NAME\-e SMTP_HOST\-e SMTP_PORT\-e SMTP_USERNAME\-e SMTP_PASSWORD\-e SMTP_FROM\-e SMTP_FROM_NAME\-e EMAIL_AUTH_CODE\ghcr.io/luler/hello_email_tool:latestecho “容器已启动访问地址: http://localhost:7878”2. 直接使用 .env 文件创建 .env 文件envTZAsia/ShanghaiPORT3000DATABASE_DEFAULT_DRIVERsqliteDATABASE_DEFAULT_NAMEruntime/hello_email_tool.sqliteSMTP_HOSTsmtp.qq.comSMTP_PORT587SMTP_USERNAMEyour_emailqq.comSMTP_PASSWORDyour_smtp_passwordSMTP_FROMyour_emailqq.comSMTP_FROM_NAMEEmailToolEMAIL_AUTH_CODEyour_complex_auth_code_here然后运行加载 .env 文件并运行dockerrun -d\--name hello_email_tool\--restart always\--env-file .env\-p7878:3000\-v$(pwd)/runtime:/app/runtime\ghcr.io/luler/hello_email_tool:latest常用管理命令# 查看容器日志dockerlogs hello_email_tool# 查看实时日志dockerlogs -f hello_email_tool# 停止容器dockerstop hello_email_tool# 启动容器dockerstart hello_email_tool# 重启容器dockerrestart hello_email_tool# 删除容器dockerrm-f hello_email_tool# 进入容器dockerexec-it hello_email_toolsh重要提醒请务必将所有 example.com 和占位符替换为您的实际配置EMAIL_AUTH_CODE 应该设置为一个复杂的随机字符串用于API认证确保 runtime 目录存在并具有正确的权限邮件发送 API 接口文档 接口信息 接口地址: /api/email 请求方式: GET / POST Content-Type: application/x-www-form-urlencoded 或 application/json 请求参数 参数名 类型 必填 说明 auth_code string 是 授权码需与环境变量 EMAIL_AUTH_CODE 一致 to string 是 收件人邮箱地址多个用逗号分隔 cc string 否 抄送人邮箱地址多个用逗号分隔 subject string 是 邮件主题 body string 是 邮件正文内容 is_html bool/string 否 是否为 HTML 格式邮件支持1、true、yes from_name string 否 发件人名称默认使用环境变量 SMTP_FROM_NAME Postman 测试示例GET 请求示例GET http://localhost:7878/api/email?auth_codeyour_auth_codetorecipientexample.comsubject测试邮件body这是一封测试邮件is_htmlfalsePOST 请求示例 (x-www-form-urlencoded)POST http://localhost:7878/api/email Content-Type: application/x-www-form-urlencodedauth_codeyour_auth_codetouser1example.com,user2example.comcccc1example.com,cc2example.comsubject测试邮件主题bodyh1HTML邮件内容/h1p这是一封HTML格式的测试邮件/pis_htmltruefrom_name我的邮件工具POST 请求示例 (JSON)POST http://localhost:7878/api/email Content-Type: application/json{auth_code:your_auth_code,to:recipientexample.com,cc:cc1example.com,cc2example.com,subject:测试邮件主题,body:这是一封纯文本测试邮件,is_html:false,from_name:系统通知}成功响应json{code:200,message:邮件发送成功,data:{messageId:20231231000000.123456example.com,accepted:[recipientexample.com],rejected:[]}}错误响应示例授权码错误json{code:401,message:授权码错误}2. 参数缺失 json{code:400,message:参数错误: to 为必填参数}3. SMTP 配置错误 json{code:500,message:邮件发送失败: SMTP连接失败}使用 cURL 测试# GET 请求curlhttp://localhost:7878/api/email?auth_codeYOUR_CODEtotestexample.comsubject测试body内容# POST 请求 (form-data)curl-X POST http://localhost:7878/api/email\-dauth_codeYOUR_CODE\-dtotestexample.com\-dsubject测试邮件\-dbody邮件正文内容\-dis_htmlfalse# POST 请求 (JSON)curl-X POST http://localhost:7878/api/email\-HContent-Type: application/json\-d{ auth_code: YOUR_CODE, to: testexample.com, subject: 测试, body: 内容, is_html: false }批量发送示例# 发送给多个收件人curl-X POST http://localhost:7878/api/email\-dauth_codeYOUR_CODE\-dtouser1company.com,user2company.com,user3company.com\-dccmanagercompany.com\-dsubject月度报告通知\-dbody请查收本月的月度工作报告。\-dis_htmlfalse注意事项安全性: 授权码 auth_code 应保持机密不要在前端代码中硬编码批量发送: 多个收件人用逗号分隔注意不要有空格HTML 邮件: 使用 HTML 格式时确保内容是有效的 HTML频率限制: 注意避免频繁调用以免被 SMTP 服务商限制SMTP 配置: 确保 Docker 容器的 SMTP 环境变量配置正确服务启动后容器启动后可以通过以下地址访问API 接口: http://localhost:7878/api/email健康检查: http://localhost:7878/health (如果有提供)文档页面: http://localhost:7878/docs (如果有提供)2. 通过Web UI查看邮件发送记录• 直接访问地址http://server_ip:7878/进入邮件发送列表页面 需要授权码输入启动时设置EMAIL_AUTH_CODE变量的值