jurix-api / scripts /verifier_brevo.sh
rahim237cm's picture
Claude Opus 5
chore(scripts): verifier la configuration Brevo sans jamais afficher la cle
240a5f5
Raw History Blame Contribute Delete
3.13 kB
#!/usr/bin/env bash
# Verifie que la configuration Brevo fonctionne, SANS jamais afficher la cle.
#
# Lit .env (chmod 600, ignore par git). N'ecrit rien, n'envoie aucun message :
# il interroge le compte et la liste des expediteurs, et dit ce qui manque.
#
# Usage : bash scripts/verifier_brevo.sh
set -uo pipefail
cd "$(dirname "$0")/.." || exit 1
[ -f .env ] || { echo "✗ Aucun fichier .env ici."; exit 1; }
# shellcheck disable=SC1091
set -a; . ./.env; set +a
if [ -z "${BREVO_API_KEY:-}" ]; then
echo "✗ BREVO_API_KEY est vide dans .env."
echo " Tableau de bord Brevo : Settings > SMTP & API > API Keys > Generate a new API key"
exit 1
fi
echo "✓ BREVO_API_KEY presente (${#BREVO_API_KEY} caracteres, non affichee)"
# ---- 1. La cle est-elle acceptee ? ----
compte=$(curl -s -w '\n%{http_code}' https://api.brevo.com/v3/account \
-H "api-key: ${BREVO_API_KEY}" -H 'accept: application/json')
code=$(printf '%s' "$compte" | tail -1)
corps=$(printf '%s' "$compte" | sed '$d')
case "$code" in
200) echo "✓ Cle acceptee par Brevo" ;;
401) echo "✗ Cle refusee (401). Elle n'est visible qu'a la creation : si elle a ete perdue, il faut en generer une autre."; exit 1 ;;
*) echo "✗ Reponse inattendue ($code) : $(printf '%s' "$corps" | head -c 200)"; exit 1 ;;
esac
# Credits restants du jour, s'ils sont exposes.
restants=$(printf '%s' "$corps" | grep -o '"credits":[0-9]*' | head -1 | cut -d: -f2)
[ -n "$restants" ] && echo " credits annonces : $restants"
# ---- 2. L'expediteur est-il VERIFIE ? ----
# C'est le point qui bloque le plus souvent : la cle est bonne, mais l'envoi
# echoue parce que l'adresse d'expedition n'a jamais ete validee par son lien.
if [ -z "${BREVO_SENDER_EMAIL:-}" ]; then
echo "✗ BREVO_SENDER_EMAIL est vide. Sans expediteur, rien ne peut partir."
exit 1
fi
expediteurs=$(curl -s https://api.brevo.com/v3/senders \
-H "api-key: ${BREVO_API_KEY}" -H 'accept: application/json')
if printf '%s' "$expediteurs" | grep -qiF "\"${BREVO_SENDER_EMAIL}\""; then
echo "✓ Expediteur ${BREVO_SENDER_EMAIL} declare dans Brevo"
# `active: true` signifie que le lien de validation a bien ete clique.
if printf '%s' "$expediteurs" | tr '}' '\n' | grep -iF "${BREVO_SENDER_EMAIL}" | grep -q '"active":true'; then
echo "✓ Expediteur VERIFIE — l'envoi est possible"
else
echo "✗ Expediteur declare mais NON verifie."
echo " Brevo a envoye un lien de validation a ${BREVO_SENDER_EMAIL} : il faut cliquer dessus."
fi
else
echo "✗ ${BREVO_SENDER_EMAIL} n'est pas dans la liste des expediteurs."
echo " Brevo : Senders, Domains & Dedicated IPs > Senders > Add a sender"
printf ' Adresses declarees : %s\n' "$(printf '%s' "$expediteurs" | grep -o '"email":"[^"]*"' | cut -d'"' -f4 | paste -sd', ')"
fi
# ---- 3. Le lien des courriels pointe-t-il quelque part ? ----
if [ -z "${FRONTEND_BASE_URL:-}" ]; then
echo "✗ FRONTEND_BASE_URL est vide : aucun message porteur d'un lien ne partira."
echo " C'est voulu — mieux vaut ne rien envoyer qu'expedier un lien mort."
else
echo "✓ FRONTEND_BASE_URL = ${FRONTEND_BASE_URL}"
fi