zhouqi666

TP使用PHPMAILER发送邮件

1.申请一个SMTP服务的邮箱。

我申请的是smtp.163.com的服务,注意SMTP服务密码不是登陆密码,需要单独设置

2.下载phpmailer类库文件http://pan.baidu.com/s/1kUNK9vx

3.PHPMAILER类库中的class.phpmailer.phpclass.smtp.php文件取出来,并重新命名为符合tp5命名规范的Phpmailer.phpSmtp.php

4.在项目根目录下的extend文件夹中,建立phpmailer文件夹,将上面两个改名好的文件放入其中。

5.设置Smtp.php的命名空间为namespace phpmailer;并且将CLASS SMTP改为CLASS Smtp

6.设置Phpmailer.php的命名空间为

namespace phpmailer;

Use phpmailer\Smtp;

并且将CLASS SMTP改为CLASS Phpmaiiler;

这两部很重要,如果使用原来的PHPMAILerSMTP class名的话,TP5报错 无法找到类文件

7.application/extra 下建立email.php文件 将在服务商申请好的邮箱服务信息,放入其中

代码如下

<?php
//发送邮件相关配置
return[
    \'EMAIL_SMTP\'=>\'smtp.163.com\',
    \'EMAIL_ADDRESS\'=>\'zq_1xx8292xx23@163.com\',
    \'EMAIL_LOGINNAME\'=>\'zq_1xx8292xx23@163.com\',
    \'EMAIL_PASSWORD\'=>\'xxxx445864742\',
    \'port\'=>25
];

 

8.phpmailer文件夹下建立新的类库文件Email.php

代码如下:

<?php
namespace phpmailer;
use phpmailer\Phpmailer;
//发送邮件类
class Email{
    public static function send($address,$title,$message)
    {
        $Email = new Phpmailer();
        //设置PHPMailer使用SMTP服务器发送email
        $Email->IsSMTP();

        //设置字符串编码
        $Email->CharSet = \'UTF-8\';

        //添加收件人地址,可以使用多次来添加多个收件人
        $Email->AddAddress($address);

        //设置邮件正文
        $Email->Body = $message;

        //设置邮件头的FROM字段
        $Email->From = config(\'email.EMAIL_ADDRESS\');

        //设置发件人名称
        $Email->FromName = \'周起\';

        //设置邮件标题
        $Email->Subject = $title;

        //设置SMTP服务器
        $Email->Host = config(\'email.EMAIL_SMTP\');

        //设置为验证码
        $Email->SMTPAuth = true;

        //设置用户名密码
        $Email->Username = config(\'email.EMAIL_LOGINNAME\');
        $Email->Password = config(\'email.EMAIL_PASSWORD\');

        //发送邮件
        return ($Email->Send());
    }
}

 

 

9.在需要使用到邮件服务的地方调用

//发送验证邮件 根据业务逻辑修改

$message = ‘hello’;

$title = \'周起个人测试邮件\';

$data[\'email\'] = 445864742@qq.com  
\phpmailer\Email::send($data[\'email\'],$title,$message);

 

分类:

技术点:

相关文章: