當前位置:博客首頁>>PHP >> 閱讀正文

PHP在線發(fā)送email代碼-基于wordpress自帶的類

作者: 鄭曉 分類: PHP 發(fā)布于: 2011-01-09 06:12 瀏覽:9,652 沒有評論


?? 剛才在網(wǎng)上找了個php直接在線發(fā)送email到指定郵箱的代碼,并且測試成功!這個代碼使用了wordpress里自帶的smtp類。用過wordpress的都知道,在安裝完wp后,系統(tǒng)會自動向你的郵箱發(fā)送一封郵件(“又一個新的wp站”),對!這個代碼就是用了它的這一個功能!

PHP內(nèi)置的mail函數(shù)的用法是極其恐怖的,至少我在看了mail函數(shù)的說明后就再也提不起興趣來了。不僅如此,對于使用遠程的SMTP服務器的 用戶來說,mail函數(shù)根本就不起作用。而現(xiàn)在的大多數(shù)SMTP服務器都需要用戶名驗證,PHP本身是不支持驗證的,要實現(xiàn)這一點,必須去讀SMTP協(xié) 議,然后自己現(xiàn)實一個郵件發(fā)送程序……太恐怖了。

WordPress是目前世界上最流行的Blog程序,本身的架構非常好。今天在讀WordPress的源代碼時,發(fā)現(xiàn)了兩個類:PHPMailer和SMTP。PHPMailer是SMTP的上一層。WordPress 在向用戶發(fā)送密碼時,就是使用的PHPMailer類。PHPMailer在發(fā)送郵件時,可以使用PHP的內(nèi)置函數(shù)mail(),也可以使用Qmail程 序或者是sendmail程序,但對于大多數(shù)人來說,這些并不實用。幸運的是,PHPMailer也可以連接到遠程的SMTP服務器(比如說網(wǎng)易的 smtp.163.com)來發(fā)送郵件。當然WordPress本身似乎并沒有哪個地方設置WordPress發(fā)送郵件的方式。要讓WordPress支 持遠程SMTP服務器,目前只好修改源代碼了。下面就來說說如何使用這兩個類來發(fā)送Email。

?? 代碼見下方:(例中的發(fā)件郵箱我用了163的)

IsSMTP();

// 設置郵件的字符編碼,若不指定,則為'UTF-8'
$mail->CharSet='GB2312';

// 添加收件人地址,可以多次使用來添加多個收件人
$mail->AddAddress('xxxx@gmail.com');

// 設置郵件正文
$message='用WordPress的代碼發(fā)送的Email';
$mail->Body=$message;

// 設置郵件頭的From字段。
// 對于網(wǎng)易的SMTP服務,這部分必須和你的實際賬號相同,否則會驗證出錯。
$mail->From='xxxxxx@163.com';

// 設置發(fā)件人名字
$mail->FromName='Wang Jinbo';

// 設置郵件標題
$mail->Subject='Test Mail';

// 設置SMTP服務器。這里使用網(wǎng)易的SMTP服務器。
$mail->Host='smtp.163.com';

// 設置為“需要驗證”
$mail->SMTPAuth=true;

// 設置用戶名和密碼,即網(wǎng)易郵件的用戶名和密碼。
$mail->Username='xxxxxx';
$mail->Password='xxxxxx';

// 發(fā)送郵件。
$mail->Send();
?>

需要先把WordPress目錄下的wp-includes\class-phpmailer.php和wp-includes\class- smtp.php兩個文件復制到某一個目錄下,這兩個文件里包含了我們需要的類,然后把上面代碼保存到一個新文件,放到同一目錄下即可~~
我以將兩個文件打包,以便不使用wp的朋友:smtp-mail?

? ? ? ?

本文采用知識共享署名-非商業(yè)性使用 3.0 中國大陸許可協(xié)議進行許可,轉(zhuǎn)載時請注明出處及相應鏈接。

本文永久鏈接: http://www.yjfs.org.cn/php-online-send-email.html

發(fā)表評論

change vcode