zoukankan      html  css  js  c++  java
  • Laravel 发送邮件(最简单的讲解!)

    Laravel集成了SwiftMailer库进行邮件发送邮件配置文件位于config/mail.php:、

    return [
        'driver' => env('MAIL_DRIVER', 'smtp'),
        'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
        'port' => env('MAIL_PORT', 587),
        'from' => ['address' => null, 'name' => null],
        'encryption' => env('MAIL_ENCRYPTION', 'tls'),
        'username' => env('MAIL_USERNAME'),
        'password' => env('MAIL_PASSWORD'),
        'sendmail' => '/usr/sbin/sendmail -bs',
        'pretend' => false,
    ]

      以上的参数  我们都会有详细的讲解!  请继续往下看!

    driver用于配置默认的邮件发送驱动,Laravel支持多种邮件驱动方式,包括smtpMailgunMaildrillAmazon SESmailsendmail,Mailgun和Amazon SES都是收费的,Maildrill目前不支持中国区用户,这三个都是第三方邮件服务。mail驱动使用PHP提供的mail函数发送,sendmail驱动通过Sendmail/Postfix(Linux)提供的命令发送邮件,smtp驱动通过支持ESMTP的SMTP发送邮件。

    注:ESMTP即Extended SMTP, 是对标准 SMTP 协议进行的扩展,它与 SMTP 服务的区别仅仅是,使用 SMTP 发信不需要验证用户帐户,而用 ESMTP 发信时,服务器会要求用户提供用户名和密码以便验证身份。

    就目前状况来看,使用smtp是最明智的选择,mail不安全,sendmail需要安装配置Sendmail/Postfix,其他要么付费要么不能用(汗!)。下面其它配置的说明都基于driversmtp

    接下来其他的配置都好理解,host是邮箱所在主机,比如我们使用163邮箱,对应值是smtp.163.com,使用QQ邮箱的话,对应值是smtp.qq.com

    port用于配置邮箱发送服务端口号,比如一般默认值是25,但如果设置SMTP使用SSL加密,该值为465

    from配置项包含addressname,前者表示发送邮箱,后者表示发送邮件使用的用户名。

    encryption表示加密类型,可以设置为null表示不使用任何加密,也可以设置为tls/ssl

    username表示邮箱账号,比如yaojinbu@163.com

    password表示上述邮箱登录对应登录密码。

    sendmail是在设置driversendmail时使用,用于指定sendmail命令路径。

    pretend用于配置是否将邮件发送记录到日志中,默认为false则发送邮件不记录日志,如果为true的话只记录日志不发送邮件,这一配置在本地开发中调试时很有用。

     // 接下来我们要做的就是要在控制器写代码了!

    use Mail;

    在方法中需要写以下!

    public function send()
        {
            $name = '学院君';
            $flag = Mail::send('emails.test',['name'=>$name],function($message){
                $to = '1072155122@qq.com';
                $message ->to($to)->subject('测试邮件');
            });
            if($flag){
                echo '发送邮件成功,请查收!';
            }else{
                echo '发送邮件失败,请重试!';
            }
        }

    //Mail::send需要传递三个参数,第一个是邮件视图,第二个是传入视图的数据,第三个是一个闭包,该闭包中定义了收件人、抄送人(如果有的话)、邮件主题、附件等信息。邮件的主体内容位于局部视图中,下面我们就来定义这个局部视图,在resources/views/admin目录下新建test.blade.php,编辑其内容如下:
    //  以上是单纯的文本发送/!  但是还不是带有图片发送的格式!  需要发送图片的格式的!  需要继续往下继续看!

    图片的发送!

    //这里是view成! 需要一下这么输入!

    {{$name}},这是一封测试邮件
    <br>
    <img src="{{$message->embed($imgPath)}}">
    

    //  图片的发送和文本的发送  没有什么其他不一样的!   而是在参数后面多写了一个参数! 一个简单的图片发送的文件就好了!

    $name = '学院君';
    $imgPath = 'http://laravelacademy.org/wp-statics/images/carousel/LaravelAcademy.jpg';
    $flag = Mail::send('emails.test',['name'=>$name,'imgPath'=>$imgPath],function($message){
       
    

  • 相关阅读:
    【leetcode】106. Construct Binary Tree from Inorder and Postorder Traversal
    【leetcode】105. Construct Binary Tree from Preorder and Inorder Traversal
    【leetcode】236. Lowest Common Ancestor of a Binary Tree
    【leetcode】235. Lowest Common Ancestor of a Binary Search Tree
    【leetcode】352. Data Stream as Disjoint Intervals
    【leetcode】897. Increasing Order Search Tree
    【leetcode】900. RLE Iterator
    BEC listen and translation exercise 26
    BEC listen and translation exercise 25
    BEC listen and translation exercise 24
  • 原文地址:https://www.cnblogs.com/hehe520/p/6147543.html
Copyright © 2011-2022 走看看