Thinkphp如何发送邮件。

Thinkphp如何发送邮件。

1、百度搜索 packagist (用来管理包的网站)

搜索phpmailer,点第二个进去

Thinkphp如何发送邮件。插图

Thinkphp如何发送邮件。插图(1)

在phpstrom中使用composer下载,以下代码(注意使用composer安装之前,要记得换源  composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/    )

composer require phpmailer/phpmailer

2、安装完成后,在thinphp包目录下vendor/下会有一个phpmaier文件夹,表示下载成功。

Thinkphp如何发送邮件。插图(2)

3、接下来在tp框架的application\下的common.php中添加代码,网站

可以直接复制这段简单的案例

Thinkphp如何发送邮件。插图(3)

下面这段代码是我测试邮件用的代码。有备注了详细注释的


// 应用公共文件
use PHPMailer\PHPMailer\PHPMailer;//这个是发邮件的类,引入进来
use PHPMailer\PHPMailer\Exception;//这个是发邮件失败了,报出异常
//这里是公共函数,用来创建前后端公用的内容

//require 'vendor/autoload.php';//用于composer自动加载
//$mailto要发送给谁。这里我给了4个字段,你可以自己定义,在model模型文件中直接调用email()这个函数即可
function email($mailto, $nickname, $subject, $content)
{
    $mail = new PHPMailer(true); //实例化加载这个类,如果说邮件发送失败了,可以抛出异常
                                 //开发环境下,是需要打开异常抛出的,实际情况下可以false关闭

    try {
        $mail->SMTPDebug = 2;        //这里是调试模式,2的话表示详细错误信息,1的话是简要错误信息,0的话是不显示错误信息。 启用详细的调试输出
        $mail->isSMTP();                                      // 设置邮件使用SMTP
        $mail->Host = 'smtp.qq.com';        // 指定主和备份SMTP服务器
        $mail->SMTPAuth = true;                               // 使SMTP认证
        $mail->Username = 'xxxx@qq.com';                 // SMTP用户名
        $mail->Password = 'xxxx';                           // SMTP 密码,注意这里不是你登录的密码。这个地方你要去136或者qq邮箱,去开通这个SMTP服务,他会提供一段密码给你的,
        $mail->SMTPSecure = 'ssl';                            // 启用TLS加密,也接受“ssl”
        $mail->Port = 465;                                    // 要连接的TCP端口
        $mail->CharSet = 'utf-8';                              //要发送的内容格式

        //Recipients
        $mail->setFrom('xxxx@qq.com', '来自马云'); //发邮件人
        $mail->addAddress($mailto, $nickname);    //收件人,可以设置好几个

        //$mail->addReplyTo('xxx@163.com','xxx');   //这里是回复人,就是说收件用户,要回信是发给谁的,如果这里不写就默认上面的发件邮箱。
        //$mail->addCC('xxx@163.com'); //这里是抄送地址;

        //Attachments
        //$mail->addAttachment('var/tmp/file.tar.gz');  //发送的时候是否添加附件


        //Content
        $mail->isHTML(true);                                  // 设置电子邮件格式为HTML
        $mail->Subject = $subject;
        $mail->Body    = $content;
      //  $mail->AltBody='发送错误';          //表示isHTML发送失败,就发送这个内容。

        return $mail->send();       //这里是发送方法
    }catch (Exception $e) {
       exception($mail->ErrorInfo(), 1001);
    }
}

4、最后测试,成功收到邮件

Thinkphp如何发送邮件。插图(4)

没有账号? 忘记密码?

社交账号快速登录