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

  • 相关阅读:
    Cassandra
    POST和GET方法
    webx流程
    Cassandra的内部数据存储结构
    Session和Cookie
    昆爷又发了4篇siggraph2010,牛A...榜样和目标...
    真正开博了
    ebook搜索,I can! cool!
    (转)计算机图形学的学习
    3D图形学习的现在和将来(转)
  • 原文地址:https://www.cnblogs.com/hehe520/p/6147543.html
Copyright © 2011-2022 走看看