php – 如何在附加和发送文件后取消链接? (使用Mail :: queue时
发布时间:2020-12-13 17:30:38 所属栏目:PHP教程 来源:网络整理
导读:我从发送邮件立即切换到将其添加到队列中,这是我的代码,$attachments是一个临时路径数组,我已经注释掉了我尝试过的内容,这会导致文件不存在的错误. Mail::queue($view,$data,function(IlluminateMailMessage $message) use($mail,$attachments){ foreach(
我从发送邮件立即切换到将其添加到队列中,这是我的代码,$attachments是一个临时路径数组,我已经注释掉了我尝试过的内容,这会导致文件不存在的错误.
Mail::queue($view,$data,function(IlluminateMailMessage $message) use($mail,$attachments){ foreach($mail->getRecipients() as $recipient){ $message->to($recipient); } $message->subject($mail->getSubject()); foreach($attachments as $attachment){ $message->attach($attachment); //this deletes the attachment before being sent //unlink($attachment); } }); /* This code only works when using Mail::send() instead of Mail:queue() foreach($attachments as $attachment){ unlink($attachment); } */ 基本上我想在邮件发送后清理并删除我的临时附件.我猜这不适用于开箱即用的laravel邮件解决方案.如何在队列邮件发送后触发代码? 解决方法
在删除文件之前,您必须等待队列处理完毕.
在不知道队列的实现细节的情况下很难回答您的问题,但如果在脚本结束之前处理了队列,则可以使用register_shutdown_function register_shutdown_function(function() use (filename){ if (file_exists($filename)) { unlink($filename); } }) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |