我正在尝试更改Laravel 5.7随附的验证电子邮件中的默认subject
字段。如何以及在哪里更改?我自己和在网上搜索了整个地方。因为它是全新的,所以找不到答案。你能帮我吗?谢谢!
答案 0 :(得分:12)
这是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
然后您可以覆盖toMail函数的通知...尚未尝试过,但这应该可以解决。
答案 1 :(得分:7)
您不需要编写任何代码。该通知将所有字符串包装在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.'));
}
您可以在此处看到所有字符串。
如果resources / lang文件夹上还没有一个文件,请创建一个文件en.json。
添加原始字符串并替换。 例如
{
"Verify Email Address": "My preferred subject",
"Please click the button below to verify your email address.":"Another translation"
}
要翻译成另一种语言,请在config / app.php中更改语言环境,并使用locale.json创建翻译文件
答案 2 :(得分:0)
您可以将函数发布到邮寄的位置吗? 我使用:
\Mail::to($user)->subject('Your Subject')->bcc([$reports,$me])->send(new Declined($user));
这是:向$ user发送邮件,设置主题,盲目复制,然后在传递用户的同时发送邮件。这也是降价邮件。您可以使用->
运算符来添加邮件的所有其他功能,这样就可以添加密件抄送(如我已经完成的操作)以及CC等。