diff --git a/infra/postfix/pw-listmonk-rampcap.sh b/infra/postfix/pw-listmonk-rampcap.sh index 8d08a8e..f0dd821 100755 --- a/infra/postfix/pw-listmonk-rampcap.sh +++ b/infra/postfix/pw-listmonk-rampcap.sh @@ -27,13 +27,17 @@ START=$(cat "$STATE"); NOW=$(date +%s); DAYS=$(( (NOW - START) / 86400 )) if [ "$DAYS" -le 1 ]; then RATE=50 elif [ "$DAYS" -le 3 ]; then RATE=150 elif [ "$DAYS" -le 6 ]; then RATE=250 -# Recovery: Gmail began spam-blocking the warming IPs at 400/h on day 9 -# (2026-06-13) -- too aggressive, and the trucking pool lacks per-MX throttling -# so Google-Workspace-hosted business domains concentrated. Hold at 200/h (~2k/day) -# until reputation recovers and per-MX throttling is added to the trucking pool, -# then step back up slowly. -elif [ "$DAYS" -le 20 ]; then RATE=200 -else RATE=300; fi +# Recovery -> step back up (2026-06-22): the day-9 Gmail block (400/h, 2026-06-13) +# happened because cold sends concentrated on Google-Workspace business domains +# with no per-MX throttle. All three causes are now fixed: (1) per-MX throttling +# shipped to the trucking pool, (2) Google is EXCLUDED entirely +# (MAIN_EXCLUDE_OPERATORS=google) while its reputation recovers, (3) the OpenDKIM +# signing bug is fixed so mail is no longer junked unsigned. With Google out of +# the mix, 400/h (~4k/day) is within the envelope these IPs cleanly sustained at +# 68-76% delivery with zero blocks. Hold 400/h while we drain the post-DKIM +# re-send backlog, then 500/h hard ceiling. +elif [ "$DAYS" -le 20 ]; then RATE=400 +else RATE=500; fi cd "$COMPOSE_DIR" psql() { PGPASSWORD=$PGPASSWORD docker compose exec -T -e PGPASSWORD=$PGPASSWORD api-postgres \