![](/img/trans.png)
[英]How to fetch record from database and send it to email using codeigniter?
[英]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.