簡體   English   中英

Laravel 5.8:沒有 email 值的用戶的郵件通知不會失敗?

[英]Laravel 5.8 : mail notification for a user with no email value doesn't fail?

以經典方式,注冊或激活的用戶必須始終擁有 email。 在我的具體情況下,我們必須處理沒有 email 地址的少數用戶。 激活依賴於數據庫中已有的許多字段,不一定需要 email。

在這種情況下,無論如何我們必須向用戶發送通知活動以向他們發送信息。 我處理失敗的 function 以檢索失敗的通知並在界面上列出它們。

我面臨的問題是沒有任何 email 的用戶。 我期待向沒有任何 email 地址的用戶發送通知會失敗,但事實並非如此。 我需要能夠將這些用戶添加到失敗的通知列表中......

通知順利進行,沒有失敗。

我在這里錯過了什么嗎?

對不起,我應該更具體:

通知使用通知 class 通過郵件和數據庫發送通知並進行排隊。 每個通知都記錄在數據庫中,並在其“數據”字段中設置一個 state,當它順利時設置為“OK”,當它失敗時設置為“FAILED”。

我已經通過管理拋出循環解決了這個問題:如果用戶沒有 email 則不會發送通知郵件,並且通知是通過自定義方法“force_mark_notification_as_failed”手動創建到帶有“FAILED”標志的數據庫中。

foreach ($users as $user) {
    if ($user->email != '') {
        $when = $when->addSeconds(1);
        $user->notify((new MailNotificationManager($campaign_id, $users_amount, 'releve_notes', $user->email))->delay($when));
    } else {
        $this->force_mark_notification_as_failed($campaign_id, $users_amount, $user->id);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM