您的位置:首页 > 编程语言 > PHP开发

ThinkPHP3.2结合PHPMailer发送邮件

2015-06-27 08:15 615 查看
前些天没事儿捣鼓了下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一起学习交流
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息