专栏首页LNMP开发那些事laravel框架发送邮件配置

laravel框架发送邮件配置

本篇主要内容是laravel框架发送邮件的配置流程。 laravel提供了多种驱动来实现发送邮件功能,使用API方式的驱动相对来说更加高效,但是提供API服务的邮箱比较少,而且可能是收费的,所以还是使用SMTP协议驱动来配置。国内的大部分邮箱都支持smtp服务,以下配置流程以网易126邮箱为例。

1. 首先放通服务器端口

我最开始配置,感觉配置都没有问题,最后发现是因为服务器安全组没有打开。所以,在配置之前,建议检查一下服务器是否打开25或者465端口。 检查项目主要包括firewall和云服务商的安全组配置。

2. 在邮箱开启smtp服务

126邮箱在设置-POP3/SMTP/IMAP中,另外还需要在设置-客户端授权密码中设置授权码。

3. 打开laravel框架根目录下的.env文件,添加以下配置,内容请根据个人情况填写。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.126.com
MAIL_PORT=465
MAIL_USERNAME=zhangsan@126.com
MAIL_PASSWORD=zhangsanzhangsan
MAIL_FROM_ADDRESS=zhangsan@126.com
MAIL_FROM_NAME=zhangsan
MAIL_ENCRYPTION=ssl

需要注意的是MAIL_ENCRYPTION可以根据需要修改,但是如果不使用ssl,也需要修改MAIL_PORT为25端口。

4. 编写可邮寄类

4.1 可以通过以下命令来生成可邮寄类:

php artisan make:mail UserRegister

4.2 也可以直接在App\Mail中新建文件来创建邮寄类,邮寄类需要继承Illuminate\Mail\Mailable类。

4.3 通过build方法来设置邮件视图。

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class UserRegister extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->view('mail.user.register');
    }
}

5. 编写视图文件

视图文件就是正常的blade模板,可以使用所有的blade模板功能。正常编写html即可。如果需要携带数据,可以在可邮寄类的build方法中使用with来传送要使用的数据到视图文件中。

6. 现在就已经可以发送邮件了,下面我们来测试一下发送邮件

首先我们创建一个测试路由,用来测试发送邮件,打开routes/web.php文件,添加以下内容。

Route::get('/test', function () {
    \Illuminate\Support\Facades\Mail::to('ianzhi@126.com')->send(new \App\Mail\UserRegister());
});

现在就可以通过访问/test来测试发送邮件了。

通过以上配置,我们就可以通过laravel框架发送邮件啦~

文章作者ianzhi,原文地址:https://www.dnote.cn/users/ianzhi/posts/laravelkuangjiafasongyoujianpeizhi

文章版权归作者所有,转载请保留此声明。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 配置 - 集成 - 构建文档 - ckeditor5中文文档

    ClassicEditor .create( document.querySelector( '#editor' ), {         toolbar: [...

    ianzhi
  • laravel使用gravatar作为默认头像

    文章作者ianzhi,原文地址:https://www.dnote.cn/users/ianzhi/posts/laravelshiyonggravatarzu...

    ianzhi
  • 概览 - 框架 - 集成 - 构建文档 - ckeditor5中文文档

    是。 CKEditor 5与我们目前所听到的每个JavaScript框架兼容。 CKEditor 5是一个JavaScript富文本编辑组件(相当复杂但仍然如此...

    ianzhi
  • PHP 7 vs HHVM 直接性能对比

    PHP 是最流行的用于 web 开发的脚本语言之一。PHP 的最新版本,PHP 7 在性能上做了很大的优化。不过,PHP 还有一个竞争对手 HHVM (HipH...

    猿哥
  • SpringBoot系列之日志框架介绍及其原理简介

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    SmileNicky
  • XCode v8.11 重量级分表分库(无视海量数据)

    XCode天生就有分表分库功能,设计于2005年! 历时9年,这是分表分库功能第一次针对性正式更新。 在XCode里面,分表分库非常简单,在操作数据(查询/更...

    大石头
  • Stimulus:让web应用在移动端达到原生体验

    【IT168 资讯】很多开发者一年来通过Basecamp写了很多JavaScript,但是并没有用它来创建现代意义上的“JavaScript应用程序”。所有的应...

    企鹅号小编
  • 【AI核心技术】课程八:卷积网络简介

    UAI与PaddlePaddle联合推出的【AI核心技术掌握】系列课程持续更新中!

    用户1386409
  • 如何定位Oracle数据库被锁阻塞会话的根源

    首先再次明确下,数据库因为要同时保证数据的并发性和一致性,所以操作有锁等待是正常的。 只有那些长时间没有提交或回滚的事物,阻塞了其他业务正常操作,才是需要去定...

    Alfred Zhao
  • python数据库-MySQL数据库的增删改查基本操作(49)

    整数: tinyint、smallint、mediumint、int、bigint 浮点数: float、double、real、decimal 日期和时间: ...

    Se7eN_HOU

扫码关注云+社区

领取腾讯云代金券