[ Laravel 5.1 ] 服务 —— 邮件

2017-04-19 22:30:39   Laravel

  Laravel邮件  

[ Laravel 5.1 ] 服务 —— 邮件

以163邮箱为例
  • 首先 你要先有个163的邮箱 找到下图中 设置中的常规设置
    163邮箱

  • 然后找到POR3/SMTP/IMAP 一栏 勾选途中箭头指向部分 到这 会提醒你 设置一个 客户端服务授权 密码 最好设置一个跟登录秘密不一样的
    163邮箱

下面是larvel 中需要的 各种配置

env 文件

  1. MAIL_DRIVER=smtp
  2. MAIL_HOST=smtp.163.com
  3. MAIL_PORT=25
  4. MAIL_USERNAME=******
  5. MAIL_PASSWORD=******
  6. MAIL_ENCRYPTION=null

mail.php(目录 config/mail.php) address 指向发件人 的地址 也就你的 163邮箱 name 指发件人昵称

  1. 'from' => ['address' => '*********', 'name' => '王浩的测试'],

路由

  1. Route::resource('/email','UserController@email');

控制器

  1. /**
  2. * 说明:发送邮件
  3. *
  4. * @author 王浩
  5. */
  6. public function email()
  7. {
  8. $data = ['email'=>'491993108@qq.com', 'name'=>'王浩', 'uid'=>'123456', 'activationcode'=>'123456'];
  9. Mail::send('index', $data, function($message) use($data)
  10. {
  11. $message->to(['491993108@qq.com'])->subject('欢迎注册我们的网站,请激活您的账号!');
  12. });
  13. }

如果没有安装 驱动 就把下面这句话 加入 composer.json文件中的 require-dev 中

  1. "guzzlehttp/guzzle": "~5.3|~6.0"

如下

  1. "require-dev": {
  2. "fzaninotto/faker": "~1.4",
  3. "mockery/mockery": "0.9.*",
  4. "phpunit/phpunit": "~4.0",
  5. "phpspec/phpspec": "~2.1",
  6. "guzzlehttp/guzzle": "~5.3|~6.0"
  7. },

然后 在项目根目录下 执行

  1. composer update

laravel 学院中的 更多扩展内容

http://laravelacademy.org/post/213.html

邮件队列

发送邮件消息可能会大幅度延长应用的响应时间,许多开发者选择将邮件发送放到队列中再后台执行,Laravel中可以使用内置的统一队列API来实现。要将邮件消息放到队列中,使用Mail门面上的queue方法:

  1. Mail::queue('emails.welcome', $data, function ($message) {
  2. //
  3. });

延迟消息队列

如果你想要延迟已经放到队列中邮件的发送,可以使用later方法。只需要传递你想要延迟发送的秒数作为第一个参数到该方法即可:

  1. Mail::later(5, 'emails.welcome', $data, function ($message) {
  2. //
  3. });

推入指定队列

如果你想要将邮件消息推送到指定队列,可以使用queueOn和laterOn方法:

  1. Mail::queueOn('queue-name', 'emails.welcome', $data, function ($message) {
  2. //
  3. });
  4. Mail::laterOn('queue-name', 5, 'emails.welcome', $data, function ($message) {
  5. //
  6. });

通用配置

Laravel提供的另一种解决方案是为框架发送的所有邮件设置通用收件人,这样的话,所有应用生成的邮件将会被发送到指定地址,而不是实际发送邮件指定的地址。这可以通过在配置文件config/mail.php中设置to选项来实现:

  1. 'to' => [
  2. 'address' => 'dev@domain.com',
  3. 'name' => 'Dev Example'
  4. ],

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

感谢你的支持,我会继续努力!
扫码打赏,建议金额1-10元