簡體   English   中英

Laravel:從數據庫獲取記錄並將其發送到電子郵件模板

[英]Laravel: Fetch record from db and send it to email template

我已經在Laravel 5中成功實現了發送電子郵件的過程。現在,我要做的是從數據庫中獲取一些記錄並將其發送到電子郵件。 我的發送電子郵件代碼是:

 Mail::send('email', ['name' => "EE"], function($m) {
 $m->to(Input::get('email'), '')->subject('Password Request');
 });

電子郵件模板為:

Hello,

Your password has been changed, successfully.
Your new password is:"**password from database**" 
Kindly, change your password later on.

Thanks!

因此,“來自數據庫的密碼”必須來自數據庫。 我該怎么辦? 有什么幫助嗎?

$userInfo = User::find(1);
        Mail::send('yourTemplate', array('userInfo'=> $eventInfo), function($message)  {
        $message
            ->from('from@mail.com', 'test')
            ->to('to@mail.com', 'name')
            ->subject('subject');
         });

然后在您的模板文件中使用此變量,例如

Hello,

Your password has been changed, successfully.
Your new password is: {!! $userInfo->password !!};
Kindly, change your password later on.

Thanks!

根據您的問題,您希望從數據庫表中獲取密碼,這是不可能的,因為密碼是加密的,並且向用戶發送加密版本是無用的。

您可以做的是生成一個新密碼,將新密碼保存在用戶行,電子郵件列下的數據庫中,然后將生成的密碼通過電子郵件發送給用戶:

您可以這樣做:

我假設用戶電子郵件地址存儲在`user表的email列下,並且您具有User模型:

$email = Input::get('email');
$user = User::where('email', $email)->first();

if($user){
      $new_password = str_random(8); //generates random string , eight character long

      $user->password = \Hash::make($new_password);
      $user->save();

      $data = [
                 'name'          => $user->first_name,
                 'new_password ' => $new_password 
      ];

      Mail::send('emails.password-reset', $data, function($m) use ($user){
         $m->to($user->email, '')->subject('Password Request');
      });
}


In email template: views\emails\password-reset.blade.php:

Hello {!!$name!!},

Your password has been changed, successfully.
Your new password is:"{!!$new_password!!}" 
Kindly, change your password later on.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM