Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je cherchai depuis 2 jours à joindre un fichier avec Zend_mail.
Sur le papier rien de plus simple, rajouter une partie mime avec le fichier en pièce jointe.
Comme c'est écrit ici...
http://stackoverflow.com/questions/1019 … ttachments
Mais voila une sale erreur apparaissait dès que j'envoyai des fichiers non texte brut de plus de 8ko....
Notice: fwrite() [function.fwrite]: send of 8192 bytes failed with errno=10054 Une connexion existante a dû être fermée par l’hôte distant.
La solution.... utilisé Mime::ENCODING_BASE64
$file = new MimePart($content); $file->filename = $name; $file->charset = 'utf-8'; $file->encoding = \Zend\Mime\Mime::ENCODING_BASE64; $file->disposition = \Zend\Mime\Mime::DISPOSITION_ATTACHMENT; $file->type = $type;
Vu le peu de source sur le sujet j'espère que ça aidera du monde.
A+
Hors ligne
Bonjour,
Je remonte le topic car j'ai un gros problème avec les pièces jointe.
Cela fait deux jours que je recherche la solution sur le net sans rien trouver.
Je reçoit le mail suivant :
Emetter : MAILER-DAEMON via mailrelay1.ispfr.net
Fichier joint : noname de 4ko (au lieu e 2.5 ko)
Je met mon code php desfois que j'ai fait une bêtise :
[lang=php] function sendMail($htmlBody, $textBody, $subject, $to, $piece_jointe = null) { $htmlPart = new \Zend\Mime\Part($htmlBody); $htmlPart->type = "text/html"; $textPart = new \Zend\Mime\Part($textBody); $textPart->type = "text/plain"; if($piece_jointe != null) { $attachment = new \Zend\Mime\Part(fopen('public/images/upload/'.$piece_jointe, 'r')); $attachment->type = 'application/pdf'; $attachment->charset = 'utf-8'; $attachment->encoding = \Zend\Mime\Mime::ENCODING_BASE64; $attachment->disposition = \Zend\Mime\Mime::DISPOSITION_ATTACHMENT; $attachment->filename = $piece_jointe; echo $piece_jointe;//affiche bien le non de ma pièce jointe } $body = new \Zend\Mime\Message(); $body->setParts(array($textPart, $htmlPart, $attachment)); $headers = new \Zend\Mail\Headers; $headers->addHeaderLine("Content-type: multipart/mixed"); $message = new \Zend\Mail\Message(); $message->setFrom("mail@gmail.com", "Mon nom"); $message->setSubject($subject); $message->setEncoding("UTF-8"); $message->setBody($body); $message->setHeaders($headers); $message->SetTo($to); $transport = new \Zend\Mail\Transport\Sendmail(); $transport->send($message); }
Hors ligne
ton code à l'aire correct,
essaye :
file_get_contents('public/images/upload/'.$piece_jointe)
au lieu de
fopen('public/images/upload/'.$piece_jointe, 'r')
pour le reste je croix que ta déclaration de header n'est pas nécessaire
Dernière modification par aromatix (01-05-2013 21:17:27)
Hors ligne