IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] Spam et envoi e-mail avec PHP [Tutoriel]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 142
    Par défaut [Mail] Spam et envoi e-mail avec PHP
    Bonjour,

    j'utilise ce script-ci pour m'envoyer des emails depuis un formulaire depuis notre site Internet, et mon provider a coupé l'utilisation car leur serveur est innondé de spam emails, car qqn utilise mon script pour envoyer des mails non désirés, on me demande de réécrire mon script, mais je ne vois pas trop ce que je pourrais faire pour que les spams cessent.

    sur ma page avec le formulaire, quand on clique sur 'envoi', un script checke que tous les champs sont bien remplis, une fois ceci fait, on est redigiré vers une page appelée 'thanks-contact.php' et voici le code sur cette page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <?php
    $prenom = $_POST['prenom']; 
    $nom = $_POST['nom']; 
    $email = $_POST['email']; 
    $adresse = $_POST['adresse']; 
    $codepostal = $_POST['codepostal']; 
    $ville = $_POST['ville']; 
    $pays = $_POST['pays']; 
    $gsm = $_POST['gsm']; 
    $sujet = $_POST['sujet']; 
    $commentaire = $_POST['commentaire']; 
     
     
    $messageToSend .= "\n";
    $messageToSend .= "Nom : ".$nom."\n";
    $messageToSend .= "Prénom : ".$prenom."\n";
    $messageToSend .= "Email : ".$email."\n";
    $messageToSend .= "Adresse : ".$adresse."\n";
    $messageToSend .= "Code postal : ".$codepostal."\n";
    $messageToSend .= "Ville : ".$ville."\n";
    $messageToSend .= "Pays : ".$pays."\n";
    $messageToSend .= "Téléphone : ".$gsm."\n";
    $messageToSend .= "Sujet : ".$sujet."\n\n";
    $messageToSend .= "Commentaire : ".$commentaire."\n";
     
    // envoyer message
    $to = "ma083028@skynet.be";
    $subject = "Formulaire de contact";
    $from = "From: $email\n";
     
    mail($to, $subject, $messageToSend, $from);
     
    ?>

    quelqu'un pourrait il m'aider ?

    Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
    <?php
    $prenom = preg_replace("`\\\x00|\\\x0a|\\\x0d|\\\x1a`", "", $_POST['prenom']); 
    $nom = preg_replace("`\\\x00|\\\x0a|\\\x0d|\\\x1a`", "", $_POST['nom']); 
    $email = preg_replace("`\\\x00|\\\x0a|\\\x0d|\\\x1a`", "", $_POST['email']); 
    $adresse = preg_replace("`\\\x00|\\\x0a|\\\x0d|\\\x1a`", "", $_POST['adresse']); 
    $codepostal = preg_replace("`\\\x00|\\\x0a|\\\x0d|\\\x1a`", "", $_POST['codepostal']); 
    $ville = preg_replace("`\\\x00|\\\x0a|\\\x0d|\\\x1a`", "", $_POST['ville']); 
    $pays = preg_replace("`\\\x00|\\\x0a|\\\x0d|\\\x1a`", "", $_POST['pays']); 
    $gsm = preg_replace("`\\\x00|\\\x0a|\\\x0d|\\\x1a`", "", $_POST['gsm']); 
    $sujet = preg_replace("`\\\x00|\\\x0a|\\\x0d|\\\x1a`", "", $_POST['sujet']); 
    $commentaire = preg_replace("`\\\x00|\\\x0a|\\\x0d|\\\x1a`", "", $_POST['commentaire']); 
     
     
    $messageToSend .= "\n";
    $messageToSend .= "Nom : ".addslashes($nom)."\n";
    $messageToSend .= "Prénom : ".addslashes($prenom)."\n";
    $messageToSend .= "Email : ".addslashes($email)."\n";
    $messageToSend .= "Adresse : ".addslashes($adresse)."\n";
    $messageToSend .= "Code postal : ".addslashes($codepostal)."\n";
    $messageToSend .= "Ville : ".addslashes($ville)."\n";
    $messageToSend .= "Pays : ".addslashes($pays)."\n";
    $messageToSend .= "Téléphone : ".addslashes($gsm)."\n";
    $messageToSend .= "Sujet : ".addslashes($sujet)."\n\n";
    $messageToSend .= "Commentaire : ".addslashes($commentaire)."\n";
     
    // envoyer message
    $to = "ma083028@skynet.be";
    $subject = "Formulaire de contact";
    $from = "From: ".addslashes($email)."\r\n";
     
    mail($to, $subject, $messageToSend, $from);
     
    ?>
    Avec ça t'es tranquille!

    Il est possible d'exploité grâce à des injections de codes la fonction mail pour faire du spam (souvent du mail bombe)

    ici, en rajouté des \ au caractères permettant l'injection, normalement ça peut stoppé,
    mais aussi en supprimant les caractères qui ne devrait pas ce trouvé là on ne fais pas de mal...

    ps: pour les header (ici from) il faut un retour charriot + un saut de ligne.

  3. #3
    Membre éprouvé Avatar de BGDC
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 102
    Par défaut
    Salut,

    Moi je vire purement et simplement des messages contenant www. Je n'ai plus de pb.

    Bon courage.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Par défaut
    Tien, je pense que ça peut t'aider:
    http://www.securephpwiki.com/index.php/Email_Injection

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 142
    Par défaut Re
    ok merci pour votre aide !
    j'ai déjà changé le script sur un formulaire, on verra le résultat d'ici 30 minutes.

    pour le lien, je vais un peu lire tout cela !

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Par défaut
    tien nous informé

Discussions similaires

  1. Mon envoi de mail fonctionne mais envoi 5 mail
    Par blinkman04 dans le forum Langage
    Réponses: 0
    Dernier message: 17/04/2013, 11h37
  2. Réponses: 1
    Dernier message: 13/01/2008, 12h52
  3. [Mail] Problème d'envoi de mail avec pièces jointes
    Par nelly644 dans le forum Langage
    Réponses: 2
    Dernier message: 31/03/2007, 10h14
  4. [Mail] envoi d'email avec php à l'aide de blat
    Par lahlousimo dans le forum Langage
    Réponses: 3
    Dernier message: 28/02/2007, 11h30
  5. Réponses: 1
    Dernier message: 11/07/2006, 22h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo