在cakepp文件的真实路径中发送带有附件的电子邮件


Sending email with attachment in cakephp file real path

我正在尝试使用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
                                        );