作为一个苦逼的我的站长,作一个小网站,原本愿意来看的人就很少,再弄一个不能找回密码的会员系统?基本上被判死刑了 。阿里云的短信也要钱啊,并且只支持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