40 lines
1.8 KiB
PHP
40 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Notifications;
|
|
|
|
use Illuminate\Auth\Notifications\VerifyEmail;
|
|
use Illuminate\Notifications\Messages\MailMessage;
|
|
|
|
class VerifyAccountEmail extends VerifyEmail
|
|
{
|
|
protected function verificationUrl($notifiable): string
|
|
{
|
|
// Email links must use the configured public origin, never a submitted Host header.
|
|
$urls = clone app('url');
|
|
$urls->forceRootUrl(config('app.url'));
|
|
$urls->forceScheme(parse_url(config('app.url'), PHP_URL_SCHEME));
|
|
|
|
return $urls->temporarySignedRoute('verification.verify', now()->addHour(), [
|
|
'id' => $notifiable->getKey(),
|
|
'hash' => sha1($notifiable->getEmailForVerification()),
|
|
]);
|
|
}
|
|
|
|
public function toMail($notifiable): MailMessage
|
|
{
|
|
return (new MailMessage)
|
|
->from('no-reply@moon-well.online', 'MoonWell')
|
|
->subject(__('Подтверди email — MoonWell'))
|
|
->view('mail.account-action', [
|
|
'username' => $notifiable->name,
|
|
'eyebrow' => __('Ещё один шаг до Азерота'),
|
|
'title' => __('Подтверди свой email'),
|
|
'intro' => __('Добро пожаловать в MoonWell! Подтверди почту, чтобы войти в личный кабинет и лаунчер.'),
|
|
'action' => __('Подтвердить email'),
|
|
'url' => $this->verificationUrl($notifiable),
|
|
'expiry' => __('Ссылка действует 60 минут. Новое письмо можно запросить на странице подтверждения.'),
|
|
'outro' => __('Если ты не создавал аккаунт MoonWell, просто проигнорируй это письмо.'),
|
|
]);
|
|
}
|
|
}
|