PHP實現(xiàn)SMTP郵件的發(fā)送實例
當(dāng)你還在糾結(jié)php內(nèi)置的mail()函數(shù)不能發(fā)送郵件時,那么你現(xiàn)在很幸運,此時的這篇文章可以幫助到你!
php利用smtp類來發(fā)郵件真是屢試不爽,我用過很久了,基本上沒出過問題。本博客后臺,當(dāng)博主回復(fù)留言時候,會自動給網(wǎng)友發(fā)一封有新回復(fù)提示的郵件也是用的本文這個方法實現(xiàn)的。
smtp類發(fā)送郵件的方法其實很簡單,也很穩(wěn)定,類是別人已經(jīng)寫好的了,你只需要調(diào)用就行了。幾行簡單的配置就能發(fā)郵件,是不是很期待的試一試呢!
<?php /** * @param $address mixed 收件人 多個收件人/或需要設(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 反之返回報錯信息 * @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è)定時區(qū)東八區(qū) $mail = new PHPMailer(); //Server settings $mail->SMTPDebug = 2; $mail->isSMTP(); // 使用SMTP方式發(fā)送 $mail->Host = 'smtp.126.com'; // SMTP郵箱域名 $mail->SMTPAuth = true; // 啟用SMTP驗證功能 $mail->Username = "*****@126.com"; // 郵箱用戶名(完整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è)置的昵稱 添加多個收件人 多次調(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è)置的昵稱 //$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)文章
Ajax PHP 邊學(xué)邊練 之三 數(shù)據(jù)庫
在上一篇備忘日歷實例中,實現(xiàn)了當(dāng)鼠標(biāo)放在某個日期上時,如果當(dāng)天有備忘信息則會顯示出來,但是這些信息是為了測試方便事先寫在數(shù)組中的數(shù)據(jù),不能體現(xiàn)其實時性。2009-11-11PHP連接MySQL數(shù)據(jù)庫操作代碼實例解析
這篇文章主要介紹了PHP連接MySQL數(shù)據(jù)庫操作代碼實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07php數(shù)組函數(shù)序列之a(chǎn)rray_flip() 將數(shù)組鍵名與值對調(diào)
array_flip() 函數(shù)將使數(shù)組的鍵名與其相應(yīng)值調(diào)換,即鍵名變成了值,而值變成了鍵名2011-11-11php獲取遠程圖片的兩種 CURL方式和sockets方式獲取遠程圖片
php獲取遠程圖片的兩種:CURL方式和sockets方式獲取遠程圖片,需要的朋友可以參考下。2011-11-11PHP的serialize序列化數(shù)據(jù)以及JSON格式化數(shù)據(jù)分析
這篇文章的內(nèi)容是PHP的serialize序列化數(shù)據(jù)以及JSON格式化數(shù)據(jù)分析,需要的朋友可以參考下2015-10-10PHP學(xué)習(xí)筆記之字符串編碼的轉(zhuǎn)換和判斷
GBK 和 UTF-8 編碼的轉(zhuǎn)換是一個非常惡心的事情,比如像 PHP 中的 json_encode 本身根本不支持 GBK 形式的編碼。有兩個庫函數(shù)能夠支持編碼的轉(zhuǎn)換,通常能夠想到的就是 iconv 函數(shù),使用起來也非常爽:2014-05-05