在php中用pdf附件发送电子邮件
新的PHP。 我需要发送电子邮件与pdf附件。我可以发送附件的电子邮件。 但无法打开PDF。 我得到了这样的一些错误
将信息存储到数据库(完成),向员工发送包含新客户信息(完成)的电子邮件,并向客户发送带有pdf文件附件(不工作)的“感谢消息”电子邮件。 我的意思是,客户确实收到一封电子邮件,但是当他/她打开PDF文件时,我收到以下错误消息:
“Acrobat无法识别'file_name',因为它不是受支持的文件类型,或者是因为文件已损坏(例如,它是作为电子邮件附件发送的,未正确解码)......”
如果有人能帮我解决这个问题,那就太好了。 谢谢!
这是我的代码:
$to = 'form@kronova.in, ' . $Email;
$subject = 'ABC :: Admission Form Details';
$repEmail = 'form@kronova.in';
$fileName = 'ABC-Admission.pdf';
$fileatt = $pdf->Output($fileName, 'E');
$attachment = chunk_split($fileatt);
$eol = PHP_EOL;
$separator = md5(time());
$headers = 'From: Principal abc <'.$repEmail.'>'.$eol;
$headers .= 'MIME-Version: 1.0' .$eol;
$headers .= "Content-Type: multipart/mixed; boundary="".$separator.""";
$message = "--".$separator.$eol;
$message .= "Content-Transfer-Encoding: 7bit".$eol.$eol;
$message .= "Thanks for filling online application form. Your online admission registration number is E0000". mysql_insert_id() . "." .$eol;
$message .= "--".$separator.$eol;
$message .= "Content-Type: text/html; charset="iso-8859-1"".$eol;
$message .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
$message .= "--".$separator.$eol;
$message .= "Content-Type: application/pdf; name="".$fileName.""".$eol;
$message .= "Content-Transfer-Encoding: base64".$eol;
$message .= "Content-Disposition: attachment".$eol.$eol;
$message .= $attachment.$eol;
$message .= "--".$separator."--";
if (mail($to, $subject, $message, $headers)){
echo "Email sent";
}
else {
echo "Email failed";
我会建议使用一个框架来为你做繁重的工作。 看看Zend框架2.你想要实现的东西可以用几行代码完成。
文档非常详尽。 看看这个页面上的快速入门指南。
http://framework.zend.com/manual/2.3/en/modules/zend.mail.message.html
正如其他人所建议的那样,直接使用邮件功能非常麻烦,容易出错,并且只会给您带来更多问题。
只需将application/pdf
更改为application/octet-stream