thinkphp集成系列之phpmailer批量发送邮件
前段時(shí)間寫(xiě)了一篇博客:thinkphp集成系列之短信驗(yàn)證碼、訂單通知
說(shuō)了這是一個(gè)短信通知泛濫的年代;大部分網(wǎng)站的郵箱注冊(cè)都已經(jīng)被短信注冊(cè)所取代;
但是郵件和短信相比在一些場(chǎng)景依然有著重要的意義和優(yōu)勢(shì);
1:零成本;發(fā)郵件沒(méi)有費(fèi)用;
2:內(nèi)容豐富且量大;郵件可以長(zhǎng)篇大論;圖文并茂;
3:增加訪問(wèn)量;用戶(hù)很容易通過(guò)郵件中的鏈接訪問(wèn)網(wǎng)站;
好了;下面來(lái)來(lái)為thinkphp集成郵件系統(tǒng);
示例項(xiàng)目:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin
一:引入phpmail
從示例項(xiàng)目中復(fù)制兩個(gè)文件到自己的項(xiàng)目;
/ThinkPHP/Library/Org/Nx/class.phpmailer.php ;
/ThinkPHP/Library/Org/Nx/class.smtp.php ;
不要從官網(wǎng)上下載;因?yàn)橄螺d的phpmail直接引入thinkphp是有一些坑會(huì)報(bào)錯(cuò)的;
具體報(bào)什么錯(cuò);年代久遠(yuǎn);當(dāng)年整合的時(shí)候沒(méi)有記錄;
二:設(shè)置配置項(xiàng)
/Application/Common/Conf/config.php
????'EMAIL_FROM_NAME'????????=>?'',?//?發(fā)件人'EMAIL_SMTP'?????????????=>?'',?//?SMTP服務(wù)器'EMAIL_USERNAME'?????????=>?'',?//?賬號(hào)'EMAIL_PASSWORD'?????????=>?'',?//?密碼如果使用163郵箱;此處有一個(gè)坑;首先是要開(kāi)啟smtp;
開(kāi)啟過(guò)程中是要設(shè)置一個(gè)授權(quán)密碼;開(kāi)啟完成;又一個(gè)坑也就同步挖好了;
配置項(xiàng)中的EMAIL_PASSWORD 指的不是163郵箱的登錄密碼;而是授權(quán)密碼;
否則SMTP connect() failed;
三:發(fā)送郵件
/***?發(fā)送郵件*?@param??string?$address?需要發(fā)送的郵箱地址?發(fā)送給多個(gè)地址需要寫(xiě)成數(shù)組形式*?@param??string?$subject?標(biāo)題*?@param??string?$content?內(nèi)容*?@return?boolean???????是否成功*/ function?send_email($address,$subject,$content){$email_smtp=C('EMAIL_SMTP');$email_username=C('EMAIL_USERNAME');$email_password=C('EMAIL_PASSWORD');$email_from_name=C('EMAIL_FROM_NAME');if(empty($email_smtp)?||?empty($email_username)?||?empty($email_password)?||?empty($email_from_name)){return?array("error"=>1,"message"=>'郵箱配置不完整');}require?'./ThinkPHP/Library/Org/Nx/class.phpmailer.php';require?'./ThinkPHP/Library/Org/Nx/class.smtp.php';$phpmailer=new?\Phpmailer();//?設(shè)置PHPMailer使用SMTP服務(wù)器發(fā)送Email$phpmailer->IsSMTP();//?設(shè)置為html格式$phpmailer->IsHTML(true);//?設(shè)置郵件的字符編碼'$phpmailer->CharSet='UTF-8';//?設(shè)置SMTP服務(wù)器。$phpmailer->Host=$email_smtp;//?設(shè)置為"需要驗(yàn)證"$phpmailer->SMTPAuth=true;//?設(shè)置用戶(hù)名$phpmailer->Username=$email_username;//?設(shè)置密碼$phpmailer->Password=$email_password;//?設(shè)置郵件頭的From字段。$phpmailer->From=$email_username;//?設(shè)置發(fā)件人名字$phpmailer->FromName=$email_from_name;//?添加收件人地址,可以多次使用來(lái)添加多個(gè)收件人if(is_array($address)){foreach($address?as?$addressv){$phpmailer->AddAddress($addressv);}}else{$phpmailer->AddAddress($address);}//?設(shè)置郵件標(biāo)題$phpmailer->Subject=$subject;//?設(shè)置郵件正文$phpmailer->Body=$content;//?發(fā)送郵件。if(!$phpmailer->Send())?{$phpmailererror=$phpmailer->ErrorInfo;return?array("error"=>1,"message"=>$phpmailererror);}else{return?array("error"=>0);} }?
發(fā)送郵件調(diào)用函數(shù);
send_email('baijunyao@baijunyao','郵件標(biāo)題','郵件內(nèi)容'); //?如果群發(fā)郵件?則傳入數(shù)組即可 $emails=array('b1@baijunyao.com','b2@baijunyao.com'); send_email($emails,'郵件標(biāo)題','郵件內(nèi)容');?
本文為白俊遙原創(chuàng)文章,轉(zhuǎn)載無(wú)需和我聯(lián)系,但請(qǐng)注明來(lái)自白俊遙博客http://baijunyao.com ? ? ? ? ? ? ? ? ? ? ? ?
轉(zhuǎn)載于:https://blog.51cto.com/shuaibai123/1784209
總結(jié)
以上是生活随笔為你收集整理的thinkphp集成系列之phpmailer批量发送邮件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HDU5709 : Claris Lov
- 下一篇: 面试方法