【发布时间】:2019-04-05 18:37:53
【问题描述】:
目前,我正在使用 Laravel 5.7 项目
现在我正在发送Laravel Notification(电子邮件、短信和 OneSignal 推送)
用户电子邮件是可选的(使用手机登录)。 现在我想发送电子邮件当且仅当电子邮件地址由用户提供,否则我发送短信和推送通知将始终发送(电子邮件和短信)
在我检查的通知中
public function toMail($notifiable)
{
if($this->user->email != null){
return $(new MailMessage())->subject(__('Received Test Email :app_name', ['app_name' => app_name()]))->view('mail.testView');
}
return false;
}
如果有电子邮件地址,则电子邮件发送成功,但如果没有电子邮件地址,则执行return false 并且队列失败并重新尝试再次发送队列永远不会停止
如果电子邮件地址不可用,我如何不排队电子邮件
【问题讨论】:
-
首先 if($emailAvailable = 1) 它应该是 if($emailAvailable == 1) 否则它总是 true 。第二,你从哪里得到 $emailAvailable?
-
我已经更新了StackOverflow的代码,实际逻辑有一些数据不能共享,所以实际情况有点像
if($this->user->email == 1)。我提出的条件是正确的,请放心。我想知道的是,如果电子邮件地址不可用,如何跳过发送邮件。 -
你确定是
$this->user->email == 1而不是$this->user->email == 'some@email.com'? -
点击此链接可能会对您有所帮助:stackoverflow.com/questions/47742370/…
-
检查Queues页面上的“作业失败后清理”部分。
标签: php laravel laravel-5 notifications laravel-queue