feat(交易记录): 新增交易记录管理页面与API接口 feat(上传): 添加统一上传接口支持自动识别文件类型 feat(用户管理): 为用户模型添加备注字段并更新相关接口 feat(邮件): 实现SMTP邮件发送功能并添加测试脚本 feat(短信): 增强短信服务配置灵活性与日志记录 fix(发票): 修复发票列表时间筛选功能 fix(nginx): 调整上传大小限制与超时配置 docs: 添加多个功能模块的说明文档 docs(估值): 补充估值计算流程与API提交数据说明 chore: 更新依赖与Docker镜像版本
54 lines
1.4 KiB
Bash
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 |