繁体   English   中英

用Php发送带有pdf附件的邮件

[英]Sending mail with a Php with a pdf attachment

我正在尝试从php mail命令发送电子邮件。 到目前为止,我已经可以尝试,但是似乎无法使其与附件一起使用。 我环顾了网上,发现的最佳代码使我想到了这一点:

$fileatt_name = 'JuneFlyer.pdf';
$fileatt_type = 'application/pdf';
$fileatt = 'JuneFlyer.pdf';
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
$data = chunk_split(base64_encode($data));
$MAEmail = "myemail@sbcglobal.net";

mail("$email_address", "$subject", "$message",
"From: ".$MAEmail."\n".
"MIME-Version: 1.0\n".
"Content-type: text/html; charset=iso-8859-1".
"--{$mime_boundary}\n" .
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
"Content-Disposition: attachment;\n" .
" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .$data. "\n\n" ); 

我这样做有两个问题。 首先,电子邮件的内容消失了。

其次,附件上有错误。 “ Adob​​e Reader无法打开June_flyer.pdf,因为它不是受支持的文件类型,或者因为文件已损坏(例如,它作为电子邮件附件发送并且未正确解码)”

关于如何处理的任何想法?

谢谢,

JB

处理邮件和php的最好方法是使用经过良好测试的可靠库-带有附件的电子邮件很容易变得非常讨厌。 我个人推荐SwiftMailer

可能是标题内有问题。 如果您想学习困难的方法,那么请弄清楚如何使用标头配置不同的mimetypes并完成这些工作。

否则,简单的方法是使用PHPmailer或其他电子邮件库,这些将为您完成困难的工作。

学习正确的电子邮件格式以发送附件的过程之一是尝试使用Thunderbird,Outlook等向自己发送电子邮件(带有附件)。

然后查看该电子邮件的来源。 尝试将消息源复制并粘贴到您的PHP代码中(对mail()函数已经处理过的To和From和Subject等标题进行一些修饰)和bada-bing,您就可以拥有所需的一切。

您可以通过用唯一的块或变量替换部分内容(HTML部分,文本部分,附件)来使其动态。

那么就不需要花哨的图书馆了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM