Programmation php
Résolu
MatthieuG
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
a70m Messages postés 2763 Date d'inscription Statut Contributeur Dernière intervention -
a70m Messages postés 2763 Date d'inscription Statut Contributeur Dernière intervention -
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 à la ligne php ✓ - Forum PHP
- Problème de programmation digicode extel klavy 3 ✓ - Forum Loisirs / Divertissements
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