Laravel5利用163邮箱实现发送邮件mail功能

版权声明:版权归qq175023117所有 https://blog.csdn.net/qq175023117/article/details/85317291

如果在后台用户管理加一个发送邮件的功能,相对来说联系用户就很方便了,所以自己打算研究一下mail邮件的发送。在网上找了很多例子,发现都无法实现,我将使用163邮箱做邮件发送,需登录163邮箱开启POP3和SMTP服务,以及生成授权密码,在.env进行配置

MAIL_DRIVER=smtp
MAIL_HOST=smtp.163.com
MAIL_PORT=465
MAIL_USERNAME=你的163邮箱地址
MAIL_PASSWORD=你的163邮箱地址对应的授权密码(不是登录密码)
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=你的163邮箱地址
MAIL_FROM_NAME=发送邮件使用的用户名
  • driver用于配置默认的邮件发送驱动,我们用SMTP(Simple Message Transfer Protocol)简单邮件传输协议
  • host是邮箱所在主机,比如我们使用163邮箱,对应值是smtp.163.com,使用QQ邮箱的话,对应值是smtp.qq.com
  • port用于配置邮箱发送服务端口号,比如一般默认值是25,但如果设置SMTP使用SSL加密,该值为465
  • username表示邮箱账号
  • password表示上述邮箱对应的授权密码
  • encryption表示加密类型,可以设置为null表示不使用任何加密,也可以设置为tls或ssl。
  • from配置项包含address和name,前者表示发送邮箱,后者表示发送邮件使用的用户名。

使用163邮箱做的发送,需登录163邮箱开启POP3和SMTP服务,以及生成授权密码。

 点击下面的客户端授权密码进行设置,这里我已经设置好了

路由定义

Route::post('/users/sms_email','UsersController@sendEmail');

控制器代码(发送纯文本邮件)

MAIL_FROM_ADDRESS、MAIL_FROM_NAME需要在env进行设置否则发送邮件失败

    public function sendEmail(Request $request)
    {
        // 获取邮箱标题
        $title = $request->input('title');
        // 获取邮箱内容
        $content = $request->input('content');

        $toMail = '对方邮箱地址';

        Mail::raw($content, function ($message) use ($toMail, $title) {
            $message->subject($title);
            $message->to($toMail);
        });
        
    }

下面我将展示测试截图,以保证代码的有效性 

希望可以对大家有所帮助,如有疑问,欢迎骚扰

猜你喜欢

转载自blog.csdn.net/qq175023117/article/details/85317291