php – 使用Zend_Mail时添加PDF附件
发布时间:2020-12-13 22:21:01 所属栏目:PHP教程 来源:网络整理
导读:使用Zend_Mail时添加附件的正确方法是什么?当我尝试在发送的邮件中打开附加的pdf时,我不断收到以下错误:“无法提取嵌入字体’BAAAAAA ArialMT’.某些字符可能无法正确显示或打印.” PDF仅显示表格但不显示任何字符. 这非常奇怪,因为如果我直接从服务器或我
使用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(); 解决方法
这是正确的方法,
$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(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |