Добавление вложения PDF при использовании Zend Mail
Как правильно добавить вложение при использовании Zend_Mail? Я постоянно получаю следующую ошибку, когда пытаюсь открыть вложенный pdf в отправленном письме: "не удается извлечь встроенный шрифт 'BAAAAAA+ArialMT'. Некоторые символы могут отображаться или печататься неправильно."PDF показывает только таблицу, но без символов.
Это очень странно, потому что PDF открывается автоматически, если я загружаю его непосредственно с сервера или на моем локальном хосте.
Это код, который я использовал для отправки прикрепление:
$html = $view->render('email/invoice.phtml');
$mail = new Zend_Mail("utf-8");
$file = PUBLIC_PATH . DS . 'data' . DS . $invoice . '.pdf';
$at = new Zend_Mime_Part(file_get_contents($file));
$at->filename = basename($file);
$at->disposition = Zend_Mime::DISPOSITION_ATTACHMENT;
$at->encoding = Zend_Mime::ENCODING_8BIT;
$mail->addAttachment($at);
/* Here i add the attachment */
$mail->setBodyHtml($html);
$mail->addTo($order->email, 'Factura '. $invoice . ' '.Zend_Registry::get('siteName'));
$mail->setFrom('vanzari@anunt.com', Zend_Registry::get('siteName'));
$mail->setSubject('Factura '. $invoice . ' '.Zend_Registry::get('siteName'));
$mail->send();
1 ответ:
Вот правильный способ сделать это,
$mail = new Zend_Mail(); $mail->setBodyHtml("description"); $mail->setFrom('id', 'name'); $mail->addTo(email, name); $mail->setSubject(subject); $content = file_get_contents("path to pdf file"); // e.g. ("attachment/abc.pdf") $attachment = new Zend_Mime_Part($content); $attachment->type = 'application/pdf'; $attachment->disposition = Zend_Mime::DISPOSITION_ATTACHMENT; $attachment->encoding = Zend_Mime::ENCODING_BASE64; $attachment->filename = 'filename.pdf'; // name of file $mail->addAttachment($attachment); $mail->send();