CakeEmail Mandril 电子邮件附件未附加

CakeEmail Mandril email attachment not getting attached

我知道在 Whosebug 上有很多关于这个问题的类似问题,我已经尝试了所有这些问题,但 none 似乎有效。

我正在尝试通过 cron 函数发送带有 csv 附件的电子邮件。我的电子邮件正在发送,但没有附件。这是我的代码

$email = new CakeEmail('mandrillSmtp');
$encodedCsv = base64_encode(implode(",",$headers)); 
        //please note that i have debugged encodedCsv. No  errors here

        $email->subject('Report Test');
        $email->from('xxxxx@abc.com');
        $email->to('zzzzz@abc.com');
        $email->emailFormat('html');
        $email->attachments=array(
                array(
                    'content' => $encodedCsv,
                    'type' => "text/csv",
                    'name' => 'report.csv'
                )
            );
        $email->send();

如果您尝试附加 CSV 文件,则需要 CSV 文件的路径,我建议您按如下方式制作附件数组:

 $email->attachments = array(
array('file' => 'pathToCSVFIle/myCSvFile.csv')
        );

大家好,感谢您的帮助。我终于让我的代码工作了。感谢@ndm 提醒你 mandrill api 与 CakeEmail 完全不同(对我来说是短暂的愚蠢时刻)。 我通过使用 tmpfile() 而不是 fopen('php://temp') 解决了无法附加写入 php://temp 输出流的文件的问题。出于某种原因,即使我有他们的 uri,我也无法访问写入临时流的文件 不管怎样,这是我的代码。希望对某人有所帮助

$email = new CakeEmail('mandrillSmtp');
if($handle =tmpfile()){
                    fputcsv($handle, $headers); 
                    fputcsv($data)    ;

                }


        $fileMeta = stream_get_meta_data($handle);
        $uri = $fileMeta['uri'];


        $email->subject('Report Test');
        $email->from('xxx@abc.com');
        $email->to('zzz@abc.com');
        $email->emailFormat('html');
        $email->attachments(array('test.csv'=>array('mimetype'=>'text/csv','file' => $uri)));

        $email->send();

        fclose($handle);