CakeEmail Mandril电子邮件附件未附加

时间:2015-08-14 06:56:13

标签: php email cakephp attachment mandrill

我知道stackoverflow上有很多关于这个问题的类似问题,我已经尝试了所有这些问题,但似乎都没有。

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

guard let nsDictionaryObject = swiftObject as? NSDictionary else {
    "Error could not make NSDictionary in \(self)"
    return
}

2 个答案:

答案 0 :(得分:1)

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

$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);

答案 1 :(得分:0)

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

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