如何在 Laravel 中使用 SMTP 发送邮件(适用于 163、QQ、Gmail 等)

2015-3-13   /   字数:1145   /   阅读数:196364   /   分类: Laravel     

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 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>


搞定!

WRITTEN BY

avatar

发表评论:

© 2011-2024 岁寒  |  Powered by Emlog