cra*_*bly 6 swiftmailer laravel laravel-5.4
有没有办法将回调函数传递给 Laravel 的邮件程序?
我正在使用Mail
带有可邮寄类的外观,该类正在发送附件。发送电子邮件后,我想删除附加的文件表单存储。
电子邮件作业正在排队
Mail::to($user)->send(new MyMailable($file));
Run Code Online (Sandbox Code Playgroud)
我无法使用 Mailer 触发事件(https://laravel.com/docs/5.4/mail#events)。原因之一,因为该事件发生在发送电子邮件之前,这意味着我当时无法删除该文件,或者该邮件将没有附件。其次,该应用程序有多个电子邮件作业,有些必须删除附件,有些则不需要。事件数据swiftmailer
只有实例,没有关于作业本身的额外信息(例如可邮寄的数据)。
Laravel 在发送电子邮件时立即触发一个事件。这并不意味着消息已排队,或者用户收到了消息,而是表示消息已发送。
弹出打开您的 EventServiceProvider 并将以下内容添加到 $listen 数组中:
'Illuminate\Mail\Events\MessageSending' => [
'App\Listeners\HandleSentMessage',
],
Run Code Online (Sandbox Code Playgroud)
然后在监听器public function handle()
的方法中HandleSentMessage
,接受MessageSending $event
作为第一个参数,例如:
public function handle(MessageSending $event) {
//do whatever with the event data
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1115 次 |
最近记录: |