#!/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 -e -b [-s ] [-f | -u ] [-a ]" 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