我在我的用戶模型上使用 Laravel Notifiable trait,因此用戶必須在能夠登錄之前驗證他們的電子郵件地址,這很好用。但是,我想將此電子郵件的發送延遲到應用程序中的稍后時間點(當管理員手動確認每個用戶時)。如何防止 Laravel 在創建帳戶時發送驗證電子郵件?手動創建用戶時,您可以使用 SendsPasswordResetEmails trait 在您的應用程序中隨時發送驗證電子郵件:use SendsPasswordResetEmails;$this->sendResetLinkEmail($request);問題是我在標準 Laravel 身份驗證腳手架中找不到此代碼以防止它發生。
2 回答

揚帆大魚
TA貢獻1799條經驗 獲得超9個贊
該Notifiable
特性來說并不算什么發送電子郵件驗證的用戶,但MustVerifyEmail
界面,你的User
模型實現。
因此,為了手動執行此操作,您需要做的是從
EventServiceProvider
$listen
映射:
Registered::class => [ SendEmailVerificationNotification::class, ]
然后稍后您可以找到User
要將電子郵件驗證發送到的目標,并像這樣發送電子郵件:
User::find($userId)->sendEmailVerificationNotification();

UYOU
TA貢獻1878條經驗 獲得超4個贊
它是MustVerifyEmail
Laravel 用來施展魔法的接口。Laravel 檢查要通知的類(即User
)是否實現了該MustVerifyEmail
接口,如果是,則發出驗證通知。
雖然您可以Registered
從 中刪除事件偵聽器EventServiceProvider
,但也可以implements MustVerifyEmail
從User
類中刪除。
通過保持事件偵聽器完好無損并簡單地MustVerifyEmail
從User
類中刪除接口,您可以保持自動電子郵件驗證系統完好無損,以防您確實想創建另一種類型的User
類確實會收到自動電子郵件驗證通知。
因此,implements MustVerifyEmail
從您的User
課程中刪除,然后sendEmailVerificationNotification()
在您想要發送驗證電子郵件時手動呼叫您的用戶。
- 2 回答
- 0 關注
- 250 瀏覽
添加回答
舉報
0/150
提交
取消