Programmation php
Résolu
MatthieuG
Messages postés
15
Statut
Membre
-
a70m Messages postés 3121 Statut Contributeur -
a70m Messages postés 3121 Statut Contributeur -
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 !
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:
- Programmation php
- Application de programmation - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Retour à la ligne php ✓ - Forum PHP
5 réponses
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
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
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);
}
?>
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);
}
?>
C'est bon problème résolu. Je pourrai pas expliquer la raison logique, mais j'ai trouvé ce qui ne marchait pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question