Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Je crise ca moarche poa:
ca c zenk
<?php
require_once 'Zend/Mail.php';
$mail = new Zend_Mail();
// construction du message
$mail->addAttachment($uneChaineBinaire);
$mail->addAttachment($monImage, 'image/gif', Zend_Mime::DISPOSITION_INLINE, Zend_Mime::ENCODING_8BIT);
?>
c koi $unechainebianire?
il semble k il faille implemented Zend_Mime_Part
g essayed:
$file étant mon fichier a joindre
$var=$mail->createAttachment($file, 'image/gif', Zend_Mime::DISPOSITION_INLINE, Zend_Mime::ENCODING_8BIT);
$mail->addAttachment($var);
$mail->send();
resultat
Fatal error: Uncaught exception 'Zend_Mail_Transport_Exception' with message 'No body specified' in C:\www\be\admin\Zend\Mail\Transport\Abstract.php:273 Stack trace: #0 C:\www\be\admin\Zend\Mail\Transport\Abstract.php(302): Zend_Mail_Transport_Abstract->_buildBody() #1 C:\www\be\admin\Zend\Mail.php(642): Zend_Mail_Transport_Abstract->send(Object(Zend_Mail)) #2 C:\www\be\admin\mailing_entreprise.php(149): Zend_Mail->send() #3 C:\www\be\admin\mailing_entreprise.php(105): envoi_mail('essai.jpg', 'Pushrecrut', '', 'Image/jpeg') #4 {main} thrown in C:\www\be\admin\Zend\Mail\Transport\Abstract.php on line 273
MERCI de votre aide
Dernière modification par schum-hacker (14-05-2007 14:43:56)
Hors ligne
Bonjour schum-hacker,
Si tu utilises la fonction createAttachment, tu n'as pas besoin de l'ajouter ta pièce jointe (en utilsant la fonction addAttachment).
Concernant ton problème de 'No body specified', est-ce que tu as bien ajouté un corps à ton mail ? ( par exemple $mail->setBodyText($texte) ).
Bonne journée,
Cyril
Hors ligne
Bonjour,
Ci dessous un exemple d'envois de mail avec fichier attaché avec Zend Framework :
<?php
require_once ‘Zend/Mail.php’;
//Création de l'objet "mail"
$mail = new Zend_Mail();
//On complète avec les élements du mail
$mail->setFrom(‘de@test.com’, ‘De’);
$mail->addTo(‘a@test.com’, ‘A’);
$mail->setSubject(‘Sujet du mail’);
$mail->setBodyText(‘Contenu du mail.’);
//on récupère la "Chaîne Binaire" du fichier à attacher
$file = file_get_contents(‘/path/vers/ton/fichier.extension’);
//On attache
$a = $mail->addAttachment($file);
//Et on envoit.
$a->filename =’nomfichier.extesion';
$mail->send();
?>
That's All
Have Fun.
Hors ligne
please un exemple complet de l utilisation avec une piece jointe
Hors ligne
fincom merci but
$a = $mail->addAttachment($file);
me renvoie
Catchable fatal error: Argument 1 passed to Zend_Mail::addAttachment() must be an instance of Zend_Mime_Part, string given, called in
Hors ligne
require_once 'Zend/Mail.php'; $mail = new Zend_Mail(); $mail->setBodyText($content); $mail->setFrom('expe@dom_exp.com', 'Essai'); $mail->addTo(dest@dom_dest.com); $mail->addBcc('ton-adresse@si_tu_veux.org'); $mail->setSubject('le_sujet'); $file = "monfile.pdf"; if(!file_exists($file)) { // gestion erreur } $at = $mail->addAttachment(file_get_contents($file), 'application/pdf', Zend_Mime::DISPOSITION_INLINE , Zend_Mime::ENCODING_BASE64); $at->filename = substr ($file, strrpos($file, "/")+1); // build message... $config = array( 'ssl' => 'ssl', 'port' => 465, 'auth' => 'login', 'username' =>'username@mon_domaine.com', 'password' => 'mot_de_passe'); require_once 'Zend/Mail/Transport/Smtp.php'; $tr = new Zend_Mail_Transport_Smtp('ssl0.ovh.net', $config); Zend_Mail::setDefaultTransport($tr); $result =$mail->send();
Euh, désolé pour l'identation, le copier/coller est parti en vrille.
Tu remplaces par les bonnes adresses, le bon type de fichier, et c'est parti !
Fred
P.S : ssl0.ovh.net à remplacer aussi
Dernière modification par fred wolf (27-04-2007 13:30:19)
Hors ligne
PKOI ca marche poAAAAAAAAAAAAAAAAAA
la fonction addattachment me renvoie tjs la meme chose!!!!!!!!!!!!!!!!!!!!!!!!!
Catchable fatal error: Argument 1 passed to Zend_Mail::addAttachment() must be an instance of Zend_Mime_Part, string given, called in
Hors ligne
As-tu essayé avec un fichier pdf ? Histoire de valider la manip, vant de te pencher sur le cas d'une image ?
Au fait c'est un vieil exemple, tu peux remplacer file_get_contents par fread ou fpassthru avec les paramètres appropriés.
Hors ligne
Re,
Envois nous le code de ton script, ou au moins précises nous le type mime du fichier attaché.
Hors ligne
ouep mais j arrive poa g essayé ca il me fait pas l erreur a la con mais je recois un fichier sans piece jointe:
$mail = new Zend_Mail();
$mail->setBodyText('Ceci est le message.');
$mail->setFrom('somebody@example.com', 'un expéditeur');
$mail->setSubject('sujet de test');
$mail->createAttachment('toto.jpg', 'image/gif', Zend_Mime::DISPOSITION_INLINE, Zend_Mime::ENCODING_8BIT);
$mail->addTo($val, 'un destinataire');
$mail->send();
Hors ligne
$mail->createAttachment(file_get_contents('toto.jpg'), 'image/gif', Zend_Mime::DISPOSITION_INLINE, Zend_Mime::ENCODING_8BIT);
marche poa non plus
Hors ligne
non plus
$mail->createAttachment($mail->getbody(), 'image/gif', Zend_Mime::DISPOSITION_INLINE, Zend_Mime::ENCODING_8BIT,file_get_contents('toto.jpg'));
Hors ligne
l'erreur vient du fait que vous envoyez une image jpg avec un mime gif
remplacez :
$mail->createAttachment('toto.jpg', 'image/gif', Zend_Mime::DISPOSITION_INLINE, Zend_Mime::ENCODING_8BIT);
par
$mail->createAttachment('toto.jpg', 'image/jpeg', Zend_Mime::DISPOSITION_INLINE, Zend_Mime::ENCODING_8BIT);
Hors ligne
arf ca change rien j ai tjs pas de fichier attaché
Dernière modification par schum-hacker (27-04-2007 14:30:31)
Hors ligne
Dis-moi schum-hacker manquerait-il des touches à ton clavier ? Parce que j'ai un peu de mal à lire tes messages.
Sinon la dispo est en inline, il faudrait mettre attachment peut-être (je ne suis pas sûr) ?
Dernière modification par fred wolf (27-04-2007 14:33:30)
Hors ligne
$mail->addAttachment($mail->getBodyText(), 'image/jpeg', Zend_Mime::DISPOSITION_INLINE, Zend_Mime::ENCODING_8BIT,'toto.jpg');
j ai 2 fois le body
Hors ligne
Si tu veux une piece jointe je crois que, déjà, il faut :
Zend_Mime::DISPOSITION_ATTACHMENT
Hors ligne
C'est normal il me semble que tu aies deux fois le body car au lieu de l'image (lecontenu binaire) tu mets le body :
$mail->addAttachment($mail->getBodyText(), 'image/jpeg', Zend_Mime::DISPOSITION_INLINE, Zend_Mime::ENCODING_8BIT,'toto.jpg');
Dernière modification par fred wolf (27-04-2007 14:37:40)
Hors ligne
merci mais tjs un pb g un tas de chiffre ki apparaisse a la place de l image
Dernière modification par schum-hacker (27-04-2007 14:44:13)
Hors ligne
$fp = fopen('toto.jpg', "rb"); // b c'est pour les windowsiens
$attachment = fread($fp, filesize($file));
fclose($fp);
$attachment = chunk_split(base64_encode($attachment));
$mail->setBodyText($attachment);
$mail->addAttachment($mail->getBodyText(), 'image/jpeg', Zend_Mime::DISPOSITION_ATTACHMENT, Zend_Mime::ENCODING_8BIT,'toto.jpg');
Hors ligne
Bon, c'est un progrès, c'est juste la façon d'encoder l'image qui est pas bonne. Soit dans le type d'encodage, soit le binaire récupéré. Sinon, tu arrives bien à attacher quelque chose.
Hors ligne
ouep
Hors ligne
Attention, entre la 0.9.1 et 0.9.2, les attachements on changé dans Zend_Mail.
le addAttachement($content) ne fonctionne plus, il faut effectivement remplacer ça par un createAttachement ou bien par un addAttachement(Zend_Mime_Part $toto)...
La doc (même anglaise) n'est pas du tout à jour. Voilà un exemple de code...
$mail = new Zend_Mail(); $mail->setBodyText("le corps de mon mail en texte'"); $mail->setBodyHtml("le corps de mon mail en html"); $mail->setFrom("toto@hotmail.com"); $mail->addTo("titi@hotmail.com", "Titi Durand"); $mail->setSubject("mon sujet"); $filename = "toto.pdf"; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); fclose($handle); $mail->createAttachment($contents, 'application/pdf', Zend_Mime::DISPOSITION_INLINE, Zend_Mime::ENCODING_BASE64, 'toto.pdf'); try { $mail->send(); Kitpages_Log::debug("email sent"); } catch (Exception $e) { Kitpages_Log::error("error"); }
A priori un encodage en base64 me parrait plus logique pour un mail... (en tout cas pour le PDF ci dessus, c'est unn code qui marche)
A+, Philippe
Hors ligne
Merci pour l'info Philippe, je pense que j'aurais bien galéré en changeant de version pour trouver le problème
Hors ligne
a part la Class 'Kitpages_Log' que j ai pas
que dire.....
UN grand mais aloras grand MERCI a TOUS ca MARCHE
mercimercimercimercimercimercimercimercimercimerci
une question m interpelle je suis bidon ou c'etait pas si clair que ca l exemple de zend?
Hors ligne