1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- namespace App\Notifications\Email;
- use Illuminate\Notifications\Messages\MailMessage;
- use Illuminate\Notifications\Notification;
- use Illuminate\Support\Carbon;
- use Illuminate\Support\Facades\Config;
- use Illuminate\Support\Facades\Lang;
- use Illuminate\Support\Facades\URL;
- class VerifyEmail extends Notification
- {
- /**
- * The callback that should be used to build the mail message.
- *
- * @var \Closure|null
- */
- public static $toMailCallback;
- /**
- * Get the notification's channels.
- *
- * @param mixed $notifiable
- * @return array|string
- */
- public function via($notifiable)
- {
- return ['mail'];
- }
- /**
- * Build the mail representation of the notification.
- *
- * @param mixed $notifiable
- * @return \Illuminate\Notifications\Messages\MailMessage
- */
- public function toMail($notifiable)
- {
- $verificationUrl = $this->verificationUrl($notifiable);
- if (static::$toMailCallback) {
- return call_user_func(static::$toMailCallback, $notifiable, $verificationUrl);
- }
- return (new MailMessage)
- ->theme((app()->getLocale() == 'fa') ? 'rtl-theme' : 'default')
- ->greeting(Lang::get('mail.resetPassword.greeting'))
- ->salutation(Lang::get('mail.resetPassword.salutation'))
- ->subject(Lang::get('mail.verifyEmail.subject'))
- ->line(Lang::get('mail.verifyEmail.excerpt'))
- ->action(Lang::get('mail.verifyEmail.button'), $verificationUrl);
- }
- /**
- * Get the verification URL for the given notifiable.
- *
- * @param mixed $notifiable
- * @return string
- */
- protected function verificationUrl($notifiable)
- {
- return URL::temporarySignedRoute(
- 'verification.verify',
- Carbon::now()->addMinutes(Config::get('auth.verification.expire', 60)),
- [
- 'id' => $notifiable->getKey(),
- 'hash' => sha1($notifiable->getEmailForVerification()),
- ]
- );
- }
- /**
- * Set a callback that should be used when building the notification mail message.
- *
- * @param \Closure $callback
- * @return void
- */
- public static function toMailUsing($callback)
- {
- static::$toMailCallback = $callback;
- }
- }
|