使用PHPMailer發(fā)送郵件實例
本文實例為大家分享了PHPMailer發(fā)送郵件的具體代碼,供大家參考,具體內(nèi)容如下
PHPMailer類源代碼下載地址:https://github.com/PHPMailer/PHPMailer
<?php
/*
to: 郵件接收地址
subject: 郵件主題
body: 郵件內(nèi)容
attachpath:附件地址
cc: 郵件抄送地址
bcc: 郵件暗抄送地址
*/
function send_mail($to, $subject="", $body="", $attachpath="", $cc="", $bcc="")
{
// 對郵件內(nèi)容進行必要的過濾
$body = eregi_replace("[\]",'',$body);
// 設(shè)定時區(qū)
date_default_timezone_set("PRC");
require_once('class.phpmailer.php');
require_once("class.smtp.php");
// 實例化PHPMailer對象
$mail = new PHPMailer();
// 設(shè)定郵件編碼,默認ISO-8859-1,如果發(fā)中文此項必須設(shè)置為 UTF-8
$mail->CharSet ="UTF-8";
// 設(shè)定使用SMTP服務(wù)
$mail->IsSMTP();
// 啟用 SMTP 驗證功能
$mail->SMTPAuth = true;
// SMTP 安全協(xié)議
$mail->SMTPSecure = "ssl";
// SMTP 服務(wù)器
$mail->Host = "smtp.qq.com";
// SMTP服務(wù)器的端口號
$mail->Port = 465;
// SMTP服務(wù)器用戶名和密碼
$mail->Username = "xxxxxx@qq.com";
$mail->Password = "xxxxxx";
// 設(shè)置發(fā)件人地址和名稱,名稱可有可無
$mail->SetFrom("xxxxxx@qq.com", "xxxxxx");
// 設(shè)置郵件接收地址和名稱,第二個參數(shù)無所謂。必須用AddAddress添加郵件接收地址。AddReplyTo方法沒什么用。
//$mail->AddReplyTo("xxxxxx@163.com", "xxxxxx");
$mailaddrs = split(",", $to);
foreach ($mailaddrs as $addres)
{
//校驗郵箱地址是否合法
if (filter_var($addres, FILTER_VALIDATE_EMAIL))
{
$mail->AddAddress($addres);
}
}
// 設(shè)置郵件抄送地址
if ($cc != "")
{
$ccaddrs = split(",", $cc);
foreach ($ccaddrs as $ccaddr)
{
//校驗郵箱地址是否合法
if (filter_var($ccaddr, FILTER_VALIDATE_EMAIL))
{
$mail->addCC($ccaddr);
}
}
}
// 設(shè)置郵件暗抄送地址,私密發(fā)送
if ($bcc != "")
{
$bccaddrs = split(",", $bcc);
foreach ($bccaddrs as $bccaddr)
{
//校驗郵箱地址是否合法
if (filter_var($bccaddr, FILTER_VALIDATE_EMAIL))
{
$mail->addBCC($bccaddr);
}
}
}
// 設(shè)置郵件主題
$mail->Subject = $subject;
// 可選項,向下兼容考慮
$mail->AltBody = "為了查看該郵件,請切換到支持 HTML 的郵件客戶端";
// 設(shè)置郵件內(nèi)容
$mail->MsgHTML($body);
//使用HTML格式發(fā)送郵件
$mail->IsHTML(true);
// 添加附件,第一個參數(shù)是附件地址,第二個參數(shù)附件名
//$mail->AddAttachment("images/phpmailer.gif");
$mail->AddAttachment($attachpath);
// 發(fā)送郵件
if(!$mail->Send())
{
echo "發(fā)送失?。? . $mail->ErrorInfo . PHP_EOL;
}
else
{
echo "恭喜,郵件發(fā)送成功!" . PHP_EOL;
}
}
$emailAddr = "xxxxxx@163.com,xxxxxx@qq.com,";
send_mail($emailAddr, "測試郵件", "<h1>使用PHPMailer類發(fā)送的郵件。</h1>", "mail/20170216.gif", "xxxxxx@qq.com", "");
?>
測試結(jié)果:

說明:第44行的SMTP服務(wù)器密碼為qq郵箱授權(quán)碼。
登錄QQ郵箱->設(shè)置->賬戶->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務(wù)->生成授權(quán)碼

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PHP框架實現(xiàn)WebSocket在線聊天通訊系統(tǒng)
這篇文章主要介紹了PHP框架結(jié)合實現(xiàn)WebSocket在線聊天通訊系統(tǒng),非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11
ThinkPHP框架獲取最后一次執(zhí)行SQL語句及變量調(diào)試簡單操作示例
這篇文章主要介紹了ThinkPHP框架獲取最后一次執(zhí)行SQL語句及變量調(diào)試簡單操作,結(jié)合實例形式分析了thinkPHP獲取最后一次執(zhí)行SQL語句的getLastSql()及fetchSql()函數(shù)以及使用dump方法變量調(diào)試、E方法輸出錯誤信息等操作技巧,需要的朋友可以參考下2018-06-06
php處理靜態(tài)頁面:頁面設(shè)置緩存時間實例
本篇文章主要介紹了php處理靜態(tài)頁面:頁面設(shè)置緩存時間實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06
IIS 7.5 asp Session超時時間設(shè)置方法
這篇文章主要介紹了IIS 7.5中asp Session超時時間設(shè)置方法,需要的朋友可以參考一下2017-04-04
TP5框架實現(xiàn)的數(shù)據(jù)庫備份功能示例
這篇文章主要介紹了TP5框架實現(xiàn)的數(shù)據(jù)庫備份功能,結(jié)合實例形式分析了TP5數(shù)據(jù)庫備份功能相關(guān)原理及實現(xiàn)方法,需要的朋友可以參考下2020-04-04
讓CodeIgniter數(shù)據(jù)庫緩存自動過期的處理的方法
按官方的說法,緩存設(shè)置后永不過期,除非你調(diào)用方法主動刪除。這篇文章主要介紹了CodeIgniter數(shù)據(jù)庫緩存自動過期的處理,需要的朋友可以參考下2014-06-06
php結(jié)合GD庫實現(xiàn)中文驗證碼的簡單方法
這篇文章主要給大家介紹了關(guān)于php結(jié)合GD庫實現(xiàn)中文驗證碼的簡單方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
修改apache配置文件去除thinkphp url中的index.php
這篇文章主要介紹了修改apache配置文件去除thinkphp url中的index.php的方法,大家參考使用吧2014-01-01

