Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-01-2013 15:20:52

Darkroll
Membre
Date d'inscription: 23-05-2010
Messages: 17

[Astuce] Ajouter une pièce jointe avec zend mail

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....

Code:

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

Code:

            $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

 

#2 28-04-2013 20:39:23

irumi
Membre
Date d'inscription: 29-04-2011
Messages: 47

Re: [Astuce] Ajouter une pièce jointe avec zend mail

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 :

Code:

[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

 

#3 01-05-2013 10:08:23

aromatix
Membre
Lieu: paris - agadir
Date d'inscription: 12-03-2013
Messages: 20
Site web

Re: [Astuce] Ajouter une pièce jointe avec zend mail

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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages