guzhi/scripts/send_email_test.sh
邹方成 f536178428 feat: 新增交易记录管理功能与统一上传接口
feat(交易记录): 新增交易记录管理页面与API接口
feat(上传): 添加统一上传接口支持自动识别文件类型
feat(用户管理): 为用户模型添加备注字段并更新相关接口
feat(邮件): 实现SMTP邮件发送功能并添加测试脚本
feat(短信): 增强短信服务配置灵活性与日志记录

fix(发票): 修复发票列表时间筛选功能
fix(nginx): 调整上传大小限制与超时配置

docs: 添加多个功能模块的说明文档
docs(估值): 补充估值计算流程与API提交数据说明

chore: 更新依赖与Docker镜像版本
2025-11-20 20:53:09 +08:00

54 lines
1.4 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
TOKEN=""
EMAIL=""
SUBJECT=""
BODY=""
FILE_PATH=""
FILE_URL=""
BASE_API="http://127.0.0.1:9999/api/v1"
while getopts ":t:e:s:b:f:u:a:" opt; do
case "$opt" in
t) TOKEN="$OPTARG" ;;
e) EMAIL="$OPTARG" ;;
s) SUBJECT="$OPTARG" ;;
b) BODY="$OPTARG" ;;
f) FILE_PATH="$OPTARG" ;;
u) FILE_URL="$OPTARG" ;;
a) BASE_API="$OPTARG" ;;
*) echo "Invalid option: -$OPTARG"; exit 1 ;;
esac
done
if [[ -z "$TOKEN" || -z "$EMAIL" || -z "$BODY" ]]; then
echo "Usage: $0 -t <token> -e <email> -b <body> [-s <subject>] [-f <file_path> | -u <file_url>] [-a <base_api>]"
exit 1
fi
URL="$BASE_API/transactions/send-email"
if [[ -n "$FILE_PATH" ]]; then
if [[ ! -f "$FILE_PATH" ]]; then
echo "File not found: $FILE_PATH"
exit 1
fi
curl -s -X POST "$URL" \
-H "accept: application/json" \
-H "token: $TOKEN" \
-F "email=$EMAIL" \
-F "subject=$SUBJECT" \
-F "body=$BODY" \
-F "file=@$FILE_PATH" | jq -r '.' 2>/dev/null || true
else
PAYLOAD="{\"email\":\"$EMAIL\",\"subject\":\"$SUBJECT\",\"body\":\"$BODY\"}"
if [[ -n "$FILE_URL" ]]; then
PAYLOAD="{\"email\":\"$EMAIL\",\"subject\":\"$SUBJECT\",\"body\":\"$BODY\",\"file_url\":\"$FILE_URL\"}"
fi
curl -s -X POST "$URL" \
-H "accept: application/json" \
-H "token: $TOKEN" \
-H "Content-Type: application/json" \
-d "$PAYLOAD" | jq -r '.' 2>/dev/null || true
fi