ThinkPHP3.2结合PHPMailer发送邮件

来源:互联网 发布:什么软件可以群发短信 编辑:程序博客网 时间:2024/06/08 11:10

前些天没事儿捣鼓了下TP3.2结合PHPMailer发送邮件,记录下来,一方面做为笔记,另一方面也希望能对大家有所帮助


准备工作:

下载 ThinkPHP3.23

下载 PHPMailer


方法一

1.将PHPMailer解压后 在ThinkPHP\Library\Org\Util目录下新建一个文件夹PHPMailer,如果你觉得麻烦可以将解压后的所有文件放到该文件夹下,或者只将class.phpmailer.php和class.smtp.php这两个文件拷贝到该目录下即可


2.在Common模块中的function.php中添加一个公共的方法

<span style="font-size:14px;">function sendEmail($toUser,$toUserAlias,$subject,$content){$mail = new Org\Util\PHPMailer\PHPMailer;//因为我个人将两个类文件名分别改为了PHPMailer.class.php和</span><span style="font-size:14px;">SMTP.class.php $mail->isSMTP();$mail->CharSet='UTF-8';$mail->Host = 'smtp.qq.com';  $mail->SMTPAuth = true; $mail->Username = '595736620@qq.com';                 $mail->Password = '******';                           $mail->Port = 25;$mail->From = '595736620@qq.com';$mail->FromName = '胡小军';$mail->addAddress($toUser,$toUserAlias);$mail->WordWrap = 50; $mail->isHTML(true);$mail->Subject = $subject;$mail->Body    = $content;$mail->AltBody = $content;if(!$mail->send()){exit(json_encode(array('code'=>-9,'msg'=>$mail->ErrorInfo)));}}</span>
在该方法中,相关参数可以从配置文件中读取,为了方便阅读,我给些成了固定的;相关参数大家可以百度下,根据自己的业务需求来配置相关参数;

注意:1.该形式需要添加命名空间  两个主要的类文件都需要添加

namespace Org\Util\PHPMailer;class PHPMailer{ //注意添加位置

2.运行时class phpmailerException extends Exception会报错,原因是not found class Exception

解决办法是改为class phpmailerException extends \Exception 或者 class phpmailerException extends Think\Exception


3.调用 在控制器中调用sendEmail()方法即可

<span style="font-size:14px;">sendEmail('1031393320@qq.com','思狐工作室','phpmailer邮件测试','测试邮件内容');</span>

方法二

1.将PHPMailer解压后 在ThinkPHP\Library\Vendor目录下新建一个文件夹PHPMailer,如果你觉得麻烦可以将解压后的所有文件放到该文件夹下,或者只将class.phpmailer.php和class.smtp.php这两个文件拷贝到该目录下即可


2.在Common模块中的function.php中添加一个公共的方法

<span style="font-size:14px;">function sendEmail($toUser,$toUserAlias,$subject,$content){vendor('PHPMailer.class#phpmailer');        vendor('PHPMailer.class#smtp');        $mail = new PHPMailer();$mail->isSMTP();$mail->CharSet='UTF-8';$mail->Host = 'smtp.qq.com';  $mail->SMTPAuth = true; $mail->Username = '595736620@qq.com';                 $mail->Password = 'huxiaojun1989';                           $mail->Port = 25;$mail->From = '595736620@qq.com';$mail->FromName = '胡小军';$mail->addAddress($toUser,$toUserAlias);$mail->WordWrap = 50; $mail->isHTML(true);$mail->Subject = $subject;$mail->Body    = $content;$mail->AltBody = $content;if(!$mail->send()){exit(json_encode(array('code'=>-9,'msg'=>$mail->ErrorInfo)));}}</span>
方法体和方法一几乎一样,区别在于导入方式;采用该方法不用修改命名空间;


3.调用 在控制器中调用sendEmail()方法即可

<span style="font-size:14px;">sendEmail('1031393320@qq.com','思狐工作室','phpmailer邮件测试','测试邮件内容');</span>

我也是小白,但如果在使用中遇到什么问题,或是以上有什么不对的地方,可以加我Q:595736620一起学习交流


0 0
原创粉丝点击