Я пытаюсь изменить поле subject по умолчанию в электронном письме с подтверждением, которое поставляется с Laravel 5.7. Как и где его поменять? Я искал повсюду и в Интернете. Потому что это новенькое, я не могу найти ответа.






Это черта MustVerifyEmail.
<?php
namespace Illuminate\Auth;
trait MustVerifyEmail
{
/**
* Determine if the user has verified their email address.
*
* @return bool
*/
public function hasVerifiedEmail()
{
return ! is_null($this->email_verified_at);
}
/**
* Mark the given user's email as verified.
*
* @return bool
*/
public function markEmailAsVerified()
{
return $this->forceFill([
'email_verified_at' => $this->freshTimestamp(),
])->save();
}
/**
* Send the email verification notification.
*
* @return void
*/
public function sendEmailVerificationNotification()
{
$this->notify(new Notifications\VerifyEmail);
}
}
Как видите, отправляется уведомление с именем VerifyEmail, поэтому я думаю, что переопределения этого метода в пользовательской модели с вашим собственным уведомлением будет достаточно. Вам также следует проверить этот файл: vendor/laravel/framework/src/Illuminate/Auth/Notifications/VerifyEmail.php, поскольку он содержит уведомление и может использоваться в качестве примера вашего настраиваемого уведомления о проверке.
В User.php
public function sendEmailVerificationNotification()
{
$this->notify(new MyNotification);
}
Тогда беги
php artisan make:notification MyNotification
И в своем уведомлении вы можете просто расширить до Illuminate\Auth\Notifications\VerifyEmail
Затем вы можете переопределить функцию уведомления для почты ... Еще не пробовали, но это должно сработать.
Спасибо друг. Я приехал сюда через Google, и это был мой ответ.
@Ruub, другой ответ тоже хорош, но этот хорош, если вам нужно что-то, чего нет в уведомлении по умолчанию, предоставляемом laravel.
Вау, спасибо. Это точный и правильный способ настройки.
Можете ли вы разместить свою функцию по почте? Я использую:
\Mail::to($user)->subject('Your Subject')->bcc([$reports,$me])->send(new Declined($user));
А именно: отправить письмо пользователю $, установить тему, скрыть копию, затем отправить письмо, передавая пользователя. Это также для почты с уценкой. Вы используете оператор ->, чтобы добавить все дополнительные функции для почты, поэтому с его помощью вы можете добавить BCC (как я сделал), а также CC и т. д.
Нет, в laravel 5.7 встроено письмо с подтверждением ... оно отправляется «за кулисами»
Вопрос не в этом, хе-хе, он больше связан с этим: laravel.com/docs/5.7/verification
Я понимаю! Не беспокойтесь, удачи, ребята :-)
Вам не нужно ничего кодировать. В уведомлении есть все строки, обернутые в класс Lang, так что вы можете предоставить строки перевода с английского на другой язык или даже с английского на английский, если вы просто хотите изменить формулировку.
Посмотрите в /vendor/laravel/framework/src/Illuminate/Auth/Notifications/VerifyEmail.php
public function toMail($notifiable)
{
if (static::$toMailCallback) {
return call_user_func(static::$toMailCallback, $notifiable);
}
return (new 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.'));
}
Вы можете увидеть там все струны.
Создайте файл en.json, если у вас его еще нет в папке resources / lang.
добавить исходную строку и замену. например
{
"Verify Email Address": "My preferred subject",
"Please click the button below to verify your email address.":"Another translation"
}
Чтобы перевести на другой язык, измените локаль в config / app.php и создайте файл перевода с locale.json.
Это решение, которое я использовал. Спасибо.
Всегда рада помочь!