<?php namespace App\Notifications; use Carbon\Carbon; use Illuminate\Bus\Queueable; use Illuminate\Support\Facades\URL; use Illuminate\Support\Facades\Lang; use Illuminate\Support\Facades\Config; use Illuminate\Notifications\Notification; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Support\Facades\Auth; class VerifyNotification extends Notification { use Queueable; /** * Create a new notification instance. * * @return void */ public function __construct() { // } /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return ['mail']; } /** * Get the mail representation of the notification. * * @param mixed $notifiable * @return \Illuminate\Notifications\Messages\MailMessage */ public function toMail($notifiable) { $user = Auth::user(); return (new MailMessage) ->subject('Verifique seu e-mail') ->greeting("Olá, {$user->name}!") ->action( 'Verifique seu E-mail', $this->verificationUrl($notifiable) ) ->line("Por favor clique no link acima para verificar seu endereço de e-mail.") ->line('Se você não criou uma conta, nenhuma ação adicional é necessária.') ->markdown('vendor.notifications.email'); } /** * Get the array representation of the notification. * * @param mixed $notifiable * @return array */ public function toArray($notifiable) { return [ // ]; } protected function verificationUrl($notifiable) { return URL::temporarySignedRoute( 'verification.verify', Carbon::now()->addMinute(Config::get('auth.verification.expire', 60)), [ 'id' => $notifiable->getKey(), 'hash' => sha1($notifiable->getEmailForVerification()), ] ); } }