Compare commits
3 Commits
Author | SHA1 | Date |
---|---|---|
gael | 1f5bae0647 | 1 year ago |
gael | 7ee84192ae | 1 year ago |
gael | a4f926b8b1 | 1 year ago |
8 changed files with 93605 additions and 0 deletions
File diff suppressed because it is too large
@ -0,0 +1,32 @@ |
|||
#/bin/bash |
|||
|
|||
# GME |
|||
# Ici on défini une liste de tests à effectuer sur les mails reçus (et donc dépollués !). |
|||
# Touts les mails sont concatennés avant vérification (egrep) des regexp donc on veillera, |
|||
# donc nommer différement les pièces sur les mails de tests si on a besoin de retrouver quel est le mail qui plante |
|||
|
|||
# pour chaque test |
|||
TESTS_DESCRIPTION=(); # Une description pour l'affichage du résultat |
|||
TESTS_REGEXP=(); # Quoi qu'on doit trouver ? |
|||
TESTS_MATCHING_LINES=(); # Combien d'occurences de ça dans l'ensemble des messages ? |
|||
|
|||
|
|||
TESTS_DESCRIPTION+=("Le nombre de mails correctement dépollués"); |
|||
TESTS_REGEXP+=(".*Attention : Kaz a \S+ ce message.*"); |
|||
TESTS_MATCHING_LINES+=(1); |
|||
|
|||
TESTS_DESCRIPTION+=("La piece est correctement nommée pour un mail normal"); |
|||
TESTS_REGEXP+=("\\* \"pdftest.pdf\" <https://depot.[^/]*/"); |
|||
TESTS_MATCHING_LINES+=(1); |
|||
|
|||
TESTS_DESCRIPTION+=("La piece est correctement nommée pour un mail sans texte"); |
|||
TESTS_REGEXP+=("\\* \"pdftestmailsanstexte.pdf\" <https://depot.[^/]*/"); |
|||
TESTS_MATCHING_LINES+=(1); |
|||
|
|||
TESTS_DESCRIPTION+=("La piece est correctement nommée pour une piece sans guillemets"); |
|||
TESTS_REGEXP+=("\\* \"pdftestSansGuillemets.pdf\" <https://depot.[^/]*/"); |
|||
TESTS_MATCHING_LINES+=(1); |
|||
|
|||
TESTS_DESCRIPTION+=("L'encodage du mail est correct"); |
|||
TESTS_REGEXP+=(".*é.*"); |
|||
TESTS_MATCHING_LINES+=(0); |
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,456 @@ |
|||
#/bin/bash |
|||
|
|||
# --- GME --- |
|||
# Envois full automatisés de mails dits bizarres vers un serveur kaz, |
|||
# dans le but de tester bon fonctionnement du dépollueur |
|||
# |
|||
# On enregistre en .eml dans le dossier mails, des messages "mal construits" pouvant causer pb au dépollueur. |
|||
# Les mails ont les champs suivants à l'interieur: %DATE% %FROM_ADDRESS% %TO_ADDRESS% |
|||
# Le fichier expectedResults permet de définir des regexp qu'on doit vérifier sur le mail reçu. |
|||
# |
|||
# Le script les envoie un par un via l'utilitaire swaks |
|||
# - interne -> interne |
|||
# - interne -> externe |
|||
# - externe -> interne |
|||
# |
|||
# Un petit warning, ce script fait du mailing moche (on balance un paquet de mails volontairement mal construits). |
|||
# Vous savez ce que vous faites ! Et si vous ne savez pas, ne le faites pas. |
|||
# En particulier si on utilise des mails qui sortent et entrent ... (blacklistings / etc ...) |
|||
# On préfèrera faire les tests sur un environnement de dev bien sûr ! |
|||
|
|||
TEST_DIR=$(cd "$(dirname $0)"; pwd) |
|||
. $TEST_DIR/mails/expectedResults.sh |
|||
NBMAILS=$(ls $TEST_DIR/mails/*.eml | wc -l) |
|||
|
|||
# random key |
|||
KEY="TESTDEP-$(echo $RANDOM | md5sum | head -c 20;)" |
|||
|
|||
# ou qu'il est le depollueur ? |
|||
SERVEUR_TO_TEST= |
|||
SERVEUR_IS_LOCALHOST=0 |
|||
|
|||
# s'il est pas en local, il faut bien pouvoir s'identifier |
|||
USERFROM= |
|||
USERTO= |
|||
PASSWORD= |
|||
|
|||
# un mail externe pour tester entrant / sortant |
|||
EXTERNAL_EMAIL= |
|||
EXTERNAL_SMTP= |
|||
EXTERNAL_USER= |
|||
EXTERNAL_PASSWORD= |
|||
EXTERNAL_SMTP_AUTH=1 |
|||
EXTERNAL_TESTS_ENABLED=1 |
|||
EXTERNAL_SMTP_ENABLED=1 |
|||
EXTERNAL_ONLY=0 |
|||
|
|||
#un peu de debug |
|||
VERBOSE=0 |
|||
|
|||
#ou si on préfère ne rien savoir |
|||
QUIET=0 |
|||
|
|||
#swaks est installé ? |
|||
SWAKS_OK=$(dpkg-query -W --showformat='${Status}\n' swaks 2>/dev/null | grep "install ok installed") |
|||
|
|||
# les résultats |
|||
SKIP_RESULTS=0 |
|||
KEEP_MAILS_ON_SERVEURS=0 |
|||
|
|||
#mutt est installé ? |
|||
MUTT_OK=$(dpkg-query -W --showformat='${Status}\n' mutt 2>/dev/null | grep "install ok installed") |
|||
|
|||
|
|||
|
|||
usage () { |
|||
echo "${PRG} [-h] -s <smtp_a_tester> -a <user> [-l] [-p <password>] [-v|-q] [-eq] [-ea] [-em <mail-ext>] [-es <smtp-ext>] [-eu <user-ext>] [-ep <password-ext>]" |
|||
echo " Tests full-automatisés du dépollueur." |
|||
echo " On envoie une série de mails et on vérifie que le lien généré est bon." |
|||
echo " -h | --help : Display this help." |
|||
echo " -s | --server : Quel serveur je teste ? (fqnd)" |
|||
echo " -l | --localhost : si le script est execute depuis le serveur test" |
|||
echo " -f | --from : Un compte à utiliser sur ce serveur en tant qu'expediteur" |
|||
echo " -t | --to : Un compte à utiliser sur ce serveur en tant que destinataire (optionnel, l expediteur est utilise sinon)" |
|||
echo " -p | --password : Le mot de passe de l'expéditeur si le script est executé à distance" |
|||
echo " -ed | --ext-disabled : Ne pas faire de tests externes" |
|||
echo " -eo | --ext-only : Ne faire que les tests externes" |
|||
echo " -em | --ext-mail : Un mail externe pour des tests vers / depuis l'exterieur" |
|||
echo " -es | --ext-server : Quel serveur je teste ?" |
|||
echo " -eu | --ext-user : Un identifiant pour smtp ext si différents de mail" |
|||
echo " -ep | --ext-password : Le mot de passe associé pour le ext-user ou mail" |
|||
echo " -ena | --ext-no-auth : Le smtp externe n'a pas besoin d'authentifications (FAI par exemple)" |
|||
echo " -rd | --results-disabled : Ne pas tenter d'aller chercher les résultats" |
|||
echo " -ksm | --keep-sended-mails : Laisser les messages envoyés sur les serveurs de destination" |
|||
echo " -v or -V display more informations" |
|||
echo " -q or -Q Quiet mode" |
|||
echo "Un petit warning, ce script fait du mailing moche (on balance un paquet de mails volontairement mal construits). " |
|||
echo "Vous savez ce que vous faites ! Et si vous ne savez pas, ne le faites pas." |
|||
} |
|||
|
|||
cleanupPackage () { |
|||
# on vire swaks si on l'a installé |
|||
# eventuellement on le fait même silently |
|||
package=$1; |
|||
quietMode=$2; |
|||
[ -z $quietMode ] && quietMode=0; |
|||
[ $quietMode -eq 0 ] && echo "$package a été installé, vous permettez que je désinstalle .. !"; |
|||
if [ $quietMode -eq 0 ] |
|||
then |
|||
apt-get -y remove $package; |
|||
apt-get -y purge $package; |
|||
else |
|||
apt-get -yq remove $package; |
|||
apt-get -yq purge $package; |
|||
fi; |
|||
} |
|||
|
|||
# récupération des arguments |
|||
[ -z "$1" ] && { usage;exit; } |
|||
for arg in $* |
|||
do |
|||
case "$arg" in |
|||
'-h' | '--help' ) |
|||
usage |
|||
shift |
|||
exit;; |
|||
'-s' | '--server') |
|||
shift; |
|||
SERVEUR_TO_TEST=$1 |
|||
shift;; |
|||
'-l' | '--localhost') |
|||
SERVEUR_IS_LOCALHOST=1 |
|||
shift;; |
|||
'-f' | '--from') |
|||
shift; |
|||
USERFROM=$1 |
|||
shift;; |
|||
'-p' | '--password') |
|||
shift; |
|||
PASSWORD=$1 |
|||
shift;; |
|||
'-t' | '--to') |
|||
shift; |
|||
USERTO=$1 |
|||
shift;; |
|||
'-ed' | '--ext-disabled') |
|||
EXTERNAL_TESTS_ENABLED=0; |
|||
EXTERNAL_SMTP_ENABLED=0; |
|||
shift;; |
|||
'-em' | '--ext-mail') |
|||
shift; |
|||
EXTERNAL_EMAIL=$1 |
|||
shift;; |
|||
'-es' | '--ext-server') |
|||
shift; |
|||
EXTERNAL_SMTP=$1 |
|||
shift;; |
|||
'-eu' | '--ext-user') |
|||
shift; |
|||
EXTERNAL_USER=$1 |
|||
shift;; |
|||
'-ep' | '--ext-password') |
|||
shift; |
|||
EXTERNAL_PASSWORD=$1 |
|||
shift;; |
|||
'-ena' | '--ext-no-auth') |
|||
EXTERNAL_SMTP_AUTH=0 |
|||
shift;; |
|||
'-eo' | '--ext-only') |
|||
EXTERNAL_ONLY=1 |
|||
shift;; |
|||
'-v' | '-V' ) |
|||
VERBOSE=1 |
|||
shift;; |
|||
'-q' | '-Q' ) |
|||
QUIET=1 |
|||
shift;; |
|||
'-rd' | '--results-disabled') |
|||
SKIP_RESULTS=1 |
|||
shift;; |
|||
'-ksm' | '--keep-sended-mails') |
|||
KEEP_MAILS_ON_SERVEURS=1 |
|||
shift;; |
|||
*) |
|||
esac |
|||
done; |
|||
|
|||
[ $VERBOSE -eq 1 -a $QUIET -eq 1 ] && echo 'Les options -q et -v ne sont pas compatibles.' && usage; |
|||
|
|||
[ $VERBOSE -eq 1 ] && echo "Checking for swaks : $SWAKS_OK"; |
|||
if [ -z "$SWAKS_OK" ]; |
|||
then |
|||
if [ $QUIET -eq 0 ] |
|||
then |
|||
echo "Swaks doit être installé, je le fait pour vous si j'ai les droits !"; |
|||
while true; do |
|||
read -p "On y va ? [Yn] :" yn |
|||
case $yn in |
|||
[YyoO]* ) break;; |
|||
[Nn]* ) echo "Swaks doit être installé, les tests en dépendent"; exit;; |
|||
* ) break;; |
|||
esac |
|||
done; |
|||
apt-get update; |
|||
apt-get -y install swaks; |
|||
else |
|||
apt-get -q update; |
|||
apt-get -qy install swaks; |
|||
fi; |
|||
|
|||
SWAKS_INSTALLED=$(dpkg-query -W --showformat='${Status}\n' swaks 2>/dev/null | grep "install ok installed") |
|||
if [ -z "$SWAKS_INSTALLED" ] |
|||
then |
|||
echo "Swaks doit être installé, et je ne suis pas root visiblement."; |
|||
echo "Soit le faire à la main, soit je m'en charge (apt install et remove à la fin), mais il me faut les droits root !"; |
|||
exit; |
|||
fi; |
|||
|
|||
trap 'cleanupPackage swaks $QUIET' EXIT; |
|||
fi |
|||
|
|||
if [ $SKIP_RESULTS -eq 0 -a -z "$MUTT_OK" ]; |
|||
then |
|||
[ $VERBOSE -eq 1 ] && echo "Checking for mutt : $MUTT_OK"; |
|||
if [ $QUIET -eq 0 ] |
|||
then |
|||
echo "Mutt doit être installé, je le fait pour vous si j'ai les droits !"; |
|||
while true; do |
|||
read -p "On y va ? [Yn] :" yn |
|||
case $yn in |
|||
[YyoO]* ) break;; |
|||
[Nn]* ) echo "Mutt doit être installé, les tests en dépendent"; exit;; |
|||
* ) break;; |
|||
esac |
|||
done; |
|||
apt-get update; |
|||
apt-get -y install mutt; |
|||
else |
|||
apt-get -q update; |
|||
apt-get -qy install mutt; |
|||
fi; |
|||
|
|||
MUTT_INSTALLED=$(dpkg-query -W --showformat='${Status}\n' swaks 2>/dev/null | grep "install ok installed") |
|||
if [ -z "$MUTT_INSTALLED" ] |
|||
then |
|||
echo "Mutt doit être installé, et je ne suis pas root visiblement."; |
|||
echo "Soit le faire à la main, soit je m'en charge (apt install et remove à la fin), mais il me faut les droits root !"; |
|||
exit; |
|||
fi; |
|||
|
|||
trap 'cleanupPackage mutt $QUIET' EXIT; |
|||
fi |
|||
|
|||
# si les paramètres n'ont pas été renseignés via les arguments du script, |
|||
# on prompt ceux qui sont necessaires |
|||
|
|||
[ $QUIET -eq 1 -a -z "$SERVEUR_TO_TEST" ] && SERVEUR_TO_TEST="mail.kaz.local"; #en mode quiet, on prend les options par défaut |
|||
if [ -z "$SERVEUR_TO_TEST" ] |
|||
then |
|||
[ $VERBOSE -eq 1 ] && echo "-- Le serveur n'a pas été renseigné (il faut un fqdn):"; |
|||
read -p "Le serveur à tester ? [mail.kaz.local] :" SERVEUR_TO_TEST; |
|||
[ -z "$SERVEUR_TO_TEST" ] && SERVEUR_TO_TEST="mail.kaz.local"; |
|||
fi; |
|||
|
|||
[ $QUIET -eq 1 -a -z "$USERFROM" ] && SERVEUR_TO_TEST="contact1@kaz.local"; #en mode quiet, on prend les options par défaut |
|||
if [ -z "$USERFROM" ] |
|||
then |
|||
[ $VERBOSE -eq 1 ] && echo "-- Il me faut également un compte mail qui envoie :"; |
|||
read -p "Email Expediteur ? [contact1@kaz.local]" USERFROM; |
|||
[ -z "$USERFROM" ] && USERFROM="contact1@kaz.local"; |
|||
fi; |
|||
[ -z "$USERTO" ] && USERTO="$USERFROM"; #sauf si précisé en option |
|||
|
|||
# si on est en local, normalement les mails partent sans besoin de renseigner l'authentification |
|||
# sinon il faut un mot de passe pour le smtp |
|||
|
|||
if { [ $SKIP_RESULTS -eq 0 ] || [ $SERVEUR_IS_LOCALHOST -eq 0 ]; } && [ -z "$PASSWORD" ]; |
|||
then |
|||
[ $VERBOSE -eq 1 ] && echo "-- Le password à utiliser n'a pas été renseigné :"; |
|||
read -s -p "Le password ? [toto]" PASSWORD; |
|||
[ -z "$PASSWORD" ] && PASSWORD="toto"; |
|||
fi; |
|||
|
|||
# utilisation d'un mail exterieur et eventuellement un smtp exterieur |
|||
if [ -z "$EXTERNAL_EMAIL" -a $EXTERNAL_TESTS_ENABLED -eq 1 -a $QUIET -eq 0 ] |
|||
then |
|||
[ $VERBOSE -eq 1 ] && echo "-- Les tests vers/depuis l'exterieur n'ont pas été desactivé via l'option -ed."; |
|||
while true; do |
|||
read -p "On fait des tests depuis / vers l'exterieur aussi ? [Yn] :" yn |
|||
case $yn in |
|||
[YyoO]* ) break;; |
|||
[Nn]* ) EXTERNAL_TESTS_ENABLED=0; EXTERNAL_SMTP_ENABLED=0; break;; |
|||
* ) break;; |
|||
esac |
|||
done; |
|||
if [ $EXTERNAL_TESTS_ENABLED -eq 0 ] |
|||
then |
|||
[ $VERBOSE -eq 1 ] && echo "-- Les tests vers/depuis l'exterieur annulés"; |
|||
else |
|||
[ $VERBOSE -eq 1 ] && echo "-- Ok mais je n'ai toujours pas l'adresse exterieure à utiliser."; |
|||
read -p "Mail externe ? :" EXTERNAL_EMAIL; |
|||
fi |
|||
fi |
|||
if [ -z "$EXTERNAL_SMTP" -a $EXTERNAL_TESTS_ENABLED -eq 1 -a $QUIET -eq 0 ] |
|||
then |
|||
[ $VERBOSE -eq 1 ] && echo "-- smtp, je pourrais le deviner à partir du mail mais ... j'ai la flemme là."; |
|||
echo "Pour les tests Depuis l'exterieur, il me faut aussi un smtp.Laisser vide si pas de tests depuis l'exterieur." |
|||
read -p "smtp externe ? :" EXTERNAL_SMTP; |
|||
[ -z $EXTERNAL_SMTP ] && EXTERNAL_SMTP_ENABLED=0; |
|||
fi |
|||
# authent pour le smtp ext |
|||
if [ -z "$EXTERNAL_USER" -a $EXTERNAL_SMTP_AUTH -eq 1 -a $EXTERNAL_SMTP_ENABLED -eq 1 -a $QUIET -eq 0 ] |
|||
then |
|||
[ $VERBOSE -eq 1 ] && echo "L'authentification au smtp externe n'a pas été désactivée avec l'option -ea :"; |
|||
[ $VERBOSE -eq 1 ] && echo "Le user à utiliser pour ce smtp externe n'a pas été renseigné :"; |
|||
read -p "Le user du smtp ? " EXTERNAL_USER; |
|||
fi |
|||
if [ -z "$EXTERNAL_PASSWORD" -a $EXTERNAL_SMTP_AUTH -eq 1 -a $EXTERNAL_SMTP_ENABLED -eq 1 -a $QUIET -eq 0 ] |
|||
then |
|||
[ $VERBOSE -eq 1 ] && echo "L'authentification au smtp externe n'a pas été désactivée avec l'option -ea :"; |
|||
[ $VERBOSE -eq 1 ] && echo "Le password à utiliser pour ce smtp externe n'a pas été renseigné :"; |
|||
read -s -p "Le password pour le smtp ? " EXTERNAL_PASSWORD; |
|||
fi |
|||
|
|||
#### |
|||
#### Fin de la récupération des paramètres du script. On balance les mails ! |
|||
#### |
|||
|
|||
if [ $VERBOSE -eq 1 ] |
|||
then |
|||
echo 'Paramètres : ' |
|||
echo '------------' |
|||
echo " Serveur : $SERVEUR_TO_TEST" |
|||
echo " Expéditeur interne : $USERFROM" |
|||
echo " Destinataire interne : $USERTO" |
|||
echo ' Password : ***' |
|||
echo " Tests vers externes : $EXTERNAL_TESTS_ENABLED" |
|||
echo " Tests depuis externe : $EXTERNAL_SMTP_ENABLED" |
|||
echo " Mail externe : $EXTERNAL_EMAIL" |
|||
echo " Auth externe : $EXTERNAL_USER" |
|||
echo '' |
|||
echo '' |
|||
fi |
|||
if [ $QUIET -eq 0 ] |
|||
then |
|||
sleep 2; |
|||
echo "OK on va y aller ... mais j'attend encore 3 secondes pour donner le temps pour un Ctrl C" |
|||
sleep 3; |
|||
fi |
|||
if [ $VERBOSE -eq 1 ] |
|||
then |
|||
echo "C'est parti !"; |
|||
# vous êtes sûr ? bon d'accord c'est chiant, |
|||
# mais si on a cree des mails vraiment veroles, et qu'on est en train de les balancer sur la en prod, on peut avoir un doute ... |
|||
fi |
|||
sleep 2; |
|||
|
|||
if [ $EXTERNAL_ONLY -eq 0 ] |
|||
then |
|||
echo "1 ----- $NBMAILS Mails envoyés depuis $USERFROM vers $USERTO ----"; |
|||
for MAIL in "$TEST_DIR/mails/"*.eml |
|||
do |
|||
echo "$MAIL"; |
|||
options=(-f $USERFROM -t $USERTO -d $MAIL --h-From: "\"$KEY\" <$USERFROM>"); |
|||
[ $SERVEUR_IS_LOCALHOST -eq 0 ] && options+=(-s $SERVEUR_TO_TEST -p 587 --tlso -au $USERFROM -ap $PASSWORD); |
|||
[ $QUIET -eq 1 ] && options+=(--silent); |
|||
[ $VERBOSE -eq 0 ] && options+=(-n); |
|||
swaks "${options[@]}"; |
|||
done |
|||
fi |
|||
|
|||
if [ $EXTERNAL_TESTS_ENABLED -eq 1 ] |
|||
then |
|||
echo "2 ----- $NBMAILS Mails envoyés depuis $USERFROM vers $EXTERNAL_USER ----"; |
|||
for MAIL in "$TEST_DIR/mails/"*.eml |
|||
do |
|||
options=(-f $USERFROM -t $EXTERNAL_EMAIL -d $MAIL -s $SERVEUR_TO_TEST --tlso --h-From: "\"$KEY\" <$USERFROM>"); |
|||
[ $SERVEUR_IS_LOCALHOST -eq 0 ] && options+=(-p 587 -au $USERFROM -ap $PASSWORD); # on rajoute l'authetification |
|||
[ $QUIET -eq 1 ] && options+=(--silent); |
|||
[ $VERBOSE -eq 0 ] && options+=(-n); |
|||
swaks "${options[@]}"; |
|||
done |
|||
fi |
|||
|
|||
if [ $EXTERNAL_SMTP_ENABLED -eq 1 ] |
|||
then |
|||
if [ $SERVEUR_IS_LOCALHOST -eq 1 ] |
|||
then |
|||
[ $QUIET -eq 0 ] && echo "3 ----- Mails envoyés depuis l'extérieur vers localhost ... heu une autre fois en fait ... "; |
|||
[ $VERBOSE -eq 1 ] && echo "-- Mais si vous renseignez un fqdn pour le serveur je pourrais essayer ..."; |
|||
else |
|||
echo "3 ----- $NBMAILS Mails envoyés depuis $EXTERNAL_EMAIL vers $USERTO ----"; |
|||
for MAIL in "$TEST_DIR/mails/"*.eml |
|||
do |
|||
options=(-f $EXTERNAL_EMAIL -t $USERTO -d $MAIL -s $EXTERNAL_SMTP -p 587 --tlso --h-From: "\"$KEY\" <$USERFROM>"); |
|||
[ $EXTERNAL_SMTP_AUTH -eq 1 ] && options+=(-au $EXTERNAL_USER -ap $EXTERNAL_PASSWORD); |
|||
[ $QUIET -eq 1 ] && options+=(--silent); |
|||
[ $VERBOSE -eq 0 ] && options+=(-n); |
|||
swaks "${options[@]}"; |
|||
done |
|||
fi |
|||
fi |
|||
|
|||
#### |
|||
#### Et bien maintenant on va voir les résultats ! |
|||
#### |
|||
|
|||
if [ $SKIP_RESULTS -eq 0 ] |
|||
then |
|||
if [ $VERBOSE -eq 1 ] |
|||
then |
|||
echo "-- On va maintenant chercher les mails en imap pour checker que tout est bon !"; |
|||
echo "-- Creation d'un repertoire temporaire /tmp/$KEY"; |
|||
echo "-- Fichier de conf pour mutt /tmp/$KEY/muttrc"; |
|||
fi |
|||
|
|||
sleep 5; |
|||
[ $VERBOSE -eq 1 ] && echo "-- OK on va y aller ... mais j'attend encore 3 secondes pour donner le temps aux messages d'être traités par les serveurs ..."; |
|||
sleep 3; |
|||
|
|||
mkdir /tmp/$KEY |
|||
echo "set imap_user=$USERFROM |
|||
set ssl_force_tls = yes |
|||
set ssl_starttls = yes |
|||
set imap_pass=$PASSWORD |
|||
set folder=imaps://$SERVEUR_TO_TEST:993 |
|||
set spoolfile = +INBOX |
|||
set pipe_decode=yes |
|||
set wait_key=no |
|||
mailboxes +INBOX |
|||
" > /tmp/$KEY/muttrc |
|||
|
|||
|
|||
[ $VERBOSE -eq 1 ] && echo "-- on télécharge les mails qu'on colle dans un txt"; |
|||
mutt -F /tmp/$KEY/muttrc -e "push '<limit>~f $KEY<enter><tag-pattern>all<enter><tag-prefix><pipe-message>cat >> /tmp/$KEY/mails.eml<enter><quit>'" |
|||
|
|||
[ $VERBOSE -eq 1 ] && echo "-- Et on fait le ménage sur le serveur"; |
|||
if [ $KEEP_MAILS_ON_SERVEURS -eq 1 ] |
|||
then |
|||
[ $VERBOSE -eq 1 ] && echo "-- On les enregistre dans un sous dossier $KEY"; |
|||
mutt -F /tmp/$KEY/muttrc -e "push '<limit>~f $KEY<enter><tag-pattern>all<enter><tag-prefix><decode-save><enter><enter><quit>y'" |
|||
else |
|||
[ $VERBOSE -eq 1 ] && echo "-- On supprime les mails identifiés par la clef"; |
|||
mutt -F /tmp/$KEY/muttrc -e "push '<limit>~f $KEY<enter><delete-pattern>all<enter><enter><quit>y'" |
|||
fi |
|||
|
|||
|
|||
NBTESTS=${#TESTS_DESCRIPTION[@]}; |
|||
RED='\033[0;31m'; |
|||
GREEN='\033[0;32m'; # Green |
|||
NC='\033[0m'; # No Color |
|||
[ $VERBOSE -eq 1 ] && echo "-- On passe les $NBTESTS tests définis dans le repertoire de mails"; |
|||
|
|||
echo "-------- RESULTATS DES TESTS ------ "; |
|||
for (( i=0; i<${NBTESTS}; i++ )); |
|||
do |
|||
RESULTCOUNT=$(egrep -c "${TESTS_REGEXP[$i]}" /tmp/$KEY/mails.eml); |
|||
[ -z $RESULTCOUNT ] && RESULTCOUNT=0; |
|||
if [ $RESULTCOUNT -eq ${TESTS_MATCHING_LINES[$i]} ] |
|||
then |
|||
echo -e "--$i-- ${TESTS_DESCRIPTION[$i]} : ${GREEN}OK${NC}"; |
|||
else |
|||
echo -e "--$i-- ${TESTS_DESCRIPTION[$i]} : ${RED}KO${NC}"; |
|||
fi |
|||
done |
|||
|
|||
fi |
Loading…
Reference in new issue