Tuesday, September 14, 2010

Zend Framework之使用Zend_Mail实现邮件验证

ZendChina6月3日:在写这篇文期间就运用了Zend Framework 里面Zend_Mail这一功能..自己也很想用点时间来作一个这方面的总结.现在在开发中又用到了这个功能,所以就在这个时间里写出来,和大家一起分享 一下我的一些经验吧..当然我也是学习前面一些高手的方法..只是不过是自己在这里显示一下。

    Zend Framework 里Zend_Mail这个组件用起来还是很方便的..它提供了通用化的编写与发送文本内容的邮件,当然它也兼容MIME标准的多个多个段的邮件消息的功 能.Zend_Mail里通过默认的Zend_Mail_Transport_SendMail传输或能过 Zend_Mail_Transport_Smtp来发送我们的电子邮件。

    Zend_Mail发送最简单的邮件功能.通过Zend_Mail_Transport_Sendmail发来送.我们只要指定邮件的一个收件人,一个主题,一个邮件内容和一个发件人就可以了.它的代码如下(有注解:):


<?php
require_once'Zend/Mail.php';
$mail=newZend_Mail("UTF-8");//设置邮件编码
$mail->setBodyText('你的邮件内容放在这里!.')
 
//发送电子邮件地址以及一些发送人的说明信息
->setFrom('fromemail@example.com','发送人的说明信息')
 
//收信人电子邮件地址以及一些收信人的说明信息
->addTo('toemail@example.com','收信人的说明信息')
 
//电子邮件标题,解决乱码
->setSubject("=?UTF-8?B?".base64_encode('电子邮件标题')."?=")
 
->send();
?> 


    另外一个就是通过一个SMTP发送电子邮件.不过你需要配置你的邮件服务器.这一步大家可以去GOOGLE一下..我就不在这里多说了.我这里是能守 GOOGLE来实现发送电子邮件的..经过我的测试.我的电子邮件到送到自己的Gmail和163(网易)的邮箱都没有问题.乱码问题也解决了..标题长 度限制问题也没有出现..以前是自己参考网上改了Zend_Mail里面的函数..现在用1.6版的Zend Framework好像没有这样的问题..我想是ZF团队改了里面的BUG吧...呵呵..
    下面是自己的实现的代码:

 <?php


require_onceROOT_PATH .'/Zend/Mail.php';
require_onceROOT_PATH .'/Zend/Mail/Transport/Smtp.php';
$mail=newZend_Mail("UTF-8");//设置邮件编码
$config=array('auth'=>'login',
'username'=>"kylingood",//电子件用户
'password'=>"这里是填写你电子邮件密码",
'ssl'=>"ssl"
);
$transport=newZend_Mail_Transport_Smtp('smtp.gmail.com',$config);
$mail->setDefaultTransport($transport);
$mailcontent='欢迎您的到来!<br /> 您的注册名为:
'.$thisArray['username'].'<br /> 您的密码为:'.$thisArray['userpass'].'
<br /> 请您点击这里的地址:<a href="#"><font color="red">激活
</font> </a>您的帐号!
请尽快删除此邮件,以免别人偷看到您的密码<br /> 如果忘了密码,
可以到社区写信请管理员重新设定<br />';
 
$mail->setBodyHtml($mailcontent);//可以发送HTML的邮件.真方便!
$mail->setFrom('kylingood@gmail.com','kylingood');
$mail->addTo($email,'kylingood');
$title=$thisArray['username'].',用户您好,这是网站激活验证邮件!';
$mail->setSubject("=?UTF-8?B?".base64_encode($title)."?=");
$mail->send();
?> 

     好了,大致用Zend_Mail发送邮件就是这个原理,当然还有更多高级点的用法.比如说邮件发送附件。一次性发送多个电子邮件.还有还有就是使用不同的Transport对象来发送不同的邮件。

转自:http://www.zendchina.net/?action-viewnews-itemid-1323
可参考:http://blog.csdn.net/zlb_xidian/archive/2009/08/09/4428756.aspx

0 评论:

Post a Comment