• laravel邮件发送


    测试使用邮箱163、QQ邮箱

    QQ邮箱需要注意:需要开启POP3/SMTP服务。

    开启成功后生成秘钥,秘钥在配置中用到相当于密码,生成秘钥方法

    如果需要记录发邮箱记录时,你需要进行此配置

    IMAP和POP有什么区别?
    POP允许电子邮件客户端下载服务器上的邮件,但是您在电子邮件客户端的操作(如:移动邮件、标记已读等),这是不会反馈到服务器上的,比如:您通过电子邮件客户端收取了QQ邮箱中的3封邮件并移动到了其他文件夹,这些移动动作是不会反馈到服务器上的,也就是说,QQ邮箱服务器上的这些邮件是没有同时被移动的 。但是IMAP就不同了,电子邮件客户端的操作都会反馈到服务器上,您对邮件进行的操作(如:移动邮件、标记已读等),服务器上的邮件也会做相应的动作。也就是说,IMAP是“双向”的。
    同时,IMAP可以只下载邮件的主题,只有当您真正需要的时候,才会下载邮件的所有内容。

    Laravel进行配置

    config/mail.php

    .env

    mail.php与.env中

    'from' => [

      'address' => env('MAIL_FROM_ADDRESS', '与.env中MAIL_USERNAME保持一致'),


    ],

    MAIL_USERNAME=address

    • driver用于配置默认的邮件发送驱动,Laravel支持多种邮件驱动方式,包括smtp、Mailgun、Maildrill、Amazon SES、mail和sendmail,Mailgun和Amazon SES都是收费的Maildrill目前不支持中国区用户,这三个都是第三方邮件服务。mail驱动使用PHP提供的mail函数发送,sendmail驱动通过Sendmail/Postfix(Linux)提供的命令发送邮件,smtp驱动通过支持ESMTP的SMTP发送邮件。
      就目前状况来看,使用smtp是最明智的选择,mail不安全,sendmail需要安装配置Sendmail/Postfix,其他要么付费要么不能用。
    • host是邮箱所在主机,比如我们使用163邮箱,对应值是smtp.163.com,使用QQ邮箱的话,对应值是smtp.qq.com
    • port用于配置邮箱发送服务端口号,比如一般默认值是25,但如果设置SMTP使用SSL加密,该值为465。
    • from配置项包含address和name,前者表示发送邮箱,后者表示发送邮件使用的用户名。
    • encryption表示加密类型,可以设置为null表示不使用任何加密,也可以设置为tls或ssl。
    • username表示邮箱账号,比如*****@163.com
    • password表示上述邮箱登录对应登录密码。注意QQ邮箱的话应该开启POP3|SMTP服务时给的密钥。
    • sendmail是在设置driver为sendmail时使用,用于指定sendmail命令路径。
    编写代码进行邮箱测试
    生成控制器:
     php artisan make:controller TextController 
     
    路由:
      Route::get('text/send','TextController@send');
     
    测试代码如下:
    <?php
    namespace AppHttpControllers;
    
    use ElasticsearchClientBuilder;
    use AppJobsQueue;
    use IlluminateSupportFacadesRedis;
    use IlluminateSupportFacadesMail;
    
    class TextController extends Controller
    {
        public function send(){
            $name = '***';
            // Mail::send()的返回值为空,所以可以其他方法进行判断
            Mail::send('text',['name'=>$name],function($message){
                $to = '****@qq.com';
                $message ->to($to)->subject('测试邮箱');
            });
            // 返回的一个错误数组,利用此可以判断是否发送成功
            dd(Mail::failures());
        }
    }
    Mail::send();需要传三个参数,第一个为引用的模板,第二个为给模板传递的变量,第三个为一个闭包,参数绑定Mail类的一个实例。

    Mailer::send文档
    Mailer:: failures文档

    在resresources/views/下创建一个text.blade.php

     {{$name}}你好,这是一封测试文件。 

    最后url地址栏访问测试即可

     

  • 相关阅读:
    Python ES操作
    SVN总结
    MongoDB问题总结
    MySQL
    PyQt小工具
    Python logging模块
    shell脚本
    cmd命令
    eclipse java 项目打包
    Robot Framework:failed: Data source does not exist.错误
  • 原文地址:https://www.cnblogs.com/BrokenHeart/p/10809482.html
Copyright © 2020-2023  润新知