相信很多同學都用過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()方法呼叫即可.<br/>方法二:
第一步先下載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/>
<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(); } }
好了,就這麼簡單的<br/>
方法二算是一個標準的方法了,整體都放到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中文網其他相關文章!