Zend Framework Mail通过网易免费邮箱发送邮件

做为一个苦逼的个人站长,做一个小网站,本来愿意来看的人就不多,再弄一个不能找回密码的会员系统?基本上被判死刑了 。阿里云的短信也要钱啊,而且只支持PHP 5.5以上,我的网站还停留在PHP 5.3的水平。升级?怕又惹出新麻烦来。反正,在中国大陆,你用服务器来发邮件,别的邮件服务器是不会收的。我用服务器上的Postfix,用命令行mail测试过。都发不了。

于是,想用各大网站的邮件服务器来代劳,可是QQ邮箱不能、新浪邮箱不能。如果我说错了,请各位纠正我。后来,看到网上有人说网易的邮箱可以,于是就注册一个来试试。结果,真的可以!网易真伟大!谢谢!

开通邮箱后,得申请一个授权码,就是在程序中要使用的密码。方法如下:

163邮箱如何开始POP3协议,获取授权码

然后,我找到这篇神作,感谢两位作者!

Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法

当然,有人也使用PHPMAILER,我的应用,就是发送一封邮件给会员,可以让他到一个特殊的通道去修改会员密码,能发信就成。这个方法使用的就是Zend Framework的Mail库。

    //当然了,你前面得判断一下那个邮箱有没有注册会员
	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('[email protected]', 'ypgogo');
	$mail->addTo($email, 'somebody'); $title=',用户您好,这是网站激活验证邮件!';
	$mail->setSubject("=?UTF-8?B?".base64_encode($title)."?=");
	if($mail->send())

第一封信发给QQ邮箱,居然没进垃圾箱,真是太高兴了!

成功之前,有一次因为没有使用SSL,出了一次超时错。出错信息如下:

Fatal error: Uncaught exception 'Zend_Mail_Protocol_Exception' with message 'Connection timed out'

猜你喜欢

转载自my.oschina.net/u/589241/blog/1807440