tp5.1邮件发送封装

composer require phpmailer/phpmailer (不要去网上下载phpmailer包)

解释:tp5.1严格遵循PSR-4规范,不再建议手动导入类库文件,所以新版框架取消了,Load::import方法以及vendor助手函数,tp5.1框架的底层思想就是用类的自动加载机制,我后面会写一个解析tp5.1底层框架的博客,如果实在没有composer包的话,那只能用php内置的include或require方法.

extend/Mailer/Mailer.php目录

<?php

namespace Mailer;
use PHPMailer\PHPMailer\PHPMailer;

class Mailer
{
    /**
     * desc 发送普通邮件
     * param $title 邮件标题
     * param $message 邮件正文
     * param $emailAddress 邮件地址
     * return bool|string 返回是否发送成功
     */
    public static function SendEmail($title, $message, $emailAddress)
    {
        $mail = new PHPMailer();
        $mail->IsSMTP();                                            //告诉服务器使用smtp协议发送
        $mail->SMTPAuth = true;                                     //开启SMTP授权
        $mail->Host = Config('mail.Host');                  //smtp服务器(qq or 163?)
        $mail->From = Config('mail.From');                  //发送者的邮件地址(邮箱帐号)
        $mail->FromName = Config('mail.FromName');          //发送邮件的用户昵称(随意)
        $mail->Username = Config('mail.Username');          //邮箱帐号
        $mail->Password = Config('mail.Password');          //第三方登录的授权码(非邮箱密码),qq密码改变的话,旧授权码会失效
        //编辑发送的邮件内容
        $mail->IsHTML(true);                                //发送的内容使用html编写
        $mail->CharSet = 'utf-8';                                   //设置发送内容的编码
        $mail->Subject = $title;                                    //设置邮件的标题
        $mail->MsgHTML($message);                                   //发送的邮件内容主体
        $mail->AddAddress($emailAddress);                           //收人的邮件地址
        //调用send方法,执行发送
        $result = $mail->Send();
        if ($result) {
            return true;
        } else {
            return $mail->ErrorInfo;
        }
    }

Tp第三方类库报 class not found,报这种错误,如果类库在extend目录下,则需要命名空间要与目录名保持一致.类名必须和文件名保持一致!!首字母必须大写!!!!

赞赏

微信赞赏支付宝赞赏

发表评论