我试图看看你是否能够在Laravel中通过电子邮件发送后删除文件
Mail::send('emails.attendance', ['user' => $authUser], function ($m) use ($authUser) {
$m->from('hello@app.com', 'Your Application');
$m->to($authUser->email, $authUser->first_name.' '.$authUser->last_name);
$m->subject('Faith App - Attendance Data '.$authUser->id);
$m->attach($filePath)->deleteFileAfterSend(true);
});
我只是想知道->deleteFileAfterSend(true)
这是否适用于电子邮件,或者我必须在发送电子邮件后删除。
答案 0 :(得分:1)
基本上deleteFileAfterSend仅在处理二进制文件响应时取消链接文件,然后您可以尝试unlink()
unlink($filePath);
如果您的文件来自存储空间,您可以使用:
Storage::delete($filePath);
所以最终的代码如下:
Mail::send('emails.attendance', ['user' => $authUser], function ($m) use ($authUser) {
$m->from('hello@app.com', 'Your Application');
$m->to($authUser->email, $authUser->first_name.' '.$authUser->last_name);
$m->subject('Faith App - Attendance Data '.$authUser->id);
$m->attach($filePath);
});
if(!Mail::failures()){
//Unlink the attachement file from local
unlink($filePath);
//delete file from storage
//Storage::delete($filePath);//Uncomment this, if using storage
}