Files
lucidia-main/blackroad.io/setup-email-routing.sh
Alexa Amundson 855585cb0e sync: update from blackroad-operator 2026-03-14
Synced from BlackRoad-OS-Inc/blackroad-operator/orgs/personal/lucidia
BlackRoad OS — Pave Tomorrow.

RoadChain-SHA2048: fe729062952871e7
RoadChain-Identity: alexa@sovereign
RoadChain-Full: fe729062952871e77147cf6d938b799096e87d9024d7005a14c9e209e12e8ad0c825b624c7bc649fc7eeb4c284fdcab8231af77980065cc04d9f36fca479ffc2346ed3c1b73de6f240d8f9485f47c995ad5b81142f7179b84932c67914dff1c08db039349ba28fca36cb57688093bf0199268dd1c2f3448c9383000bc77cc9663066ff57b834370afc8838b18466ea9029908018b961555cccaabf2ce21649cf3cabc7f64bdcc4abdf2da259b210c342835a2cecf92bdd3b4e109b4d6e622f6934e13b2b123607bd61ce3d0f20454c9ab594f9284cffe18716619c52db57ce5f4ee2856cb96e1fa3748fe1fe65435bec297c5ab3ab58d570ec1064aea29931dd
2026-03-14 15:09:52 -05:00

79 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# setup-email-routing.sh — Configure Cloudflare Email Routing for agent addresses
# Usage: ./setup-email-routing.sh <cloudflare_zone_id> <destination_email>
# Requires: CLOUDFLARE_API_TOKEN env var
set -euo pipefail
GREEN='\033[0;32m'; CYAN='\033[0;36m'; RED='\033[0;31m'; DIM='\033[2m'; NC='\033[0m'
ZONE_ID="${1:-}"
DEST="${2:-alexa@blackroad.io}"
CF_TOKEN="${CLOUDFLARE_API_TOKEN:-}"
[[ -z "$ZONE_ID" ]] && echo -e "${RED}Usage: $0 <zone_id> [destination_email]${NC}" && exit 1
[[ -z "$CF_TOKEN" ]] && echo -e "${RED}Set CLOUDFLARE_API_TOKEN${NC}" && exit 1
CF_API="https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/email/routing/rules"
declare -a ADDRESSES=(
"lucidia@blackroad.io"
"alice@blackroad.io"
"octavia@blackroad.io"
"prism@blackroad.io"
"echo@blackroad.io"
"cipher@blackroad.io"
"aria@blackroad.io"
"shellfish@blackroad.io"
"cece@blackroad.io"
"agents@blackroad.io"
"security@blackroad.io"
"ops@blackroad.io"
"hello@blackroad.io"
"identity@blackroad.io"
"l@blackroad.io"
"dreamer@blackroad.io"
"vault@blackroad.io"
"pentest@blackroad.io"
"red@blackroad.io"
"data@blackroad.io"
"memory@blackroad.io"
"archive@blackroad.io"
"design@blackroad.io"
"ux@blackroad.io"
"compute@blackroad.io"
"arch@blackroad.io"
"analytics@blackroad.io"
)
echo -e "\n${CYAN}Setting up Cloudflare Email Routing → ${DEST}${NC}\n"
ok=0; fail=0
for addr in "${ADDRESSES[@]}"; do
payload=$(python3 -c "
import json,sys
addr,dest=sys.argv[1],sys.argv[2]
rule={
'actions':[{'type':'forward','value':[dest]}],
'enabled':True,
'matchers':[{'field':'to','type':'literal','value':addr}],
'name':f'Route {addr}'
}
print(json.dumps(rule))" "$addr" "$DEST")
resp=$(curl -s -o /dev/null -w "%{http_code}" -X POST "$CF_API" \
-H "Authorization: Bearer $CF_TOKEN" \
-H "Content-Type: application/json" \
-d "$payload")
if [[ "$resp" == "200" || "$resp" == "201" ]]; then
echo -e " ${GREEN}${NC} ${addr}${DEST}"
(( ok++ ))
else
echo -e " ${RED}${NC} ${addr} (HTTP ${resp})"
(( fail++ ))
fi
done
echo -e "\n${DIM}Done: ${ok} created, ${fail} failed${NC}"