美文网首页laravel
laravel 之邮件

laravel 之邮件

作者: 空气KQ | 来源:发表于2018-05-14 18:14 被阅读3次

就使用默认的smtp作为驱动,其他的都要收费啊,要不起

配置帐号

config/mail.php
所以配置都可以通过.env来设置
这里我用了腾讯的企业邮箱
.env

MAIL_DRIVER=smtp
MAIL_HOST=smtp.exmail.qq.com
MAIL_PORT=25
MAIL_USERNAME=email@kong-qi.com
MAIL_PASSWORD=YYYYyyyyxxxxxx
MAIL_ENCRYPTION=null

发送邮件

use Mail;

 public function sendEmailReminder(Request $request, $id)
    {
        $user = User::findOrFail($id);

        Mail::send('emails.reminder', ['user' => $user], function ($m) use ($user) {
            //来源地址,来源名字,
            $m->from('hello@app.com', 'Your Application');
          // 发送给谁的email和名字,后面是主题
            $m->to($user->email, $user->name)->subject('Your Reminder!');
        });
    }
//第一个参数是视图,第二个是传值,第三个匿名闭包回调设置,

纯文本邮件

意思是将你的源码发送出去


image.png
Mail::send(['text' => 'email'], $data, function ($message) {
            $message->from('email@kong-qi.com', 'Larave2l');
            $message->to('531833998@qq.com','kongqi')->subject('dd');
        });

原生字符串邮件

Mail::raw('你的验证码是6700', function ($message) {
            $message->from('email@kong-qi.com', 'Larave2l');
            $message->to('531833998@qq.com','kongqi')->subject('dd');
        });

附件

Mail::send('email', $data, function ($message) {
            $message->from('email@kong-qi.com', 'Larave2l');
            $message->to('531833998@qq.com','kongqi')->subject('dd');
            $message->attach($pathToFile);//这里
        });

视图中使用图片

Laravel自动在所有邮件视图中传入$message变量使其有效

<body>
    Here is an image:
    <img src="<?php echo $message->embed($pathToFile); ?>">
</body>

嵌入原生数据

<body>
    Here is an image from raw data:
    <img src="<?php echo $message->embedData($data, $name); ?>">
</body>

邮件队列

默认队列是同步的,这个没有卵用,队列肯定是异步执行嘛
修改队列配置
config/queue.php
这里我设置为redis
.env

QUEUE_DRIVER=redis
Mail::queue('email', $data, function ($message) {
            $message->from('email@kong-qi.com', 'Larave2l');
            $message->to('531833998@qq.com','kongqi')->subject('dd');

        });

延迟消息队列
单位秒

Mail::later(5,'email', $data, function ($message) {
            $message->from('email@kong-qi.com', 'Larave2l');
            $message->to('531833998@qq.com','kongqi')->subject('dd');

        });

推入指定队列
可以使用queueOn和laterOn方法:

Mail::queueOn('queue-name','email', $data, function ($message) {
            $message->from('email@kong-qi.com', 'Larave2l');
            $message->to('531833998@qq.com','kongqi')->subject('dd');

        });

事件

会发送邮件前触发一个事件,记住,这个事件是在邮件被发送时触发,而不是推送到队列时

'Illuminate\Mail\Events\MessageSending' => [
            'App\Listeners\LogSentMessage',
        ],

相关文章

  • laravel 之邮件

    就使用默认的smtp作为驱动,其他的都要收费啊,要不起 配置帐号 config/mail.php所以配置都可以通过...

  • laravel 定时任务通过队列发送邮件

    关于laravel发送邮件,请先参考我的另一片文章:laravel sendcloud发送邮件,再继续往下看。 1...

  • Laravel 邮件发送

    一、QQ邮箱配置 laravel自带SMTP邮件配置和遇到的坑 laravel自带SwiftMailer库,集成了...

  • laravel5.6之发送邮件

    在注册的时候可以增加一个邮箱激活的功能,为防止自己忘记,记录一下实现邮箱激活的简单步骤 1、登录腾讯云,申请解封2...

  • Laravel 重置密码之发邮件

    忘了密码通过邮件找回 更符合现在的情形,可是逻辑比较混乱,在此梳理一下。 请接着往下看 1.创建一个忘了密码的...

  • laravel邮件上传

    这里我们以QQ邮箱为例,进行邮件发送。1.更改配置项:找到.env文件,更改以下配置项。MAIL_DRIVER=s...

  • laravel 发送邮件

    一.在qq邮箱配置 二.配置文件1.配置laravel .env文件 2.配置laravel config/mai...

  • 说一说 Laravel 邮件发送流程

    当我使用 Laravel 的邮件发送功能时,脑子里浮现出这么几个问题: Laravel 集成了 SMTP 、Mai...

  • laravel 基础教程 —— 邮件

    邮件 简介 laravel 基于流行的 SwiftMailer 类库构建了一种干净简洁的邮件 API。larave...

  • 邮箱服务

    邮件服务 参考: laval官网https://laravel.com/docs/5.1/maillaravel学...

网友评论

    本文标题:laravel 之邮件

    本文链接:https://www.haomeiwen.com/subject/rppjdftx.html