La Mailing-list parfaite avec regex pour mailing OVH

Pour que le mailing soit parfait, la mailing-list doit l’être également.

OVH propose un outil qui ne supporte pas les erreurs dans les adresses e-mails.
Upload de fichiers texte avec 1 adresse par ligne (sans séparateur)

Il est possible de corriger en LIVE dans OVH :
– pour corriger les adresses en erreur, cliquer sur l’adresse email en rouge
– pour supprimer les adresses en erreur, cliquer sur l’icône “poubelle”

Pour valider ces fichiers de plusieurs centaines de lignes, utilisons les étapes ci-dessous :

0) Ajouter une adresse email de vérification !

Exemple : contact@1ere-page.fr

1) Supprimer tous les espaces

Ouvrir le fichier avec nano > Remplacer ‘ ‘ par ” > Sauver

– ou  sed -ie 's/\ //g' adresses.txt
1.1) Supprimer les lignes vides
  • filtrer les lignes avec des “@” :  grep “@” fichier-avec-lignes-vides > fichier-sans-lignes-vides
  • sed -i '/^$/d' file.txt
2) Remplacer les caratères accentués et espaces restants :
grep ‘[éèëêäàâôùûç\ &]’  adresses.txt

Daniel_Men_tout_historique.lst:luc-hunt@hotmail.fr Mail Daniel_Men_tout_historique.lst:noël.perri@gmail.com
Daniel_Men_tout_poli.lst:antoine.ferra@ ville-lehaillan.fr

3) Trier la liste dans l’ordre alphabétique
sort fichier.txt > fichier-tri.txt
4) Convertir les MAJ en min
tr ‘[:upper:]’ ‘[:lower:]’ < clients2020-tri.txt > clients2020-tri-min.txt
5) Dédoublonner
uniq clients2020-tri-min.txt > clients2020-tri-min-uniq.txt
6) Vérifier le bon format de l’adresse e-mail : mail-validator.sh
#!/bin/bash
function isEmailValid() {
regex1="^([A-Za-z]+[A-Za-z0-9]*((\.|\-|\_)?[A-Za-z]+[A-Za-z0-9]*){1,})@(([A-Za-z]+[A-Za-z0-9]*)+((\.|\
-|\_)?([A-Za-z]+[A-Za-z0-9]*)+){1,})+\.([A-Za-z]{2,})+"
regex2="^([a-z0-9^äàéèç&]+[a-z0-9^äàéèç&]*((\.|\-|\_)?[a-z0-9]*){1,})@(([a-z0-9]+[a-z0-9]*)+((\.|\-|\_
)?([a-z]+[a-z0-9]*)+){1,})+\.([a-z]{2,})+"
#regex2 est plus tolerant : il autorise ...@1ere-page.fr (nom de domaine et noms qui commencent par un chi
ffre)
[[ "${1}" =~ $regex2 ]]
}
for fichier in $(cat $1); do
  for ligne in $fichier; do
    if isEmailValid "${ligne}" ;then
       true
    else
       echo "INVALID ${ligne}"
    fi
  done
done

Utilisation :

pjm@pjm-pc:~/Mailings-1P/$ ./mail-validator.sh Daniel_Men_*.lst 
INVALID carole.sumiret@aliceadsl.fr
~/Documents/1ere-page/HITEC/qiso/qiso_2021$ ./mail-validator.sh clients2020-tri-min-uniq.txt 
INVALID a.couval@a3e-70.fr
INVALID frpangwei@126.com
INVALID .guignard@orange.fr
Ne pas considérer les Faux invalides : NDD commençant par un chiffre (comme 1ere-page.fr!)
7) Prendre en compte les désabonnés

Copier la liste finale dans un fichier Excel de verif + retrait des désabonnés

8) Si vous avez plusieurs mailing-lists, espacez les envois de 1 heure ! 

sinon l’anti-spam de OVH se déclenche