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);
我知道在 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);