aws-ses
AWS SES
Send email via AWS Simple Email Service.
Environment Variables
AWS_ACCESS_KEY_ID- AWS access keyAWS_SECRET_ACCESS_KEY- AWS secret keyAWS_DEFAULT_REGION- SES region (e.g.us-east-1)SES_FROM_EMAIL- Verified sender email
Setup
pip3 install boto3 2>/dev/null
Send plain text email
python3 -c "
import boto3, os, sys
ses = boto3.client('ses', region_name=os.environ.get('AWS_DEFAULT_REGION', 'us-east-1'))
resp = ses.send_email(
Source=os.environ['SES_FROM_EMAIL'],
Destination={'ToAddresses': [sys.argv[1]]},
Message={
'Subject': {'Data': sys.argv[2]},
'Body': {'Text': {'Data': sys.argv[3]}}
}
)
print(f\"Sent: {resp['MessageId']}\")
" "recipient@example.com" "Subject line" "Body text"
Send HTML email
python3 -c "
import boto3, os
ses = boto3.client('ses')
ses.send_email(
Source=os.environ['SES_FROM_EMAIL'],
Destination={'ToAddresses': ['recipient@example.com']},
Message={
'Subject': {'Data': 'HTML Email'},
'Body': {'Html': {'Data': '<h1>Hello</h1><p>From ThinkFleetBot</p>'}}
}
)
print('Sent')
"
Check sending quota
python3 -c "
import boto3
ses = boto3.client('ses')
q = ses.get_send_quota()
print(f\"24h max: {q['Max24HourSend']}, sent: {q['SentLast24Hours']}, rate: {q['MaxSendRate']}/s\")
"
Notes
- Sender email must be verified in SES (or domain-verified).
- In sandbox mode, recipient emails must also be verified.
- Always confirm recipient and content with the user before sending.
More from thinkfleetai/thinkfleet-engine
local-whisper
Local speech-to-text using OpenAI Whisper. Runs fully offline after model download. High quality transcription with multiple model sizes.
148flyio-cli-public
Use the Fly.io flyctl CLI for deploying and operating apps on Fly.io: deploys (local or remote builder), viewing status/logs, SSH/console, secrets/config, scaling, machines, volumes, and Fly Postgres (create/attach/manage databases). Use when asked to deploy to Fly.io, debug fly deploy/build/runtime failures, set up GitHub Actions deploys/previews, or safely manage Fly apps and Postgres.
24kagi-search
Web search using Kagi Search API. Use when you need to search the web for current information, facts, or references. Requires KAGI_API_KEY in the environment.
22feishu-bridge
Connect a Feishu (Lark) bot to ThinkFleet via WebSocket long-connection. No public server, domain, or ngrok required. Use when setting up Feishu/Lark as a messaging channel, troubleshooting the Feishu bridge, or managing the bridge service (start/stop/logs). Covers bot creation on Feishu Open Platform, credential setup, bridge startup, macOS launchd auto-restart, and group chat behavior tuning.
13bambu-local
Control Bambu Lab 3D printers locally via MQTT (no cloud). Supports A1, A1 Mini, P1P, P1S, X1C.
10voice-transcribe
Transcribe audio files using OpenAI's gpt-4o-mini-transcribe model with vocabulary hints and text replacements. Requires uv (https://docs.astral.sh/uv/).
10