【发布时间】:2013-03-03 19:16:51
【问题描述】:
我正在尝试在 php 中实现邮件功能,它与单个附件一起工作正常,但问题是当我尝试发送多个附件时,它不起作用。我正在使用 php mail() 函数发送电子邮件,我正在尝试附加 PDF 和图像文件。如果附加 PDF,则不会附加图像,如果附加图像,则不会附加 PDF。有什么想法我做错了吗?
$header .= 'From: test <noreply@test.ae>' . "\r\n";
$header .= "MIME-Version: 1.0\r\n";
$file = '1.png'
$displayname = '1.png';
$file_size = filesize($file);
$handle = fopen($file, "r");
$content = fread($handle, $file_size);
fclose($handle);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$name = basename($file);
$filepdf = '1.pdf'
$displaynamepdf= '1.pdf';
$file_sizepdf = filesize($filepdf);
$handlepdf = fopen($filepdf, "r");
$contentpdf = fread($handlepdf, $file_sizepdf);
fclose($handlepdf);
$contentpdf = chunk_split(base64_encode($contentpdf));
$name = basename($file);
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: application/octet-stream; name=\"".$displayname."\"\r\n"; // use different content types here
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$displayname."\"\r\n\r\n";
$header .= $content."\r\n\r\n";
$header .= "Content-Type: application/octet-stream; name=\"".$displaynamepdf."\"\r\n"; // use different contentpdf types here
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$displaynamepdf."\"\r\n\r\n";
$header .= $contentpdf."\r\n\r\n";
$header .= "--".$uid."--";
if (mail($to, $subject, "", $header)) {
return 'sent';
} else {
return 'not sent';
}
【问题讨论】:
-
我的 2¢:尝试使用 PHPMailer 或 swiftmailer。
-
是的,如果可以,请使用库 - 有很多问题需要很多聪明人花费大量时间才能解决。我喜欢 PHPMailer。该问题可能很小,并且取决于您的 SMTP 服务器类型。图书馆会处理这些问题。
-
Mihai 已经谈到了这一点,但是 php
mail()通常不适用于任何实际项目。我建议 PHPMailer。设置需要5分钟,非常强大。我不推荐任何 PEAR 邮件模块。 -
@Mihai 我从未使用过 swiftmailer。比 PHPMailer 有什么优势?
-
@Mihai 我得到了 PHPMailer 的解决方案,非常感谢您的建议...
标签: php email email-attachments