天天看点

laravel 5.1发送邮件

考虑到可能会有多个控制器使用到邮件发送功能,我们特地将其写在一个独立的文件夹下,其他控制器使用时只需引入即可。

首先,可以参考一下文档:https://laravel-china.org/docs/laravel/5.1/mail/1070

在这里我们不使用任何驱动

第一步,创建email目录,并在email目录下创建一个视图(例如text.blade.php),内容不重要,后面要用。

第二步,配置".env"文件,首先要确定要用来发送邮件的邮箱类型(qq邮箱、企业邮箱、163邮箱、google邮箱等),这里先使用腾讯企业邮箱做个示范,大家有兴趣可以自己坐一下其他的。

打开企业邮箱,找到“设置-->客户端设置-->设置方法”,记住发送服务器以及起后面的端口号,

laravel 5.1发送邮件

就是这一条,不同类型的邮箱服务器也不一样,这里就是为了让大家记住这一个步骤,然后来填写 .env,如下图,大家可以发现前两条是我们上面的服务器与端口号。

laravel 5.1发送邮件

第三步,配置“config/mail”文件,

laravel 5.1发送邮件
laravel 5.1发送邮件

第四步,编写“Helpers/Email”类,这一步可以参照 https://laravel-china.org/docs/laravel/5.1/mail/1070上的:

public function send(Request $request, $id)
    {
        $user = User::findOrFail($id);

        Mail::send('emails.reminder', ['user' => $user], function ($m) use ($user) {
            $m->from('[email protected]', 'Your Application');

            $m->to($user->email, $user->name)->subject('Your Reminder!');
        });
    }
           

这一段代码,这里的“emails.reminder”可以替换为 “ email.text ”,知道是从哪来的吗?上面创建的 。

第五步,在“UserController”中调用上一步的类,

laravel 5.1发送邮件

自己配置好路由,postmen里面测试一下。

laravel 5.1发送邮件

,如果一直无响应,最后报超时错误,那就要注意了,可能是服务器的端口被防火墙关闭,那么就需要关闭防火墙再试试。首先,需要知道,只有管理员有权限关闭防火墙,即切换到root,如果忘记密码可以 “sudo passwd root”,然后输入新密码。现在再来切换到root,再来操作防火墙:1、service iptables stop/start/status 2、systemctl stop firewalld 具体可以参考这位大神的:https://blog.csdn.net/qq_35971258/article/details/79318842

好了就说这么多,能自己爬上来的坑才是好坑。