Programmation php

Résolu
Mon problème :
Avec un script d'envoi d'émail si je tape moi même l'adresse destinataire, tout fonctionne proprement, mais si je vais chercher dans une base de donnée l'adresse, je reçoit sous gmail un message ou on voit le code du mail.

Pourtant j'ai bien la même adresse, et c'est la seule chose qui change dans le programme !

J'ai aussi tenter d'enlever les caractères qui peuvent arriver en fin de chaînes !

Si quelqu'un a une idée, merci beaucoup !

5 réponses

  1. Contributeur
    Salut,

    Tu peux donner un bout de ton code s'il te plait ?
    - Le formulaire d'envoi de mail
    - Et la requête de ta base de données.

    Merci
    0
    1. Bien sur, pas de problème. Le début c'est la requête SQL, ca peut sembler barbare, en faite je vais juste lire dans un fichier pour récupérer un identifiant, puis avec cette identifiant, je récupère une adresse mail.

      Ensuite il y a tout le script pour créer l'email. Si j'utilise la variable data['email']
      en destinataire, je reçois un mail avec les pièces jointes cryptes, les boundary affiche etc, si je met une adresse email directement, tout fonctionne...
      try
      {
      // connexion with MySQL
      $bdd = new PDO('mysql:host=localhost;dbname=******', '******', '*****');
      }
      catch(Exception $e)
      {

      die('Erreur : '.$e->getMessage());
      }

      $buffer= array();
      $handle = @fopen("./phytime/userdata/finish.txt", "r");
      if ($handle)
      {
      while (!feof($handle))
      {
      $buffer = stream_get_line($handle, 4096,"\n");
      $usermail = $bdd->query('SELECT (email) as email FROM PhytimeUser where uniquser="'.$buffer.'"');
      while ($data = $usermail->fetch())
      {
      ?>
      <table>
      <tr>
      <td>Mail send at : </td>
      <td><?php echo $data['email']; ?></td>
      </tr>
      </table>

      //Envoi du mail
      <?php

      if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn)\.[a-z]{2,4}$#", $destinataire))
      {
      $passage_ligne = "\n";
      }
      else
      {
      $passage_ligne = "\r\n";
      }
      $suppr=array(";",",",":","!","?","/","&",'\"',"\'","(",")","È","Ç ","\n","\r"," ","\o");
      $address=str_replace("$suppr","",$data['email']);
      echo $address;
      //=====Les variables
      $destinataire = $address; //L'email du destinataire.
      $email_expediteur = 'phytime-noreply@auckland.co.nz'; //Compte email de votre hZbergement.
      $sujet = 'Phytime Results';
      $message_texte = 'This is your results';
      $message_html = 'This is your results';
      $burnin='ls phytime/userdata/$buffer/burnin.*[[:digit:]].$';
      $tree='ls phytime/userdata/$buffer/phytime.*[[:digit:]]';
      //==========

      /**************** boundary creation ****************/

      $boundary = "-----=".md5(rand());
      $boundary_alt = "-----=".md5(rand());

      /**************** Header creation ****************/

      $header = "From: \"PhyTime No Reply\"<" . $email_expediteur . ">".$passage_ligne;
      $header.= "Reply-to: \"PhyTime\" <s.guindon@auckland.co.nz>".$passage_ligne;
      $header.= "MIME-Version: 1.0".$passage_ligne;
      $header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"" . $boundary . "\"".$passage_ligne;

      /**************** Data ****************/
      $message = $passage_ligne."--".$boundary.$passage_ligne;
      $message.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
      $message.= $passage_ligne."--".$boundary_alt.$passage_ligne;

      /**************** Text Message ****************/
      $message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
      $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
      $message.= $passage_ligne.$message_txt.$passage_ligne;

      $message.= $passage_ligne."--".$boundary_alt.$passage_ligne;

      /**************** HTML Message ****************/
      $message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
      $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
      $message.= $passage_ligne.$message_html.$passage_ligne;

      //=====On ferme la boundary alternative
      $message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
      //==========

      /**************** Attachment ****************/

      /***************** File 1 ****************/

      //=====Lecture et mise en forme de la pi ce jointe
      $file1 = fopen("phytime/userdata/$buffer/$buffer.txt", "r");
      $attachement = fread($file1, filesize("phytime/userdata/$buffer/$buffer.txt"));
      $attachement = chunk_split(base64_encode($attachement));
      fclose($file1);
      $message.= $passage_ligne."--".$boundary.$passage_ligne;

      //=====Ajout de la pi ce jointe
      $message.= "Content-Type: text/plain; name=\"user.txt\"".$passage_ligne;
      $message.= "Content-Transfer-Encoding: base64".$passage_ligne;
      $message.= "Content-Disposition: attachment; filename=\"user.txt\"".$passage_ligne;
      $message.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne;

      //$message.= $passage_ligne."--".$boundary."--".$passage_ligne;

      /***************** File 2 ****************/

      $file2 = fopen("phytime/userdata/$buffer/burnin.3805", "r");
      $attachement2 = fread($file2, filesize("phytime/userdata/$buffer/burnin.3805"));
      $attachement2 = chunk_split(base64_encode($attachement2));
      fclose($file2);
      $message.= $passage_ligne."--".$boundary.$passage_ligne;

      $message.= "Content-Type: text/plain; name=\"burnin\"".$passage_ligne;
      $message.= "Content-Disposition: attachment; filename=\"burnin\"".$passage_ligne;
      $message.= "Content-Transfer-Encoding: base64".$passage_ligne;
      $message.= $passage_ligne.$attachement2.$passage_ligne.$passage_ligne;

      /***************** File 3 ****************/

      $file3 = fopen("index.php", "r");
      $attachement3 = fread($file3, filesize("index.php"));
      $attachement3 = chunk_split(base64_encode($attachement3));
      fclose($file3);

      $message.= $passage_ligne."--".$boundary.$passage_ligne;

      $message.= "Content-Type: text/plain; name=\"index.php\"".$passage_ligne;
      $message.= "Content-Disposition: attachment; filename=\"index.php\"".$passage_ligne;
      $message.= "Content-Transfer-Encoding: base64".$passage_ligne;
      $message.= $passage_ligne.$attachement3.$passage_ligne.$passage_ligne;
      $message.= $passage_ligne."--".$boundary."--".$passage_ligne;

      /**************** Message Sending ****************/
      mail($destinataire,$sujet,$message,$header);

      ?>

      <?php
      }

      }

      fclose($handle);
      }

      ?>
      0
      1. Contributeur
        Ah, là désolé, je ne saurai pas t'aider plus.
        Désolé.
        0
        1. C'est bon problème résolu. Je pourrai pas expliquer la raison logique, mais j'ai trouvé ce qui ne marchait pas.
          0
          1. Contributeur
            D'accord.

            Tant mieux alors.

            Bonne continuation
            0