我试图将文件附加到laravel中的电子邮件,但无论我做什么,我都无法让它工作。它发送电子邮件但没有附件。不会给出任何错误。
public function sendCv($job)
{
$cv = \App\File::where('id', Auth::user()->details->cv_id)->first();
$cv_path = storage_path(). '/uploads/files/' . Auth::user()->id . "/" . $cv->identifier . "/" . $cv->name;
$data = [];
Mail::send('email.apply', $data, function ($message) use ($job, $cv_path) {
$message->to('test@test.com')->from(Auth::user()->email)->subject('Application');
$message->attach($cv_path);
});
}
它还将我的电子邮件的'to'部分设置为mac mail中的'英国假期',我无法找出原因?
任何人都可以帮助并告知为什么这不起作用
编辑:
在 - >中添加第二个参数,以方法排序英国的假期,但关于我已经完成的故障排除。
我倾倒并且死了路径,以确保它是正确的,它是。我检查了文件是否存在,确实存在。我使路径不正确,然后给我一个错误(这表明它使用正确的路径)
使用相同的路径设置文件下载工作正常
$cv_path = storage_path(). '/uploads/files/' . Auth::user()->id . "/" . $cv->identifier . "/" . $cv->name;
$headers = array(
'Content-Type: application/pdf',
'Content-Type: application/octet-stream',
);
return Response::download($cv_path, $cv->name, $headers);
这样可以正常下载文件。
答案 0 :(得分:3)
如果你想附加多个文件:
$path =[];
$path[] = '../path/your/number/one/file';
$path[] = '../path/your/number/two/file';
$data_mail = Mail::send($tmp, array('msg'=>$msg), function($message) use ($path) {
$message->from('xxx@xxx.com', $_POST['subj'] );
$message->to($_POST['to'])->subject($_POST['subj'] );
$size = sizeOf($path); //get the count of number of attachments
for( $i=0; $i<$size; $i++ ){
$message->attach($path[$i]); // change i to $i
}
},true);