ThinkPHP使用PHPMailer发送邮件的例子

回复 星标
更多
ThinkPHP使用PHPMailer发送邮件的例子»

 

最近一直在用ThinkPHP框架开发项目, 一般进行用户注册的时候都会发送一封验证邮件, 验证注册。在这次做的CRM客户管理系统中需要用到邀请注册这个功能, 团队管理员注册之后可通过邮件邀请团队的其他人员进行注册。 如何给团队人员发送邮件, 很流行的一个邮件发送类库就是PHPMailer。

​方法一»

      ​1. 下载PHPmailer并解压到ThinkPHP\Extend\Vendor文件夹下

      ​2. 用ThinkPHP自带的Vendor方法载入第三方类库

      ​3. 配置相关参数.

      ​4.为了方便随意调用, 在common.php创建一个发送邮件的函数, 之后就可以调用此函数发送邮件了

定义好函数之后,如果想发送邮件,直接调用 sendMail();

可把发送内容, 发送标题, 收件人全部设置为变量, 例如: sendMail($body, $title, $recipient)  收件人可为数组的形式, 在函数里面循环一下就搞定啦!!  SMTP服务器以及发件人的一些配置可以写到Conf\config.php文件中, 直接C()方法调用即可.

方法二»

第一步 先下载PHPMailer.class.php压缩包

解压后会有如下的三个文件:

1.class.pop3.php

2.class.smtp.php

3.PHPMailer.class.php

»»

PHPMailer.class.php这个文件就是核心的文件,把这个文件放到ThinkPHP的扩展包下路径如\下:ThinkPHP\Extend\Library

第二步在ThinkPHP,common文件中新建一个common.php文件写入如下代码:

functionSendMail($address,$title,$message)
{
   import('ORG.Net.PHPMailer');
   $mail=newPHPMailer();
   // 设置PHPMailer使用SMTP服务器发送Email
   $mail->IsSMTP();
   // 设置邮件的字符编码,若不指定,则为'UTF-8'
   $mail->CharSet='UTF-8';
   // 添加收件人地址,可以多次使用来添加多个收件人
   $mail->AddAddress($address);
   // 设置邮件正文
   $mail->Body=$message;
   // 设置邮件头的From字段。
   $mail->From=C('MAIL_ADDRESS');
   // 设置发件人名字
   $mail->FromName='zyimm';
   // 设置邮件标题
   $mail->Subject=$title;
   // 设置SMTP服务器。
   $mail->Host=C('MAIL_SMTP');
   // 设置为“需要验证”
   $mail->SMTPAuth=true;
   // 设置用户名和密码。
   $mail->Username=C('MAIL_LOGINNAME');
   $mail->Password=C('MAIL_PASSWORD');
   // 发送邮件。
   return($mail->Send());
}

第三步 在ThinkPHP,conf.php文件写入如下代码:

注意:以下是的我自己QQ邮箱的测试的,每个邮箱参数不同,具体以邮箱为准,qq邮箱的stmp需要自己到邮箱开启的。

returnarray(
//'配置项'=>'配置值'
'MAIL_ADDRESS'=>'799783009@qq.com', // 邮箱地址 
'MAIL_LOGINNAME'=>'799783009@qq.com', // 邮箱登录帐号
'MAIL_SMTP'=>'smtp.qq.com', // 邮箱SMTP服务器
'MAIL_PASSWORD'=>'******', // 邮箱密码
'SHOW_PAGE_TRACE'=>true,
);

第四步 剩下使用了。在ThinkPHP,IndexAction.class.php文件写入如下代码:

classIndexAction extendsAction {
   publicfunctionindex(){
        if(!empty($_POST['title']) && !empty($_POST['content'])){
           if(SendMail("597417106@qq.com",$_POST['tile'],$_POST['content']))
             echo'发送成功!';
           else
             echo'发送失败';
        }
        $this->assign('title','测试标题');
        $this->display();
   }
}

好了,就这么简单的

方法二算是一个标准的方法了,整体都放到thinkphp类中了,小编推荐使用第二种方案.

新窗口打开 关闭