相信很多同学都用过thinkphp,而thinkphp这个框架本身也有类库,这篇文章我们来讲讲thinkphp怎么使用外部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()) { 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文件写入如下代码:
<br/>
第三步 在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类中了,小编推荐使用第二种方案。
php利用smtp类轻松的发送电子邮件
当你还在纠结php内置的mail()函数不能发送邮件时,那么你现在很幸运,此时的这篇文章可以帮助到你!
php利用smtp类来发邮件真是屡试不爽,我用过很久了,基本上没出过问题。本博客后台,当博主回复留言时候,会自动给网友发一封有新回复提示的邮件也是用的本文这个方法实现的。
smtp类发送邮件的方法其实很简单,也很稳定,类是别人已经写好的了,你只需要调用就行了。几行简单的配置就能发邮件,是不是很期待的试一试呢!
以下就是核心代码:
<?php require_once "email.class.php"; //******************** 配置信息 ******************************** $smtpserver = "smtp.126.com";//SMTP服务器 $smtpserverport =25;//SMTP服务器端口 $smtpusermail = "new2008oh@126.com";//SMTP服务器的用户邮箱 $smtpemailto = $_POST['toemail'];//发送给谁 $smtpuser = "new2008oh";//SMTP服务器的用户帐号 $smtppass = "您的邮箱密码";//SMTP服务器的用户密码 $mailtitle = $_POST['title'];//邮件主题 $mailcontent = "<h1>".$_POST['content']."</h1>";//邮件内容 $mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件 //************************ 配置信息 **************************** $smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证. $smtp->debug = false;//是否显示发送的调试信息 $state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype); echo "<div style='width:300px; margin:36px auto;'>"; if($state==""){ echo "对不起,邮件发送失败!请检查邮箱填写是否有误。"; echo "<a href='index.html'>点此返回</a>"; exit(); } echo "恭喜!邮件发送成功!!"; echo "<a href='index.html'>点此返回</a>"; echo "</div>"; ?>
以上就是 ThinkPHP使用PHPMailer发送邮件的例子 两种例子了,更多相关请到PHP中文网搜索~
相关推荐:
以上是ThinkPHP使用PHPMailer发送邮件的例子的详细内容。更多信息请关注PHP中文网其他相关文章!