Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 28-04-2010 11:13:18

madef
Nouveau membre
Date d'inscription: 28-04-2010
Messages: 2

[Zend_Mail][1.9.6] Pièce jointe vide.

Bonjour,

Je travail à l'envoi de mails et de pièces jointes.  Le mail seul marche très bien, il arrive à destination, et tout est OK. Par contre si le mail est envoyé avec un pièce jointe, plus rien n'est ok. Si le mail arrive bien à destination avec le bon titre, le bon émetteur et destinataire, le corps est vide et la pièce jointe (sous gmail) apparait comme un fichier de 0ko avec pour nom 'noname'. Ce problème semble assez fréquent (le nombre de sujet ici sont assez conséquents), mais rien ne m'a permit de trouver une solution.

Je me suis dis, que le problème devait être lié à l'encodage. J'ai testé pas mal de chose de ce coté sans résultat. Je me demande donc si cela ne peut pas venir du "transporteur" ? Qu'en pensez vous ?


Ci dessous un exemple de code que j'ai utilisé.

Code:

$mail = new Zend_Mail();
$mail->setType(Zend_Mime::MULTIPART_RELATED); //Testé avec et sans
$mail->setFrom('blabla@blabla.com', 'xxxx');
$mail->addTo(''blabla@blabla.com', 'yyy');
$mail->setSubject('Title');
$mail->setBodyText('Body');
$filename = '/path/to/my/file.txt';
$contents = file_get_contents($filename); // Testé avec la fonction base64_encode()
$at = $mail->createAttachment($contents);
$at->type        = 'text/plain';
$at->disposition = Zend_Mime::DISPOSITION_ATTACHMENT;
$at->encoding    = Zend_Mime::ENCODING_BASE64; // Testé avec 8BIT
$at->filename    = 'file.txt';
$mail->send();

Hors ligne

 

#2 28-04-2010 12:24:13

Blount
Membre
Date d'inscription: 23-06-2009
Messages: 98
Site web

Re: [Zend_Mail][1.9.6] Pièce jointe vide.

Si cela peut t'aider, voici comment j'envoie un fichier PDF :

Code:

$pdf = new Zend_Mime_Part($content); // après un file_get_content par exemple
$pdf->type        = 'application/pdf';
$pdf->disposition = Zend_Mime::DISPOSITION_INLINE;
$pdf->encoding    = Zend_Mime::ENCODING_BASE64;
$pdf->filename    = 'fichier.pdf';

$mail = new Model_Mail();
$mail->addAttachment($pdf);
$mail->setSubject('Sujet du mail');
$mail->setBodyHtml('un contenu', 'UTF-8');

$mail->addTo('test@localhost');
$mail->send();

Et cela fonctionne parfaitement.

Hors ligne

 

#3 28-04-2010 13:04:11

madef
Nouveau membre
Date d'inscription: 28-04-2010
Messages: 2

Re: [Zend_Mail][1.9.6] Pièce jointe vide.

Merci. Mais ça ne marche pas mieux chez moi.

Le mail part bien, mais pas de body ni de PJ. Enfin cette dernière est soit disant vide et nommée noname.

D'après les sources du mail, le fichier apparait bien. En voici un exemple :

Code:

 
                                                                                                                                                                                                                                                               
Delivered-To: someone@somewhere.fr
Received: by XX.XX.XX.XX with SMTP id xxxxxxxxx;
        Wed, 28 Apr 2010 03:53:51 -0700 (PDT)
Received: by 10.216.185.139 with SMTP id xxxxxxx.xx.xxxxxx;
        Wed, 28 Apr 2010 03:53:50 -0700 (PDT)
Return-Path: <>
Received: from smtp0.somewhere.fr (smtp0.somewhere.fr [XX.XX.XX.XX])
        by mx.google.com with ESMTP id 20.2010.04.28.03.53.49;
        Wed, 28 Apr 2010 03:53:50 -0700 (PDT)
Received-SPF: pass (google.com: best guess record for domain of smtp0.somewhere.fr designates ... as permitted sender) client-ip=....;
Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of smtp0.somewhere.fr designates .... as permitted sender) smtp.mail=
Received: from blabla.somewhre.fr (smtp....])
    ......
Received: from 
       .......
Received: from
       .......
Date: Wed, 28 Apr 2010 10:51:26 +0000
Subject: Sujet du mail
To:someone@somewhere.fr
Message-id: <...>
MIME-version: 1.0
Content-type: multipart/mixed; boundary="Boundary_()"

This is a message in Mime Format.  If you see this, your mail reader does not support this format.

--_e32903b077a18bed0682eb067ede7f40
Content-Type: text/html; charsetUTF-8
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

un contenu
--_e32903b077a18bed0682eb067ede7f40
Content-Type: application/pdf
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename"fichier.pdf"

JVBERi0xLj[...]Vq3fw=
--_e32903b077a18bed0682eb067ede7f40--

--Boundary_()--

Ne sachant pas lire ce dernier. Y a t-il quelque chose d'anormale ?

Dernière modification par madef (28-04-2010 13:07:42)

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