Laravel 提供了非常簡單的郵件發送 API,但是文檔卻不是太清晰,再加上它采用傳遞閉包(回調函數)的方式調用,導緻郵件發送的使用門檻偏高。
Laravel 4 和 Laravel 5 的郵件發送使用方式完全一緻。Laravel 5 的郵件發送中文文檔在:http://laravel-china.org/docs/5.0/mail
本文中,我将以 163 郵箱為例,展示如何用 Laravel 内置的郵件發送類來發送郵件。
配置
修改郵件發送配置。4.2 在 app/config/mail.php,5 在 config/mail.php,修改以下配置:
'host' => 'smtp.163.com',
'port' => 25,
'from' => array('address' => '***@163.com', 'name' => 'TestMail'),
'username' => '***@163.com', // 注意,這裡必須和上一行配置裡面的郵件位址一緻
'password' => '****',
發送
在控制器或者模型裡,調用以下代碼:
$data = ['email'=>$email, 'name'=>$name, 'uid'=>$uid, 'activationcode'=>$code];
Mail::send('activemail', $data, function($message) use($data)
{
$message->to($data['email'], $data['name'])->subject('歡迎注冊我們的網站,請激活您的賬号!');
});
郵件視圖為 views/activemail.blade.php:
<!doctype html>
<html >
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
</head>
<body>
<a href="{{ URL('active?uid='.$uid.'&activationcode='.$activationcode) }}" target="_blank" rel="external nofollow" target="_blank">點選激活你的賬号</a>
</body>
</html>
搞定!
第二種方法
https://lvwenhan.com/laravel/436.html
網址
一:修改config裡面的mail.php(隻需要修改一處)
'from' => ['address' => '[email protected]', 'name' => 'jnn'],(誰發的)
二:修改.env檔案
MAIL_DRIVER=smtp
MAIL_HOST=smtp.163.com
MAIL_PORT=25
[email protected]
MAIL_PASSWORD=jnnzqb7821
MAIL_ENCRYPTION=tls
三:視圖
<!doctype html>
<html >
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
</head>
<body>
{{$name}},歡迎注冊,請激活您的賬号<br>
<a href="{{$url}}" target="_blank" rel="external nofollow" >{{$url}}</a>
</body>
</html>
四:控制器
Use:Mail;
//發郵件
public function emailsmtp(){
$data=array('name'=>'jnn','url'=>'taobao.com');
Mail::send('emailsmtp', $data, function($message)
{
$message->to('[email protected]','Jiangnan')->subject('歡迎注冊我 們的網站,請激活您的賬号!');
});
}