作爲一個苦逼的我的站長,作一個小網站,原本願意來看的人就很少,再弄一個不能找回密碼的會員系統?基本上被判死刑了 。阿里雲的短信也要錢啊,並且只支持PHP 5.5以上,個人網站還停留在PHP 5.3的水平。升級?怕又惹出新麻煩來。反正,在中國大陸,你用服務器來發郵件,別的郵件服務器是不會收的。我用服務器上的Postfix,用命令行mail測試過。都發不了。php
因而,想用各大網站的郵件服務器來代勞,但是QQ郵箱不能、新浪郵箱不能。若是我說錯了,請各位糾正我。後來,看到網上有人說網易的郵箱能夠,因而就註冊一個來試試。結果,真的能夠!網易真偉大!謝謝!html
開通郵箱後,得申請一個受權碼,就是在程序中要使用的密碼。方法以下:服務器
而後,我找到這篇神做,感謝兩位做者!測試
Zend Framework框架之Zend_Mail實現發送Email郵件驗證功能及解決標題亂碼的方法網站
固然,有人也使用PHPMAILER,個人應用,就是發送一封郵件給會員,可讓他到一個特殊的通道去修改會員密碼,能發信就成。這個方法使用的就是Zend Framework的Mail庫。ui
//固然了,你前面得判斷一下那個郵箱有沒有註冊會員 require_once 'Zend/Mail.php'; require_once 'Zend/Mail/Transport/Smtp.php'; $mail = new Zend_Mail("UTF-8");//設置郵件編碼 $config = array( 'auth' => "login", 'username' => "somebody",//電子件用戶名 'password' => "dont tell you", //這就是申請來的受權碼 'ssl' => "ssl" //這個要開通php.ini中的OpenSSL ); $transport = new Zend_Mail_Transport_Smtp('smtp.163.com',$config); $mail->setDefaultTransport($transport); $title ="找回密碼郵件"; $mailcontent='我在測試呢,看看好很差使!'; $mail->setBodyHtml($mailcontent); //能夠發送HTML的郵件.真方便! $mail->setFrom('somebody@163.com', 'ypgogo'); $mail->addTo($email, 'somebody'); $title=',用戶您好,這是網站激活驗證郵件!'; $mail->setSubject("=?UTF-8?B?".base64_encode($title)."?="); if($mail->send()) { //do something wisely } else { //cry loudly }
第一封信發給QQ郵箱,竟然沒進垃圾箱,真是過高興了!阿里雲
成功以前,有一次由於沒有使用SSL,出了一次超時錯。出錯信息以下:編碼
Fatal error: Uncaught exception 'Zend_Mail_Protocol_Exception' with message 'Connection timed out'.net