ThinkPHP使用PHPMailer发送邮件的例子
发布:smiling 来源: PHP粉丝网 添加日期:2015-04-08 09:44:37 浏览: 评论:0
PHPMailer是一个邮件发送插件了,我们可以把PHPMailer安装包解压到Vendor目录中之后然后简单的配置就可以发邮件了,下面来看一个例子.
最近一直在用ThinkPHP框架开发项目,一般进行用户注册的时候都会发送一封验证邮件,验证注册,在这次做的CRM客户管理系统中需要用到邀请注册这个功能,团队管理员注册之后可通过邮件邀请团队的其他人员进行注册,如何给团队人员发送邮件,很流行的一个邮件发送类库就是PHPMailer.
1.下载PHPmailer并解压到ThinkPHP\Extend\Vendor文件夹下
2.用ThinkPHP自带的Vendor方法载入第三方类库
3.配置相关参数.
4.为了方便随意调用,在common.php创建一个发送邮件的函数,之后就可以调用此函数发送邮件了.
- /**
- * 邮件发送
- */
- function sendMail(){
- // 载入邮件发送类库
- Vendor('PHPMailer.PHPMailerAutoload');
- $mail = new PHPMailer;
- $mail->isSMTP(); //设置PHPMailer使用SMTP服务器发送Email
- $mail->Host = 'smtp.163.com'; //指定SMTP服务器 可以是smtp.126.com, gmail, qq等服务器 自行查询
- $mail->SMTPAuth = true;
- $mail->CharSet='UTF-8'; //设置字符集 防止乱码
- $mail->Username = 'username@163.com'; //发送人的邮箱账户
- $mail->Password = 'xxxxxxxxxx'; //发送人的邮箱密码
- $mail->Port = 25; //SMTP服务器端口
- $mail->From = 'user@admin.com'; //发件人邮箱地址
- $mail->FromName = '在路上'; //发件人名称
- $mail->addAddress('guest@test.com'); // 收件人邮箱地址 此处可以发送多个
- $mail->WordWrap = 50; // 换行字符数
- $mail->isHTML(true); // 设置邮件格式为HTML
- $mail->Subject = '青岛XXX'; //邮件标题
- $mail->Body = '尊敬的先生/女士:<br/>非常抱歉,您接受到这封邮件是因您的好友邀请您加入我们的CRM系统体验当中,请点击以下链接注册账户<a href=####>######</a><br/>如您没有相关意向,请忽略';
- if(!$mail->send()) { //开源软件:phpfensi.com
- echo '邮件发送失败.';
- echo '错误信息: ' . $mail->ErrorInfo;
- } else {
- echo '邮件发送成功';
- }
- }
定义好函数之后,如果想发送邮件,直接调用 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(!emptyempty($_POST['title']) && !emptyempty($_POST['content'])){
- if(SendMail("597417106@qq.com",$_POST['tile'],$_POST['content']))
- echo'发送成功!';
- else
- echo'发送失败';
- }
- $this->assign('title','测试标题');
- $this->display();
- }
- }
好了,就这么简单的,方法二算是一个标准的方法了,整体都放到thinkphp类中了,小编推荐使用第二种方案.
Tags: ThinkPHP邮件 PHPMailer发送邮件
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)