К сожалению, это электронное письмо, отправленное не из «представления», это Notification
, которое встроено на самом деле.Это где он в настоящее время построен, когда нужно отослать: Illuminate\Auth\Notifications\VerifyEmail@toMail
.Этот конкретный класс имеет статический обратный вызов, который можно установить для создания этого электронного письма вместо того, чтобы позволить ему это делать.
В поставщике услуг в методе boot
вам необходимо назначить обратный вызов для этого класса:
Что-то вроде этого может работать:
public function boot()
{
\Illuminate\Auth\Notifications\VerifyEmail::toMailUsing(function ($notifiable) {
// this is what is currently being done
// adjust for your needs
return (new \Illuminate\Notifications\Messages\MailMessage)
->subject(\Lang::getFromJson('Verify Email Address'))
->line(\Lang::getFromJson('Please click the button below to verify your email address.'))
->action(
\Lang::getFromJson('Verify Email Address'),
$this->verificationUrl($notifiable)
)
->line(\Lang::getFromJson('If you did not create an account, no further action is required.'));
});
}
Поскольку это уведомление, у вас должно быть больше возможностей для его настройки.
Если вы хотите использовать свой собственный Notification
класс, вы можете переопределить метод sendEmailVerificationNotification
в модели User
(Authenticatable
) (это из черты MustVerifyEmail
).
Второй вопрос:
The VerificationController
(App\Http\Controllers\Auth\VerificationController
) у вас должен быть метод с именем resend
(из черты VerifiesEmails
), который выглядит хорошим кандидатом для этой цели.
У вас должны быть настроены маршруты для этой проверкимаршруты через Auth::routes(['verify' => true]);
Примечание:
Система проверки использует поле в таблице users
email_verified_at
в 5.7, чтобы отметить это.Вы хотели бы убедиться, что у вас есть это поле.Когда пользователь меняет адрес электронной почты, я полагаю, вы могли бы сделать это null
, а затем перенаправить его на маршрут resend
, чтобы отослать новую проверку.Это переведет их в «непроверенное» состояние, пока они не будут переоценены, если это именно то, что вы намереваетесь случиться.
Обновление:
Кажется, мы спускалисьправильном пути.Я нашел этот SO-ответ, который касается похожих вещей:
Изменение поля по умолчанию «subject» для письма подтверждения в laravel 5.7