laravel邮件发送

laravel邮件发送

使用邮件发送类Mail

  • 文本 静态方法 raw()
  • 富文本 静态方法 send()

注:使用邮件发送必须有邮件账号,需要开启smtp协议,现在主流服务器都支持,smtp默认端口号25,默认是关闭的,需要自行打开

以QQ邮箱为例

qq邮箱登录网址:https://mail.qq.com/

1、配置QQ邮箱

2、得到客户端配置

帮助地址:https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=371

看smtp主机和端口号

3、配置larave邮件发送(在.env中,或者config/mail.php

发送者名称:接收方看到的发件人名称

4、将上面配置完成后就可以愉快的发送邮件了

为了简便的测试发送邮件,我就直接写在了路由之中,根据实际去编写就好了

php代码

//文本文件发送
Route::get('mail',function (){
    \Mail::raw('测试一下发送邮件',function(\Illuminate\Mail\Message $message){
        //获取回调方法中的参数
        //dump(func_get_args());

        //发给谁
        $message->to('接收者邮箱账号');
        //主题
        $message->subject('测试邮件');
    });
});


//富文本发送
Route::get('mail',function (){
   /**
     * 参数一:模板文件位置
     * 参数二:传给视图文件数据
     */
    \Mail::send('mail.index',['data'=>'这是测试数据'],function (\Illuminate\Mail\Message $message){
        //发给谁
        $message->to('接收者邮箱账号');
        /*
        局部设置发件人名称
        参数1:发件人邮箱账号,与.env中发件人邮箱一致
        参数2:接收人看到的发送人名称
        */
        $message->from('发件人邮箱账号','xxx');
        //主题
        $message->subject('测试邮件');
    });

});

blade模板页面

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>邮件模板</title>
</head>
<body>
<h3>{{$data}}</h3>
<img src="https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=12680769,758549795&fm=26&gp=0.jpg" alt="">
</body>
</html>