【问题标题】:Send multiple attachment in mail php在邮件php中发送多个附件
【发布时间】:2018-10-31 19:16:13
【问题描述】:
    $uid = md5(uniqid(time()));
    $name = basename($file);

// header
$header = "From: ".$from_name." <".$from_mail.">\r\n";
$header .= "Reply-To: ".$replyto."\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";

// message & attachment
$nmessage = "--".$uid."\r\n";
$nmessage .= "Content-type:text/html; charset=iso-8859-1\r\n";
$nmessage .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$nmessage .= $message."\r\n\r\n";
$path = 'https://childlearning.in/dev/uploads/events/attachment/';
$nmessage .= "--".$uid."\r\n";
foreach($pics as $pic)
{

    $filename = $pic;
    $file = $path.$filename;
    $content = file_get_contents( $file);
    $content = chunk_split(base64_encode($content));

$attachment .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n";
$attachment .= "Content-Transfer-Encoding: base64\r\n";
$attachment .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$attachment .= $content."\r\n\r\n";
$attachment .= "--".$uid."--";


}
$allattach = $attachment;
$nmessage .= $allattach;
//print_r($nmessage);
//die();

if (mail($mailto, $subject, $nmessage, $header)) {
    echo "Sucess"; // Or do something here
} else {
  echo "Fail";
}

这段代码对我来说很好,但它只发送一个附件。我想发送多个附件,每次在邮件中发送附件时只发送第一个数组列表中的附件。我错过了什么,我没有得到。有什么帮助吗?

提前致谢

【问题讨论】:

  • $pics 绝对是一个数组。在foreach() 下方做一个print_r($pic); 并向我们展示它的作用。
  • 2 个附件正在显示

标签: php email


【解决方案1】:

Pics 声明正确?

$pics= scandir('picsorwhatever/');

【讨论】:

  • 好吧,如果它的第一行每次都意味着循环有问题,请尝试在循环内回显附件并在之后发送消息并发布结果
  • 循环工作正常,回显时显示所有附件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-01
  • 2011-03-24
  • 2014-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多