我正在尝试使用cake php发送电子邮件,这是代码
$data = "RSIMT7210;RSIMT7220";
$email = new CakeEmail();
$var = ROOT;
$var = str_replace("api", "", $var);
$attachments = array();
$myArray = explode(';', $data);
foreach($myArray as $sku)
{
$result = $this->Ring->find('first', array('conditions'=>array('sku'=>$sku)));
$ring = $result['Ring'];
$ringItems = explode(' ', $ring['name']);
$styleNumber = $ringItems[0];
$mAttach = $var . "rings/" . "$styleNumber/image/white.jpg";
$email->attachments($mAttach);
}
但它似乎只添加了一个附件。有什么办法可以附加多个文件吗?
attachments()方法允许您添加图像路径的数组。像这个一样更改源代码
$data = "RSIMT7210;RSIMT7220";
$email = new CakeEmail();
$var = ROOT;
$var = str_replace("api", "", $var);
$attachments = array();
$myArray = explode(';', $data);
foreach($myArray as $sku)
{
$result = $this->Ring->find('first', array('conditions'=>array('sku'=>$sku)));
$ring = $result['Ring'];
$ringItems = explode(' ', $ring['name']);
$styleNumber = $ringItems[0];
$mAttach = $var . "rings/" . "$styleNumber/image/white.jpg";
$attachments[] = $mAttach;
}
$email->attachments($attachments);
好的,主要问题是所有附件都有相同的名称。为了使它发挥作用,我不得不用不同的名字。现在我正在使用这个
$attachments[$styleNumber . ".jpg"] = array(
'file' => $mAttach,
'mimetype' => 'image/png',
'contentId' => $styleNumber
);