PHP實(shí)現(xiàn)SMTP郵件的發(fā)送實(shí)例
當(dāng)你還在糾結(jié)php內(nèi)置的mail()函數(shù)不能發(fā)送郵件時(shí),那么你現(xiàn)在很幸運(yùn),此時(shí)的這篇文章可以幫助到你!
php利用smtp類(lèi)來(lái)發(fā)郵件真是屢試不爽,我用過(guò)很久了,基本上沒(méi)出過(guò)問(wèn)題。本博客后臺(tái),當(dāng)博主回復(fù)留言時(shí)候,會(huì)自動(dòng)給網(wǎng)友發(fā)一封有新回復(fù)提示的郵件也是用的本文這個(gè)方法實(shí)現(xiàn)的。
smtp類(lèi)發(fā)送郵件的方法其實(shí)很簡(jiǎn)單,也很穩(wěn)定,類(lèi)是別人已經(jīng)寫(xiě)好的了,你只需要調(diào)用就行了。幾行簡(jiǎn)單的配置就能發(fā)郵件,是不是很期待的試一試呢!
<?php
/**
* @param $address mixed 收件人 多個(gè)收件人/或需要設(shè)置收件人昵稱(chēng)時(shí)為數(shù)組 array($address1,$address1)/array(array('address'=>$address1,'nickname'=>$nickname1),array('address'=>$address2,'nickname'=>$nickname2))
* @param $subject string 郵件主題
* @param $body string 郵件內(nèi)容
* @param $file string 附件
* @return bool|string 發(fā)送成功返回true 反之返回報(bào)錯(cuò)信息
* @throws Exception
*/
function send_mail_by_smtp($address, $subject, $body, $file = '')
{
require('./PHPMailer-master/Exception.php');
require('./PHPMailer-master/PHPMailer.php');
require('./PHPMailer-master/SMTP.php');
//date_default_timezone_set("Asia/Shanghai");//設(shè)定時(shí)區(qū)東八區(qū)
$mail = new PHPMailer();
//Server settings
$mail->SMTPDebug = 2;
$mail->isSMTP(); // 使用SMTP方式發(fā)送
$mail->Host = 'smtp.126.com'; // SMTP郵箱域名
$mail->SMTPAuth = true; // 啟用SMTP驗(yàn)證功能
$mail->Username = "*****@126.com"; // 郵箱用戶(hù)名(完整email地址)
$mail->Password = "*****"; // smtp授權(quán)碼,非郵箱登錄密碼
$mail->Port = 25;
$mail->CharSet = "utf-8"; //設(shè)置字符集編碼 "GB2312"
// 設(shè)置發(fā)件人信息,顯示為 你看我那里像好人(xxxx@126.com)
$mail->setFrom($mail->Username, '你看我那里像好人');
//設(shè)置收件人 參數(shù)1為收件人郵箱 參數(shù)2為該收件人設(shè)置的昵稱(chēng) 添加多個(gè)收件人 多次調(diào)用即可
//$mail->addAddress('********@163.com', '你看我那里像好人');
if (is_array($address)) {
foreach ($address as $item) {
if (is_array($item)) {
$mail->addAddress($item['address'], $item['nickname']);
} else {
$mail->addAddress($item);
}
}
} else {
$mail->addAddress($address, 'adsf');
}
//設(shè)置回復(fù)人 參數(shù)1為回復(fù)人郵箱 參數(shù)2為該回復(fù)人設(shè)置的昵稱(chēng)
//$mail->addReplyTo('*****@126.com', 'Information');
if ($file !== '') $mail->AddAttachment($file); // 添加附件
$mail->isHTML(true); //郵件正文是否為html編碼 true或false
$mail->Subject = $subject; //郵件主題
$mail->Body = $body; //郵件正文 若isHTML設(shè)置成了true,則可以是完整的html字符串 如:使用file_get_contents函數(shù)讀取的html文件
//$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; //附加信息,可以省略
return $mail->Send() ? true : 'ErrorInfo:' . $mail->ErrorInfo;
}
$path = '.\wpic907.jpg';
$ret = send_mail_by_smtp('*******@163.com', 'PHPMailer郵件標(biāo)題', 'PHPMailer郵件內(nèi)容', $path);
相關(guān)文章
php實(shí)現(xiàn)的Timer頁(yè)面運(yùn)行時(shí)間監(jiān)測(cè)類(lèi)
這篇文章主要介紹了php實(shí)現(xiàn)的Timer頁(yè)面運(yùn)行時(shí)間監(jiān)測(cè)類(lèi),可實(shí)現(xiàn)按不同key檢測(cè)不同的運(yùn)行時(shí)間,需要的朋友可以參考下2014-09-09
php將xml轉(zhuǎn)化對(duì)象的實(shí)例詳解
在本篇文章里小編給大家整理的是一篇關(guān)于php將xml轉(zhuǎn)化對(duì)象的實(shí)例詳解內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)下。2021-10-10
php中&&和||邏輯運(yùn)算符的高級(jí)簡(jiǎn)寫(xiě)(縮寫(xiě)條件)用法由淺入深講解
php中if進(jìn)行多條件判斷時(shí),使用邏輯運(yùn)算符&&和||(and和or),這樣的寫(xiě)法很常見(jiàn)也很熟悉。&&和||還有高級(jí)簡(jiǎn)寫(xiě)(縮寫(xiě)條件)用法,比如單獨(dú)一行中“條件A||條件B”進(jìn)行了什么操作?本文將由淺入深詳細(xì)講解php中&&和||邏輯運(yùn)算符的高級(jí)簡(jiǎn)寫(xiě)(縮寫(xiě)條件)用法。2022-11-11
對(duì)比分析php中Cookie與Session的異同
這篇文章主要通過(guò)多方面對(duì)比分析php中Cookie與Session的區(qū)別,分別對(duì)Cookie與Session做一個(gè)簡(jiǎn)單介紹和總結(jié),感興趣的小伙伴們可以參考一下2016-02-02
PHP使用PHPexcel導(dǎo)入導(dǎo)出數(shù)據(jù)的方法
這篇文章主要介紹了PHP使用PHPexcel導(dǎo)入導(dǎo)出數(shù)據(jù)的方法,以實(shí)例形式較為詳細(xì)的分析了PHP使用PHPexcel實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入與導(dǎo)出操作相關(guān)技巧,需要的朋友可以參考下2015-11-11
如何修改和添加Apache的默認(rèn)站點(diǎn)目錄
本篇文章是對(duì)修改和添加Apache的默認(rèn)站點(diǎn)目錄方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07

