PHPMailer, formulaire de contact / Bloquer certains domaines
Résolu/Fermé
A voir également:
- PHPMailer, formulaire de contact / Bloquer certains domaines
- Bloquer contact whatsapp - Guide
- Formulaire de réclamation facebook - Guide
- Bloquer un contact sur gmail - Guide
- Bloquer pub youtube - Accueil - Streaming
- Créer un groupe whatsapp sans contact - Guide
2 réponses
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
6 janv. 2022 à 19:26
6 janv. 2022 à 19:26
Bonjour,
Je suppose que tu fais déjà quelques contrôles sur les données envoyées par le formulaire avant d'envoyer le mail, notamment vérifier que l'adresse mail n'est pas vide et est valide ?
Tu pourrais donc ajouter un contrôle supplémentaire pour vérifier que le domaine de l'adresse mail ne fait pas partie d'une liste de domaines bloqués.
Une solution simple en php serait d'utiliser la fonction explode() pour découper l'adresse mail en deux parties autour du caractères '@' afin de récupérer le domaine en 2e partie. On pourrait aussi utiliser substr() et strpos() pour extraire le domaine de l'adresse mail.
Puis utiliser la fonction in_array() pour vérifier si le domaine fait partie d'une liste de domaines bloqués.
Une autre solution (peut-être un peu plus compliquée pour un débutant) serait d'utiliser une expression régulière (regex) avec la fonction preg_match().
Tu peux facilement trouver plein d'exemples pour l'utilisation de cette fonction sur la documentation de php et sur le net, mais n'hésites pas à suivre un tuto si tu ne connais pas les expressions régulières. Un tuto parmi d'autres :
https://www.commentcamarche.net/contents/803-php-expressions-regulieres
Enfin pour une solution un peu plus avancée, on pourrais faire le même type de contrôle non pas sur le domaine de l'adresse mail mais sur les enregistrements MX correspondant au domaine (avec la fonction php getmxrr() par exemple), notamment car les spammeurs peuvent utiliser des "alias" de domaine.
Les enregistrements MX permettent de définir les serveurs de gestion du courrier d'un domaine dans le système de résolution de nom de domaine (DNS).
En savoir plus sur les enregistrements MX et le DNS : https://www.commentcamarche.net/informatique/technologies/26235-dns-principe-fonction-utilisation/
Par exemple, les domaines des adresses finissant par @hotmail.com ou @hotmail.fr utilisent en fait un domaine finissant par outlook.com pour la gestion du courrier (MX).
Mais si tu ne reçois pas beaucoup de spam provenant de plein de domaines différents, le contrôle uniquement sur le domaine de l'adresse mail devrait être pour l'instant suffisant.
Je suppose que tu fais déjà quelques contrôles sur les données envoyées par le formulaire avant d'envoyer le mail, notamment vérifier que l'adresse mail n'est pas vide et est valide ?
Tu pourrais donc ajouter un contrôle supplémentaire pour vérifier que le domaine de l'adresse mail ne fait pas partie d'une liste de domaines bloqués.
Une solution simple en php serait d'utiliser la fonction explode() pour découper l'adresse mail en deux parties autour du caractères '@' afin de récupérer le domaine en 2e partie. On pourrait aussi utiliser substr() et strpos() pour extraire le domaine de l'adresse mail.
Puis utiliser la fonction in_array() pour vérifier si le domaine fait partie d'une liste de domaines bloqués.
Une autre solution (peut-être un peu plus compliquée pour un débutant) serait d'utiliser une expression régulière (regex) avec la fonction preg_match().
Tu peux facilement trouver plein d'exemples pour l'utilisation de cette fonction sur la documentation de php et sur le net, mais n'hésites pas à suivre un tuto si tu ne connais pas les expressions régulières. Un tuto parmi d'autres :
https://www.commentcamarche.net/contents/803-php-expressions-regulieres
Enfin pour une solution un peu plus avancée, on pourrais faire le même type de contrôle non pas sur le domaine de l'adresse mail mais sur les enregistrements MX correspondant au domaine (avec la fonction php getmxrr() par exemple), notamment car les spammeurs peuvent utiliser des "alias" de domaine.
Les enregistrements MX permettent de définir les serveurs de gestion du courrier d'un domaine dans le système de résolution de nom de domaine (DNS).
En savoir plus sur les enregistrements MX et le DNS : https://www.commentcamarche.net/informatique/technologies/26235-dns-principe-fonction-utilisation/
Par exemple, les domaines des adresses finissant par @hotmail.com ou @hotmail.fr utilisent en fait un domaine finissant par outlook.com pour la gestion du courrier (MX).
Mais si tu ne reçois pas beaucoup de spam provenant de plein de domaines différents, le contrôle uniquement sur le domaine de l'adresse mail devrait être pour l'instant suffisant.