Supercharged self saving texting

cat <<‘EOF’ > “$HOME/Desktop/imessage_blast.sh”
#!/bin/bash

csv=”$HOME/Desktop/contacts.csv”
logfile=”$HOME/Desktop/imessage_blast_log.txt”
default_message=”Hi, this is Ray! Just reaching out—feel free to reply here or text me back directly. Hope all is well.”

# Optional webhook for logging (leave blank to disable)
webhook_url=””

# CSV profile support (e.g., contacts_friends.csv)
[[ -n “$1” && “$1” != “–test” ]] && csv=”$HOME/Desktop/contacts_${1}.csv”

# Test mode
test_mode=false
[[ “$1” == “–test” || “$2” == “–test” ]] && test_mode=true

# Start log
echo “🔔 Message blast started at $(date)” > “$logfile”

if [ ! -f “$csv” ]; then
echo “❌ CSV file not found at $csv” | tee -a “$logfile”
osascript -e ‘display notification “contacts.csv not found” with title “iMessage Blast Error”‘ exit 1
fi

tail -n +2 “$csv” | while IFS=, read -r number name; do
[[ -z “$number” ]] && continue
number=$(echo “$number” | xargs)
name=$(echo “$name” | xargs)
personalized_msg=$(echo “$default_message” | sed “s/{name}/$name/g”)

echo “📤 Sending to $number ($name)” | tee -a “$logfile”

if [ “$test_mode” = true ]; then
echo “🧪 TEST MODE: Would send to $number: $personalized_msg” | tee -a “$logfile” else
osascript </dev/null fi

sleep 1
done

echo “✅ All messages processed at $(date)” | tee -a “$logfile”
osascript -e ‘display notification “All messages sent!” with title “iMessage Blast Complete”‘ EOF

chmod +x “$HOME/Desktop/imessage_blast.sh”
echo “📂 Script saved to Desktop as ‘imessage_blast.sh’. Ready to launch.” Sent from my iPhone

Leave a comment