通过电子邮件发送pdf附件,但pdf损坏

埃德姆·埃斯(Erdem Ece)

我使用下面的功能在Drupal模块中发送带有附件的电子邮件。docx可以doc很好地发送发送文档,但是当通过电子邮件发送PDF时,PDF文件的大小与原始文件大小不同,并且无法打开文档。我不知道为什么会这样。有人可以帮我吗?谢谢。

<?php

 $file = "http://website.com/files/211546865_file.pdf";

 function mail_attachment($to, $subject, $message, $from, $file) {

  $filename = basename($file);
  $file_size = filesize($file);
  $content = chunk_split(base64_encode(file_get_contents($file))); 
  $uid = md5(uniqid(time()));
  $from = str_replace(array("\r", "\n"), '', $from); // to prevent email injection
  $header = "From: ".$from."\r\n"
  ."MIME-Version: 1.0\r\n"
  ."Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n"
  ."This is a multi-part message in MIME format.\r\n" 
  ."--".$uid."\r\n"
  ."Content-type:text/html; charset=ISO-8859-1\r\n"
  ."Content-Transfer-Encoding: 7bit\r\n\r\n"
  .$message."\r\n\r\n"
  ."--".$uid."\r\n"
  ."Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"
  ."Content-Transfer-Encoding: base64\r\n"
  ."Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n"
  .$content."\r\n\r\n"
  ."--".$uid."--"; 

  return mail($to, $subject, "", $header);
 }

?>
优点

边界应该看起来像

Content-Type: multipart/alternative; boundary="--------A4D921C2D10D7DB"

含义-少包含两个“-”字符。查看任何电子邮件的来源。

另一方面,邮件结尾边界可能看起来像

----------A4D921C2D10D7DB--

(再次,请参阅任何邮件的来源。或者,当然请阅读RFC :))。

我鼓励您使用exisitng邮件程序类,例如Swift MailerPHPMailer

让我知道我是否可以为您提供更多帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过电子邮件将Google文档作为PDF附件发送

来自分类Dev

通过电子邮件将Google文档作为PDF附件发送

来自分类Dev

如何使用PHP生成多个PDF并通过电子邮件附件发送?

来自分类Dev

通过Access通过电子邮件发送PDF

来自分类Dev

使用按钮通过电子邮件将Excel表格的一部分作为PDF附件通过电子邮件发送

来自分类Dev

生成pdf并通过电子邮件发送

来自分类Dev

如何使用MFMailComposeViewContoller通过电子邮件发送pdf?

来自分类Dev

“ PDF文件的验证失败。” 尝试通过电子邮件发送生成的PDF时-Docusign

来自分类Dev

当我使用 Apps Script 将工作表转换为 pdf 并通过电子邮件发送时,我收到损坏的 PDF

来自分类Dev

SQL sp_send_dbmail发送带有附件的电子邮件,pdf文件已损坏

来自分类Dev

Google Apps脚本:通过电子邮件发送PDF而不是.zip文件

来自分类Dev

通过电子邮件发送报告PDF时触发MS Access Macro

来自分类Dev

Rails 4-邪恶的pdf文件通过电子邮件发送

来自分类Dev

带有Graph的Laravel PDF生成并通过电子邮件发送

来自分类Dev

php发送带有PDF附件的电子邮件

来自分类Dev

php发送带有PDF附件的电子邮件

来自分类Dev

使用codeigniter编辑现有的pdf文件,并通过电子邮件发送给该编辑pdf文件

来自分类Dev

通过电子邮件发送链接

来自分类Dev

通过电子邮件发送评级

来自分类Dev

使用我的GPG公钥发送电子邮件:尝试了解如何加密PDF,我将通过电子邮件发送

来自分类Dev

如何在 CodeIgniter 中使用自己的电子邮件库通过电子邮件库发送附件

来自分类Dev

创建CSV,压缩和通过电子邮件发送附件的最佳方法

来自分类Dev

如何从命令行通过电子邮件发送附件

来自分类Dev

使用SendMessage通过电子邮件发送文件附件而不保存文件

来自分类Dev

通过电子邮件发送文本文件附件

来自分类Dev

如何从命令行通过电子邮件发送附件

来自分类Dev

通过电子邮件Ruby on Rails发送“ carrierwave” gem附件

来自分类Dev

使用SendMessage通过电子邮件发送文件附件而不保存文件

来自分类Dev

使用SMTP服务器通过电子邮件发送附件

Related 相关文章

  1. 1

    通过电子邮件将Google文档作为PDF附件发送

  2. 2

    通过电子邮件将Google文档作为PDF附件发送

  3. 3

    如何使用PHP生成多个PDF并通过电子邮件附件发送?

  4. 4

    通过Access通过电子邮件发送PDF

  5. 5

    使用按钮通过电子邮件将Excel表格的一部分作为PDF附件通过电子邮件发送

  6. 6

    生成pdf并通过电子邮件发送

  7. 7

    如何使用MFMailComposeViewContoller通过电子邮件发送pdf?

  8. 8

    “ PDF文件的验证失败。” 尝试通过电子邮件发送生成的PDF时-Docusign

  9. 9

    当我使用 Apps Script 将工作表转换为 pdf 并通过电子邮件发送时,我收到损坏的 PDF

  10. 10

    SQL sp_send_dbmail发送带有附件的电子邮件,pdf文件已损坏

  11. 11

    Google Apps脚本:通过电子邮件发送PDF而不是.zip文件

  12. 12

    通过电子邮件发送报告PDF时触发MS Access Macro

  13. 13

    Rails 4-邪恶的pdf文件通过电子邮件发送

  14. 14

    带有Graph的Laravel PDF生成并通过电子邮件发送

  15. 15

    php发送带有PDF附件的电子邮件

  16. 16

    php发送带有PDF附件的电子邮件

  17. 17

    使用codeigniter编辑现有的pdf文件,并通过电子邮件发送给该编辑pdf文件

  18. 18

    通过电子邮件发送链接

  19. 19

    通过电子邮件发送评级

  20. 20

    使用我的GPG公钥发送电子邮件:尝试了解如何加密PDF,我将通过电子邮件发送

  21. 21

    如何在 CodeIgniter 中使用自己的电子邮件库通过电子邮件库发送附件

  22. 22

    创建CSV,压缩和通过电子邮件发送附件的最佳方法

  23. 23

    如何从命令行通过电子邮件发送附件

  24. 24

    使用SendMessage通过电子邮件发送文件附件而不保存文件

  25. 25

    通过电子邮件发送文本文件附件

  26. 26

    如何从命令行通过电子邮件发送附件

  27. 27

    通过电子邮件Ruby on Rails发送“ carrierwave” gem附件

  28. 28

    使用SendMessage通过电子邮件发送文件附件而不保存文件

  29. 29

    使用SMTP服务器通过电子邮件发送附件

热门标签

归档