通过电子邮件

时间:2017-08-23 09:27:53

标签: php laravel email laravel-5

我试图看看你是否能够在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)这是否适用于电子邮件,或者我必须在发送电子邮件后删除。

1 个答案:

答案 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
}