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
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
A voir également:
- Programmation php
- Easy php - Télécharger - Divers Web & Internet
- Application de programmation - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- \R php ✓ - Forum PHP
- Programmation télécommande porte de garage brico depot - Forum Matériel & Système
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
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
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
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
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);
}
?>
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);
}
?>
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
20 avril 2010 à 08:26
Ah, là désolé, je ne saurai pas t'aider plus.
Désolé.
Désolé.
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
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.
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
21 avril 2010 à 07:30
D'accord.
Tant mieux alors.
Bonne continuation
Tant mieux alors.
Bonne continuation