本篇主要内容是laravel框架发送邮件的配置流程。 laravel提供了多种驱动来实现发送邮件功能,使用API方式的驱动相对来说更加高效,但是提供API服务的邮箱比较少,而且可能是收费的,所以还是使用SMTP协议驱动来配置。国内的大部分邮箱都支持smtp服务,以下配置流程以网易126邮箱为例。
我最开始配置,感觉配置都没有问题,最后发现是因为服务器安全组没有打开。所以,在配置之前,建议检查一下服务器是否打开25或者465端口。
检查项目主要包括firewall和云服务商的安全组配置。
126邮箱在设置-POP3/SMTP/IMAP中,另外还需要在设置-客户端授权密码中设置授权码。
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端口。
php artisan make:mail UserRegister
<?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');
}
}
视图文件就是正常的blade模板,可以使用所有的blade模板功能。正常编写html即可。如果需要携带数据,可以在可邮寄类的build方法中使用with来传送要使用的数据到视图文件中。
Route::get('/test', function () {
\Illuminate\Support\Facades\Mail::to('ianzhi@126.com')->send(new \App\Mail\UserRegister());
});
现在就可以通过访问/test
来测试发送邮件了。
通过以上配置,我们就可以通过laravel框架发送邮件啦~
文章作者ianzhi,原文地址:https://cloud.tencent.com/developer/article/1476968
文章版权归作者所有,转载请保留此声明。