Невозможно отправить вложения с Zend Framework в Gmail и Lotus Notes - PullRequest
1 голос
/ 17 сентября 2010

Я пытаюсь отправить файл через почтовую библиотеку Zend Framework (1.10.7).

$mail = new Zend_Mail();
$mail->setSubject('Test');
$mail->setFrom('hello@ex.com');
$mail->setBodyText ( "" );

$at = $mail->createAttachment($txtFile->toString(), 
                                'text/plain', 
                                Zend_Mime::DISPOSITION_ATTACHMENT, 
                                Zend_Mime::ENCODING_8BIT);
$mail->addTo ( "hi@you.com" );                              
$mail->send();

Файл представляет собой простой текстовый файл. Он работает с Outllok, я получаю правильное вложение, но не с Gmail и Lotus Notes.

С Gmail у меня есть это сообщение:

Это сообщение в формате Mime. Если вы видите это, ваш почтовый ридер не поддерживает этот формат.

Lotus Notes говорит следующее:

Содержимое MIME для этого элемента хранится в атрибуте $ RFC822.eml. Не удалось выполнить синтаксический анализ содержимого MIME: неверный формат данных MIME.

Что не так с вложениями Zend's Mail?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2010

По-видимому, это было наше антиспамовое программное обеспечение, которое связывалось с заголовками писем (в выводе).

0 голосов
/ 19 сентября 2010

документы говорят, что первый параметр должен быть двоичной строкой данных, которые отправляются.

В некоторых комментариях предлагается использовать file_get_contents() для отправки изображения, это, конечно, возвращает строку, но это строка двоичных данных, представляющих изображение.

Что ваш toString() метод возвращает для $txtFile? Простая строка типа

return "This is some plain text"; 

или он возвращает двоичные данные?

Возможно, вы захотите попробовать создать простой текстовый файл с некоторым содержимым, затем использовать file_get_contents() для этого файла и использовать возвращаемое значение в качестве первого параметра для отправки вложения, а не просто отправлять ему обычную строку. *

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...