使用 Zend_Mail 时添加 PDF 附件

2023-11-21

使用 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('[email protected]', 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(); 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Zend_Mail 时添加 PDF 附件 的相关文章

随机推荐

  • Flutter:检测键盘打开和关闭[重复]

    这个问题在这里已经有答案了 我有一个BottomNavigationBar在我的应用程序的最上层 我想检测应用程序 子树中基本上任何位置的键盘打开和关闭 这样我就可以显示和隐藏BottomNavigationBar每当键盘可见时 这是一个普
  • 如何从 Rust 写入特定的原始文件描述符?

    我需要写入文件描述符 3 我一直在寻找它 但文档很差 我唯一发现的是使用libc图书馆和fdopen方法 但我还没有找到任何关于如何使用它或在其上编写的示例 谁能给我提供一个在 Rust 中写入文件描述符的示例 您可以使用FromRawFd
  • 使用 OCaml 解析语法

    我有一个任务是使用 OCaml 为 玩具 语法编写一个 玩具 解析器 但不确定如何开始 并继续 这个问题 下面是一个 Awk 语法示例 type nonterm term symbol N of nonterm T of term type
  • Microsoft Teams 来电事件

    我想创建一个应用程序 当用户在 MS Teams 中接到电话时会收到通知 我的意思是我想在来电事件中订阅一些内容 然后根据来电信息执行某些操作 这可能吗 到目前为止 我在 SDK 中没有看到任何事件 现在似乎有一个功能可能适合这个 通话记录
  • 当输出分配给变量时获取管道的退出代码(命令替换)[重复]

    这个问题在这里已经有答案了 获取管道命令的退出代码工作正常 echo ABC false true echo PIPESTATUS 0 PIPESTATUS 1 PIPESTATUS 2 Output is 0 1 0 但是当我将输出分配给
  • 可以在套接字上使用 SO_LINGER 设置的“逗留时间”究竟是多少?

    手册页对这个选项几乎没有任何解释 虽然网络上和 StackOverflow 上的答案中有大量可用信息 但我发现那里提供的许多信息甚至是自相矛盾的 那么该设置的真正用途是什么 为什么我需要设置或更改它 当 TCP 套接字断开连接时 系统必须考
  • 为什么在 -[_PFManagedObjectReferenceQueue _queueForDealloc:] 中释放托管对象可能会崩溃?

    我偶尔会看到像这样的堆栈跟踪崩溃 0 libobjc A dylib 0x97dc0edb objc msgSend 27 1 com apple CoreData 0x97edcdc2 PFManagedObjectReferenceQu
  • Azure 权限:无权执行此操作

    所以我有一个数据工厂 它调用一个读取 blob 存储的 Azure 函数 我不明白为什么我会收到此错误 此请求无权执行此操作 是数据工厂 azure 存储还是azure 功能的问题吗 我还向 Storage Blob Data Contri
  • iPhone SDK NSString 转 NSDate

    我通过解析 XML 文件得到了一个字符串 如下所示 Fri 09 Apr 2010 00 00 45 0200 相应的模式应该是 EEE dd MMM yyyy HH mm ss ZZ 但我得到 空 这是我的代码 NSString date
  • 为什么可以将 nullptr 分配给 std::string?

    所以今天我写了一个相当难发现的错误 我将 std string 初始化为 nullptr 不是指向 std string 的指针 而是值本身 我发现显然只能在 C 11 或更高版本中使用 clang 来完成 include
  • 将 ID 添加到 GridView 行

    如何向 GridView 行添加 ID 应该呈现 ID 我正在使用 NET C 我有 GridView 控件 我有一些操作表行的 javascript 函数 但必须有这些行的 ID table tr tr id should come fr
  • 如何在 Android 中对图像应用缩放、拖动和旋转 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有人可以告诉我在 Android 应用程序中对图像应用缩放 拖动和旋转的教程吗 尝试使用下面的代码它对我有用 float lastEvent nul
  • 使用 Oauth 通过 Gmail 进行身份验证后,有没有办法获取您的电子邮件地址?

    在 Python Web 应用程序中 我可以使用 OAuth 和 IMAP 连接到 Gmail OAuth 只需使用您当前登录的任何 Google 帐户 并要求您授予对网络应用程序的访问权限 但是 它不提供 API 来实际检索该帐户的电子邮
  • HttpRequestMessage 和摘要式身份验证

    winrt 中是否有任何内置函数可以将摘要身份验证与 HttpRequestMessage 相关联 或者我是否必须使用其他类才能执行此任务 Thanks 我正在使用HttpClient对于 HttpRequest 消息 这HttpClien
  • 在android编程中使用实用程序类

    我对实用程序类有一点了解 但对需求略有疑问 如果我在我的应用程序中使用实用程序类而不是在我的主活动中使用该类 我是否必须创建该类的对象 或者我可以直接在我的主活动中导入该类吗 如果我没有表达清楚的话 我很抱歉 简而言之 我想清楚的是 基本上
  • 从 XML 中获取具有特定名称的所有节点的值

    我无法以最有效的方式从 XML 获取具有特定名称的节点的所有值 例如 h1 h1
  • 如何用最少的指令将两个四元数相乘?

    经过一番思考 我想出了以下使用 SSE 乘以两个四元数的代码 include
  • 如何获取 tkinter 窗口标题栏的高度

    我试图弄清楚如何获取 tkInter 窗口标题栏的高度 但似乎找不到任何有关如何完成的信息 我尝试过使用root geometry 看来root geometry 仅返回窗口内容的大小 而不返回带有标题栏和边框大小的窗口的总大小 我见过其他
  • GDC 和 DMD 之间的选择

    我是 D 编程新手 选择 DMD 2 061 或 GDC 4 6 4 7 或 4 8 快照 的优缺点是什么 我应该选择哪个 GDC 版本 我已经成功构建了 GCC 4 8 和 GDC 4 8 的最新快照 并且它编译了一个 hello wor
  • 使用 Zend_Mail 时添加 PDF 附件

    使用 Zend Mail 时添加附件的正确方法是什么 当我尝试打开已发送邮件中附加的 pdf 时 不断收到以下错误 无法提取嵌入字体 BAAAAAA ArialMT 某些字符可能无法正确显示或打印 PDF 仅显示表格 不显示字符 这很奇怪