无法加载文档 PHPMailer PDF Base64 字符串

Failed to load document PHPMailer PDF Base64 string

我想使用 BASE64 字符串发送 PDF 文档。 PDF 已发送,但当您 download/open 电子邮件中的 PDF 文档时,它不会加载。我尝试将字符串复制并粘贴到 Chrome 中,它生成了一个 PDF。如何解决?

if(isset($_POST['pdf'])) {
  $base64String = 'data:application/pdf;filename=generated.pdf;base64,JVBERi0xLjMKJbrfrOAKMyAwIG9iago8PC9...';
  $phpmailer->addStringAttachment(base64_decode($base64String) 'セラミック矯正治療のご案内.pdf');
}

该代码不会生成有效的二进制附件,因为完整的 data URL 不是 base64 字符串。从数据中删除 header 并对其进行解码,即在尝试解码之前去除 data:application/pdf;filename=generated.pdf;base64, 前缀。

如果您从 PHP PDF 生成器获取字符串,您应该能够直接从中获取二进制 PDF 字符串,您可以将其直接传递到 PHPMailer,将为您处理编码。