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,修改以下配置:
</pre><pre name="code" class="lang-c++">'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 lang="zh-CN"> <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">點擊激活你的賬號</a> </body> </html>