2010-09-17 4 views
1

J'essaye d'envoyer un fichier via la bibliothèque Mail de Zend Framework (1.10.7).Impossible d'envoyer des pièces jointes avec Zend Framework à Gmail et Lotus Notes

$mail = new Zend_Mail(); 
$mail->setSubject('Test'); 
$mail->setFrom('[email protected]'); 
$mail->setBodyText (""); 

$at = $mail->createAttachment($txtFile->toString(), 
           'text/plain', 
           Zend_Mime::DISPOSITION_ATTACHMENT, 
           Zend_Mime::ENCODING_8BIT); 
$mail->addTo ("[email protected]");        
$mail->send(); 

Le fichier est un simple fichier texte. Cela fonctionne avec Outllok, je reçois une pièce jointe correcte, mais pas avec Gmail et Lotus Notes.

Avec Gmail J'ai ce message:

Ceci est un message au format Mime. Si vous voyez ceci, votre lecteur de courrier ne supporte pas ce format.

Lotus Notes dit ceci:

contenu MIME pour ce produit est stocké dans attchment RFC822.eml de $. Échec de l'analyse du contenu MIME: format incorrect dans les données MIME.

Qu'est-ce qui ne va pas avec les pièces jointes de Zend?

Répondre

0

Apparemment, c'était notre logiciel anti-spam qui jouait avec les en-têtes de l'email (en sortie).

0

Le docs indique que le premier paramètre doit être une chaîne binaire de données en cours d'envoi. Certains commentaires suggèrent d'utiliser file_get_contents() pour envoyer une image, cela renvoie bien sûr une chaîne, mais c'est une chaîne de données binaires qui représentent l'image.

Que retourne votre méthode toString() pour le $txtFile? Une chaîne simple telle que

return "This is some plain text"; 

ou renvoie-t-elle des données binaires? Vous pouvez essayer de créer un fichier texte brut avec du contenu, puis en utilisant file_get_contents() sur ce fichier et en utilisant la valeur de retour comme premier paramètre pour l'envoi de la pièce jointe, plutôt que de simplement lui envoyer une chaîne simple.

espoir qui aide.

+0

$ txtFile-> toString() renvoie une chaîne et fonctionne avec Outlook. J'ai un fichier joint dans Outlook. – kevin

+0

Peu importe, avez-vous essayé ma méthode de file_get_contents? Outlook est Microsoft qui en fait un cas particulier, ce qui en fait un mauvais test/benchmark. Rappelez-vous qu'un smilie dans Outlook est un J sur tous les autres clients de messagerie. Avec celui de comportement, vous pourriez lui envoyer n'importe quoi et il pourrait l'accepter/le rendre! –

+0

J'ai les mêmes résultats avec file_get_contents – kevin

Questions connexes