arkadaşlar bu konu arak bir konu ama adamın sitesi çortlamadan google önbellekten aldım. yazı piç olmasın diye buraya koyuyorum. yazan arkadaşın eline koluna sağlık. paylaşan arkadaşın linki burada. tekrardan emeğine sağlık diyorum.
Laravel’in içinde yer alan auth paketini kullanıyorsanız, şifre sıfırlama e-maillerinin içeriği bildiğiniz gibi ingilizcedir. Eğer bunun içeriğini kendi dilinizde değiştirmek istiyorsanız, bu yazımı okumanız yeterli.
Uyarı: Kesinlikle vendor klasöründeki dosyayı değiştirmeyin!!!
Vendor klasöründeki dosyada değişiklik yapmadan kendi mail templatemizi oluşturmak için Taylor amcamız bir kanca eklemiş.
Hadiyin hızlı bir şekilde kendi şifre sıfırlama mail templatemizi oluşturalım.
Artisan ile bir notification oluşturalım:
php artisan make:notification MyResetPasswordMail
App\Notifications klasörü içine oluşturulan MyResetPasswordMail.php dosyasının içeriğini aşağıdaki şekilde düzenleyin:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
<?php namespace App\Notifications; use Illuminate\Bus\Queueable; use Illuminate\Notifications\Notification; use Illuminate\Notifications\Messages\MailMessage; class MyResetPasswordMail extends Notification { use Queueable; /** * The password reset token. * * @var string */ public $token; /** * Create a new notification instance. * * @return void */ public function __construct($token) { $this->token = $token; } /** * 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) { return (new MailMessage) ->subject('Şifre Sıfırlama') ->greeting('Şifre Sıfırlama İşlemi!') ->line('Bu e-postayı, hesabınızın şifresini sıfırlama isteği aldığımız için aldınız. Şifrenizi sıfırlamak istiyorsanız, aşağıdaki butona tıklayın:') ->action('Şifreyi sıfırla', url(config('app.url').route('password.reset', $this->token, false))) ->line('Bir şifre sıfırlama isteğinde bulunmadıysanız, Bu emaili dikkate almayınız.'); } } |
Ardından app klasörü içinde yer alan User.php dosyasındaki User modeline ekleyeceğiniz aşağıdaki kod ile geçerli şifre sıfırlama bildirimini ezmiş (override) olacaksınız.
1 2 3 4 5 6 7 |
/** * Send a password reset email to the user */ public function sendPasswordResetNotification($token) { $this->notify(new MyResetPasswordMail($token)); } |
Sınıfı modelin en üstüne eklemeyi unutmayın!!!
use App\Notifications\MyResetPasswordMail;
En son olarak mesaj layout’unun içeriğini de değiştirmemiz gerekecek. Bunun için aşağıdaki kodu konsolda çalıştırın.
php artisan vendor:publish
ve ardından notifications içine gelen dosyanın içeriğini değiştirin.
/resources/views/vendor/notifications