Programmation php

Résolu/Fermé
MatthieuG Messages postés 12 Date d'inscription mardi 23 mars 2010 Statut Membre Dernière intervention 21 avril 2010 - 20 avril 2010 à 05:20
a70m Messages postés 2763 Date d'inscription jeudi 21 mai 2009 Statut Contributeur Dernière intervention 2 février 2014 - 21 avril 2010 à 07:30
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 !
A voir également:

5 réponses

a70m Messages postés 2763 Date d'inscription jeudi 21 mai 2009 Statut Contributeur Dernière intervention 2 février 2014 217
20 avril 2010 à 08:04
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
MatthieuG Messages postés 12 Date d'inscription mardi 23 mars 2010 Statut Membre Dernière intervention 21 avril 2010
Modifié par MatthieuG le 20/04/2010 à 11:20
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
a70m Messages postés 2763 Date d'inscription jeudi 21 mai 2009 Statut Contributeur Dernière intervention 2 février 2014 217
20 avril 2010 à 08:26
Ah, là désolé, je ne saurai pas t'aider plus.
Désolé.
0
MatthieuG Messages postés 12 Date d'inscription mardi 23 mars 2010 Statut Membre Dernière intervention 21 avril 2010
21 avril 2010 à 00:26
C'est bon problème résolu. Je pourrai pas expliquer la raison logique, mais j'ai trouvé ce qui ne marchait pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
a70m Messages postés 2763 Date d'inscription jeudi 21 mai 2009 Statut Contributeur Dernière intervention 2 février 2014 217
21 avril 2010 à 07:30
D'accord.

Tant mieux alors.

Bonne continuation
0