2017年2月21日火曜日

Laravel5.4でパスワード再設定メールテンプレートをカスタマイズ

Laravel5.4で、パスワード再設定メールテンプレートをカスタマイズです。HTMLメールではなく、テキストメールで送信するように設定してみたかったのですが、挫折しました。たぶん、テキストでは送れないような気がします(?)

$ php artisan make:notification TextPasswordReset
/app/User.php
use App\Notifications\TextPasswordReset;

class User extends Authenticatable
{
  // sendPasswordResetNotificationをオーバーライド
  public function sendPasswordResetNotification($token)
  {
    $this->notify(new TextPasswordReset($token));
  }
}
/app/Notifications/TextPasswordReset.php
use Illuminate\Auth\Notifications\ResetPassword; 

class TextPasswordReset extends ResetPassword
{
  use Queueable;

  public $token;

  public function __construct($token)
  {
    $this->token = $token;
  }

  public function via($notifiable)
  {
    return ['mail'];
  }

  public function toMail($notifiable)
  {
    return (new MailMessage)
      ->subject('パスワード再設定') 
      ->view('emails.reset') 
   // ->markdown('emails.reset') これは、HTMLメールになってしまう。
      ->action('再設定', url('/password/reset', $this->token));
  }
}
/resources/views/emails/reset.blade.php(結局、改行などはHTMLタグを使うしかない。)
下記URLをクリックして、パスワードを再設定してください。<br>
<br>
{{ $actionUrl }}

参考サイト
Laravel5.3でパスワードリセットメールをテキスト形式で送りたいのですがどうすればできますか。(teratail)
Laravel 5.3 Redefine reset email blade template(Stack Overflow)
Illuminate\Notifications\Messages\MailMessage(Laravel API)

0 件のコメント:

コメントを投稿