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

  1. #21
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    Citation Envoyé par Djakisback
    Salut,
    ton truc des preg c'est pas terrible dans le corps du message t'auras plus aucun retours à la ligne (D'autant plus que la fonction mail(), à vérifier, est censée déjà vérifier le paramètre 'message').
    Bye
    +1 Le controle sur le sujet et les mails saisie suffit.

    Pour comment pour les parano, il suffit de virer les \ncc: et \nbcc:

  2. #22
    Membre averti
    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
    Points : 303
    Points
    303
    Par défaut
    le problème c'est que si l'on veut faire un traitement du mail ligne à ligne, ça peut posés des problèmes.

    mais oui, sinon, c'est pas utile

  3. #23
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    Citation Envoyé par juJuv51
    le problème c'est que si l'on veut faire un traitement du mail ligne à ligne, ça peut posés des problèmes.

    mais oui, sinon, c'est pas utile
    Ou pour eviter l'incrustation de bcc, on peut toujours ajouter du decors et plus de probleme genre :

    $comment="********************\n".$comment."\n*****************";

    Si le spameur veur incruster ces cc et bcc ils vont partir dans le decor

  4. #24
    Membre averti
    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
    Points : 303
    Points
    303
    Par défaut
    Merci j'y aurais pas pensé
    (mais je suis trop parano pour ne pas viré les caractères indésirables :p)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 142
    Points : 83
    Points
    83
    Par défaut Re
    je reviens vers vous.

    Plus aucun spam sur le mail server, bonne chose, mais je recois des formulaires vides quand même (une bonne centaine sur une nuit) malgré mon code pour vérifier si tous les champs sont remplis :

    code sur ma page avec le formulaire :
    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
    36
    37
    38
    39
     
    <script language="JavaScript"><!--
    function checkFields() {
    missinginfo = "";
     
    if (document.form.name.value == "") {
    missinginfo += "\n     -  Nom";
    }
     
    if ((document.form.email.value == "") || 
    (document.form.email.value.indexOf('@') == -1) || 
    (document.form.email.value.indexOf('.') == -1)) {
    missinginfo += "\n     -  E-mail";
    }
     
    if (document.form.city.value == "") {
    missinginfo += "\n     -  Ville";
    }
     
    if (document.form.country.value == "") {
    missinginfo += "\n     -  Pays";
    }
     
    if (document.form.comments.value == "") {
    missinginfo += "\n     -  Commentaires";
    }
     
    if (missinginfo != "") {
    missinginfo ="______________________________________________\n" +
    "Vous n'avez pas rempli correctement tous les champs :\n" +
    missinginfo + "\n______________________________________________" +
    "\nS'il vous plait, vérifiez et réessayer à nouveau !";
    alert(missinginfo);
    return false;
    }
    else return true;
    }
    // -->
    </script>

    code sur ma page de confirmation :
    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
     
    <?php
    $name = preg_replace("`\\\x00|\\\x0a|\\\x0d|\\\x1a`", "", $_POST['name']); 
    $email = preg_replace("`\\\x00|\\\x0a|\\\x0d|\\\x1a`", "", $_POST['email']); 
    $city = preg_replace("`\\\x00|\\\x0a|\\\x0d|\\\x1a`", "", $_POST['city']); 
    $country = preg_replace("`\\\x00|\\\x0a|\\\x0d|\\\x1a`", "", $_POST['country']); 
    $comments = preg_replace("`\\\x00|\\\x0a|\\\x0d|\\\x1a`", "", $_POST['comments']); 
     
    $messageToSend .= "\n";
    $messageToSend .= "Nom : ".addslashes($name)."\n";
    $messageToSend .= "Ville : ".addslashes($city)."\n";
    $messageToSend .= "Pays : ".addslashes($country)."\n";
    $messageToSend .= "Message : ".addslashes($comments)."\n";
     
    // envoyer message
    $to = "ma083028@skynet.be";
    $subject = "Guestbook site FR";
    $from = "From: ".addslashes($email)."\r\n";
     
    mail($to, $subject, $messageToSend, $from);
     
    ?>

  6. #26
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut, tu fais ta vérif coté client en JS, il suffit au robot de désactiver le JS et c'est bon. Il faut que tu la fasses soit en JS + PHP soit que PHP, bye

  7. #27
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    Je présume que tu fais un truc du genre <form onsubmit="return checkFields()"> ?

    Enleve le onsubmit, remplace ton bouton input type submit par un type button, et met ta fonction en onclick.
    <input type=button value="envoyer" onclick="checkFields()">

    Et bien sur modifi ta fonction checkfield pour qu'elle submit le formulaire au lieu de renvoyer true.


    Ensuite quand tu auras fait ça, si le robot n'a pas de javascript il ne passera pas.

    Puis bien enttendu, recontrole que les champs soit bien saisi du coté php, sinon fait des exit.

  8. #28
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 142
    Points : 83
    Points
    83
    Par défaut Re
    ok merci pour ta réponse.

    j'ai changé mon code comme tu me l'as conseillé ... du coté de mon mail server, plus aucun mail n'est envoyé à des milliers de personnes chaque jour (le principal), mais je reçois tout de même des formulaires avec publicités non désirées pour viagra ou autre ....

  9. #29
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    Citation Envoyé par tomguiss
    ok merci pour ta réponse.

    j'ai changé mon code comme tu me l'as conseillé ... du coté de mon mail server, plus aucun mail n'est envoyé à des milliers de personnes chaque jour (le principal), mais je reçois tout de même des formulaires avec publicités non désirées pour viagra ou autre ....
    Viagra ? tu es sur qu'ils passent par ton formulaire, que tu reçois pas ton spam directement sur ton email ?

  10. #30
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 142
    Points : 83
    Points
    83
    Par défaut Re:
    non je suis quand même pas si bête que cela

    non je recois bien un mail qui provient de mon formulaire du site ... mais les champs sont bien remplis du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Email : adrian_price@hairdresser.net
    Nom : Adrian Price
    Ville : Vanconta
    Pays : Zimbabwe
    Message :  <a href=\"http://pregnant.maisielotus.com/pregnant-creampie.html\"> pregnant creampie </a>  <a href=\"http://pregnant.maisielotus.com/pregnant-photos.html\"> pregnant photos </a>  <a href=\"http://pregnant.maisielotus.com/free-pregnant-porn.html\"> free pregnant porn </a>  <a href=\"http://pregnant.maisielotus.com/pregnant-guppy-fish.html\"> pregnant guppy fish </a>  <a href=\"http://pregnant.maisielotus.com/pregnant-rapid-belly-expansion.html\"> pregnant rapid belly expansion </a>  <a href=\"http://pregnant.maisielotus.com/pregnant-love.html\"> pregnant love </a>  <a href=\"http://pregnant.maisielotus.com/pregnant-sex-videos.html\"> pregnant sex videos </a>  <a href=\"http://pregnant.maisielotus.com/huge-pregnant.html\"> huge pregnant </a>  <a href=\"http://pregnant.maisielotus.com/pregnant-women-naked.html\"> pregnant women naked </a>  <a href=\"http://pregnant.maisielotus.com/trying-to-get-pregnant-quickly.html\"> trying to get pregnant quickly </a>
    donc je sais pas trop....

  11. #31
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    Citation Envoyé par tomguiss
    non je suis quand même pas si bête que cela

    non je recois bien un mail qui provient de mon formulaire du site ... mais les champs sont bien remplis du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Email : adrian_price@hairdresser.net
    Nom : Adrian Price
    Ville : Vanconta
    Pays : Zimbabwe
    Message :  <a href=\"http://pregnant.maisielotus.com/pregnant-creampie.html\"> pregnant creampie </a>  <a href=\"http://pregnant.maisielotus.com/pregnant-photos.html\"> pregnant photos </a>  <a href=\"http://pregnant.maisielotus.com/free-pregnant-porn.html\"> free pregnant porn </a>  <a href=\"http://pregnant.maisielotus.com/pregnant-guppy-fish.html\"> pregnant guppy fish </a>  <a href=\"http://pregnant.maisielotus.com/pregnant-rapid-belly-expansion.html\"> pregnant rapid belly expansion </a>  <a href=\"http://pregnant.maisielotus.com/pregnant-love.html\"> pregnant love </a>  <a href=\"http://pregnant.maisielotus.com/pregnant-sex-videos.html\"> pregnant sex videos </a>  <a href=\"http://pregnant.maisielotus.com/huge-pregnant.html\"> huge pregnant </a>  <a href=\"http://pregnant.maisielotus.com/pregnant-women-naked.html\"> pregnant women naked </a>  <a href=\"http://pregnant.maisielotus.com/trying-to-get-pregnant-quickly.html\"> trying to get pregnant quickly </a>
    donc je sais pas trop....
    Dans ce cas une seule solution, captcha

    http://fr.wikipedia.org/wiki/Captcha

  12. #32
    Membre averti
    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
    Points : 303
    Points
    303
    Par défaut
    Contournement
    Il y a plusieurs approches pour mettre en échec un CAPTCHA :
    * on peut utiliser une main-d’œuvre humaine pour les reconnaître
    C'est quand même fou à quel point le Spam peut remporter de l'argent, aux point de pouvoir payer des personnes pour spammé à la main...

  13. #33
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    tu peux faire un captcha a intellectuel aussi, facile a faire et chiant pour un robot

    Additioner ces 3 chiffres : 2 + 1 + 3 (un robot trouvera 213 )
    Ou quel est l'animal présent sur cette photo....

  14. #34
    Membre averti
    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
    Points : 303
    Points
    303
    Par défaut
    J'avais déjà rencontrer ce genre de script mais sans image (je trouvé ça bidon)
    mais le coup de posé une question en fonction d'une image, ou encore faire un calcule simple, c'est vraiment un très très bonne idée...

    Merci

  15. #35
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 142
    Points : 83
    Points
    83
    Par défaut Re
    oui bonne idée, je vais implémenter ce code dans les formulaires qui posent problème, les 9/10 ne sont pas infectés, mais deux m'envoyent des centaines de mails par jour .... du moment qu'ils ne soient pas envoyés en masse à des personnes autres que moi, ce n'est pas grave, au sinon mon provider me bloque encore mon mail server...

    je vous tiendrai au courant dans l'après-midi.

  16. #36
    Membre averti
    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
    Points : 303
    Points
    303
    Par défaut
    Ok, mais tu as raison de faire attention avec l'envoie de mail massif, parce que les providers montre les dents rapidement.

  17. #37
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    Au fait, ma fonction de controle de mail ressemble a ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function isemail($email) {
    if(preg_match("/^[0-9a-z_]([-_.]?[0-9a-z])*@[0-9a-z][-.0-9a-z]*\\.[a-z]{2,3}[.]?$/",$email))
          {
            $host = substr(strstr($email, '@'), 1);
            if($host=='mondomaine.com') return FALSE;
            if (getmxrr($host, $validate_email_temp)) return TRUE;
            if(checkdnsrr($host,"ANY"))     return TRUE;
            return FALSE;
          }
          return FALSE;
      }
    Et la fonction qui controle le sujet et message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //type=0 pour sujet, 1 pour message
    function strctrl($str,$type=0)
      {  $str=stripslashes(str_replace(array('MIME','bcc:','cc:','multipart','Content-Type'),'#####',$str));
            if(!$type)return preg_replace("`\\x00|\\x0a|\\x0d|\\x1a`", "", strtolower($str));
            return preg_replace("@^[`\\x00|\\x0a|\\x0d|\\x1a`]+@", "", $str);;
      }
    Ha oui, et je rajoute l'ip du posteur en premiere ligne de mon message.

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