[PHP] mail avec pièce jointe
Résolu/Fermé
mony84
Messages postés
68
Date d'inscription
mercredi 19 juillet 2006
Statut
Membre
Dernière intervention
5 octobre 2010
-
3 août 2007 à 05:48
mony84 Messages postés 68 Date d'inscription mercredi 19 juillet 2006 Statut Membre Dernière intervention 5 octobre 2010 - 6 août 2007 à 07:17
mony84 Messages postés 68 Date d'inscription mercredi 19 juillet 2006 Statut Membre Dernière intervention 5 octobre 2010 - 6 août 2007 à 07:17
A voir également:
- [PHP] mail avec pièce jointe
- Yahoo mail - Accueil - Mail
- 1 pièce jointe - Guide
- Publipostage mail - Accueil - Word
- Windows live mail - Télécharger - Mail
- Live.fr mail - Forum Mail
3 réponses
mony84
Messages postés
68
Date d'inscription
mercredi 19 juillet 2006
Statut
Membre
Dernière intervention
5 octobre 2010
11
3 août 2007 à 12:14
3 août 2007 à 12:14
ça marche, j'ai ajouté ces lignes et j'ai crée un dossier unpload ss le même repertoire que mes fichiers .html et .php
Le problème maintenat c'est que je ne sais pas comment ça va se passer si j'heberge mon site.
c'est sur qu'ils ont un dossier upload propre à tt le serveur (j'imagine)
apparemment, je suis entrain de poser des questions et y répondre moi même .
Le problème maintenat c'est que je ne sais pas comment ça va se passer si j'heberge mon site.
c'est sur qu'ils ont un dossier upload propre à tt le serveur (j'imagine)
if(strlen($_FILES['attachement']['name'])) { $rep = "upload/"; # répertoire temporaire d'upload $erreur = false; // pas encore d'érreur //------------Le message : le 1er fichier $fichier = $_FILES['attachement']; $temp = $fichier['tmp_name']; $name=$fichier['name']; $size=$fichier['size']; $type=$fichier['type']; $destination = $rep.$name; if (!@is_uploaded_file($temp )) {$erreur =true; print( "Téléchargement de ".$name." impossible"); } elseif(!@move_uploaded_file($temp, $destination)) {$erreur = true; print("Problème de transfert de ".$name); } if(!($erreur)) { $text = 'Text version of email'; $html = '<html><body>HTML version of email</body></html>'; $file = $destination; $crlf = "\n";
apparemment, je suis entrain de poser des questions et y répondre moi même .
mony84
Messages postés
68
Date d'inscription
mercredi 19 juillet 2006
Statut
Membre
Dernière intervention
5 octobre 2010
11
6 août 2007 à 07:17
6 août 2007 à 07:17
voila le résumé de la solution:
pour ajouter un autre fichier joint il suffit de faire un autre test sur le 2ème fichier indépendemment du 1er.
include('Mail/Mail.php'); include('Mail/mime.php'); $rep = "upload/"; # répertoire temporaire d'upload if(strlen($_FILES['attachement']['name'])) { $erreur = false; // pas encore d'erreur //------------Le message : le 1er fichier $fichier = $_FILES['attachement']; $temp = $fichier['tmp_name']; $name=$fichier['name']; $size=$fichier['size']; $type=$fichier['type']; $destination = $rep.$name; if (!@is_uploaded_file($temp )) {$erreur =true; print( "Téléchargement de ".$name." impossible"); } elseif(!@move_uploaded_file($temp, $destination)) {$erreur = true; print("Problème de transfert de ".$name); } if(!($erreur)) { $text = 'Text version of email'; $html = '<html><body>HTML version of email</body></html>'; $file = $destination; $crlf = "\n"; $hdrs = array( 'From' => '', 'Subject' => 'c un test', 'To'=>'toto@yahoo.fr', 'Reply-To'=>'toto1@yahoo.fr' ); $params = array( 'host' => 'smtp.c2.corpease.net', 'port' => '25', 'auth'=>true, 'username'=> 'info@smtp.net', 'password' => '-------' ); $mime = new Mail_mime($crlf); $mime->setTXTBody($text); $mime->setHTMLBody($html); $mime->addAttachment($file, $type); $body = $mime->get(); $hdrs = $mime->headers($hdrs); // Create the mail object using the Mail::factory method $mail_object =& Mail::factory("smtp", $params); if (PEAR::isError($mail_object)) { print "<p>construction de l'objet 'Mail' ratée car "; die($mail_object->getMessage()); } else { print "<p>objet 'Mail' construit !"; } $send_result = $mail_object->send('toto@yahoo.fr',$hdrs,$body); if (PEAR::isError($send_result)) { print "This service is not available now. Please try later."; die($send_result->getMessage()); } else { print " An email is sent "; @unlink($destination); //pour liberer le fichier temporaire créé } }}
pour ajouter un autre fichier joint il suffit de faire un autre test sur le 2ème fichier indépendemment du 1er.
mony84
Messages postés
68
Date d'inscription
mercredi 19 juillet 2006
Statut
Membre
Dernière intervention
5 octobre 2010
11
3 août 2007 à 11:27
3 août 2007 à 11:27
j'ai essayé d'envoyer une pièce jointe situé sur ss le même répertoire que mon fichier qui contient le fichier.php et le fichier.html. J'ai réussi à envoyer cette pièce jointe, avec le package mail_mime de PEAR.
Mon problème mnt c'est le fichier qui doit être envoyé par le formulaire. Est ce que je ne peux pas tester la validité de mon code en local?
PS:J'utiliseEasyphp pour developper mon code.
Help!!please
Mon problème mnt c'est le fichier qui doit être envoyé par le formulaire. Est ce que je ne peux pas tester la validité de mon code en local?
include('Mail/Mail.php'); include('Mail/mime.php'); $text = 'Text version of email'; $html = '<html><body>HTML version of email</body></html>'; $file = 'exemple.jpg'; $crlf = "\n"; $hdrs = array( 'From' => 'info@toto.com', 'Subject' => 'Test mime message', 'To'=>'toto@yahoo.fr' ); $params = array( 'host' => 'smtp.c2.corpease.net', 'port' => '25', 'auth'=>true, 'username'=> 'info@toto.com', 'password' => 'xxx' ); $mime = new Mail_mime($crlf); $mime->setTXTBody($text); $mime->setHTMLBody($html); $mime->addAttachment($file, 'images/jpg'); //do not ever try to call these lines in reverse order $body = $mime->get(); $hdrs = $mime->headers($hdrs); // Create the mail object using the Mail::factory method $mail_object =& Mail::factory("smtp", $params); if (PEAR::isError($mail_object)) { print "<p>construction de l'objet 'Mail' ratée car "; die($mail_object->getMessage()); } else { print "<p>objet 'Mail' construit !"; } $send_result = $mail_object->send('toto@yahoo.fr',$hdrs,$body); if (PEAR::isError($send_result)) { print "<table > <tr><td bgcolor='#B22222'><font color='#FFFFFF'> This service is not available now. Please try later.</font> </td></tr> </table> "; die($send_result->getMessage()); } else { print "<table > <tr><td bgcolor='#B22222'><font color='#FFFFFF'> An email is sent </font> </td></tr> </table"; } ?>
PS:J'utiliseEasyphp pour developper mon code.
Help!!please