PHP在線(xiàn)發(fā)送email代碼-基于wordpress自帶的類(lèi)
作者: 鄭曉 分類(lèi): PHP 發(fā)布于: 2011-01-09 06:12 瀏覽:9,816 沒(méi)有評(píng)論
?? 剛才在網(wǎng)上找了個(gè)php直接在線(xiàn)發(fā)送email到指定郵箱的代碼,并且測(cè)試成功!這個(gè)代碼使用了wordpress里自帶的smtp類(lèi)。用過(guò)wordpress的都知道,在安裝完wp后,系統(tǒng)會(huì)自動(dòng)向你的郵箱發(fā)送一封郵件(“又一個(gè)新的wp站”),對(duì)!這個(gè)代碼就是用了它的這一個(gè)功能!
PHP內(nèi)置的mail函數(shù)的用法是極其恐怖的,至少我在看了mail函數(shù)的說(shuō)明后就再也提不起興趣來(lái)了。不僅如此,對(duì)于使用遠(yuǎn)程的SMTP服務(wù)器的 用戶(hù)來(lái)說(shuō),mail函數(shù)根本就不起作用。而現(xiàn)在的大多數(shù)SMTP服務(wù)器都需要用戶(hù)名驗(yàn)證,PHP本身是不支持驗(yàn)證的,要實(shí)現(xiàn)這一點(diǎn),必須去讀SMTP協(xié) 議,然后自己現(xiàn)實(shí)一個(gè)郵件發(fā)送程序……太恐怖了。
WordPress是目前世界上最流行的Blog程序,本身的架構(gòu)非常好。今天在讀WordPress的源代碼時(shí),發(fā)現(xiàn)了兩個(gè)類(lèi):PHPMailer和SMTP。PHPMailer是SMTP的上一層。WordPress 在向用戶(hù)發(fā)送密碼時(shí),就是使用的PHPMailer類(lèi)。PHPMailer在發(fā)送郵件時(shí),可以使用PHP的內(nèi)置函數(shù)mail(),也可以使用Qmail程 序或者是sendmail程序,但對(duì)于大多數(shù)人來(lái)說(shuō),這些并不實(shí)用。幸運(yùn)的是,PHPMailer也可以連接到遠(yuǎn)程的SMTP服務(wù)器(比如說(shuō)網(wǎng)易的 smtp.163.com)來(lái)發(fā)送郵件。當(dāng)然WordPress本身似乎并沒(méi)有哪個(gè)地方設(shè)置WordPress發(fā)送郵件的方式。要讓W(xué)ordPress支 持遠(yuǎn)程SMTP服務(wù)器,目前只好修改源代碼了。下面就來(lái)說(shuō)說(shuō)如何使用這兩個(gè)類(lèi)來(lái)發(fā)送Email。
?? 代碼見(jiàn)下方:(例中的發(fā)件郵箱我用了163的)
IsSMTP();
// 設(shè)置郵件的字符編碼,若不指定,則為'UTF-8'
$mail->CharSet='GB2312';
// 添加收件人地址,可以多次使用來(lái)添加多個(gè)收件人
$mail->AddAddress('xxxx@gmail.com');
// 設(shè)置郵件正文
$message='用WordPress的代碼發(fā)送的Email';
$mail->Body=$message;
// 設(shè)置郵件頭的From字段。
// 對(duì)于網(wǎng)易的SMTP服務(wù),這部分必須和你的實(shí)際賬號(hào)相同,否則會(huì)驗(yàn)證出錯(cuò)。
$mail->From='xxxxxx@163.com';
// 設(shè)置發(fā)件人名字
$mail->FromName='Wang Jinbo';
// 設(shè)置郵件標(biāo)題
$mail->Subject='Test Mail';
// 設(shè)置SMTP服務(wù)器。這里使用網(wǎng)易的SMTP服務(wù)器。
$mail->Host='smtp.163.com';
// 設(shè)置為“需要驗(yàn)證”
$mail->SMTPAuth=true;
// 設(shè)置用戶(hù)名和密碼,即網(wǎng)易郵件的用戶(hù)名和密碼。
$mail->Username='xxxxxx';
$mail->Password='xxxxxx';
// 發(fā)送郵件。
$mail->Send();
?>
需要先把WordPress目錄下的wp-includes\class-phpmailer.php和wp-includes\class- smtp.php兩個(gè)文件復(fù)制到某一個(gè)目錄下,這兩個(gè)文件里包含了我們需要的類(lèi),然后把上面代碼保存到一個(gè)新文件,放到同一目錄下即可~~
我以將兩個(gè)文件打包,以便不使用wp的朋友:smtp-mail?
本文采用知識(shí)共享署名-非商業(yè)性使用 3.0 中國(guó)大陸許可協(xié)議進(jìn)行許可,轉(zhuǎn)載時(shí)請(qǐng)注明出處及相應(yīng)鏈接。
本文永久鏈接: http://yjfs.org.cn/php-online-send-email.html