4.2 Zend_Mail:通过Web浏览器接受邮件
有了邮件发送的画面后,再追加几个接受邮件的画面,就可以构筑一个完整的Web邮件系统了。本节再介绍一下利用Web浏览器接受邮件的应用(如图所示),这样利用4.1节和本节介绍的内容也可以搭建如Gmail一样的邮件服务了。
本例要点
常用的邮件接受软件如Outlook Express等,有如下两个窗口:
(1)1个窗口显示接受的邮件预览。
(2)1个窗口显示邮件的正文及附件。
基于上述的思路,本节的邮件接受画面也模仿Outlook Express等软件,将画面分割为两个部分(帧),上面的部分显示接受到的邮件预览,当点击邮件名时,下一部分中将显示对应邮件的正文及附件。
如此,一个基本的邮件接受画面就构思完成了。
目录结构
本例代码
定义连接POP服务器信息(主机名、用户名、密码)的联想数组,这些信息将会应用在list.php/descript.php。
根据myConfig.php中设定的连接信息连接POP服务器。使用Zend_Mail_Storage_Pop3类连接POP服务器,当要连接IMAP服务器时务必使用Zend_Mail_Storage_Imap类。
取得收件箱中包含的邮件总数。
以foreach循环顺序取得收件箱中的邮件对象,针对各个邮件对象,可以“对象名-〉属性”的形式取得具体的属性值(如件名、收信日期等)。
htmlspecialchars函数,将对字符串含有的[][][]等HTML预约字符进行分别向[][][]的转换。又被称为HTML变换(HTML Encode)。
根据myConfig.php中设定的连接信息连接POP服务器。
从list.php中调用descript.php时,以查询信息的形式传入邮件序号。此处使用Zend_Mail_Storage_Pop3对象以对象名[邮件序号]的形式取得特定的邮件对象。
使用getContent方法取得邮件的正文。这里进行了UTF-8到GB2312的字符转换。nl2br函数将字符串中的改行符转换为</br>。
补充
运行实例时的注意事项
与上一节相同,本节使用的Zend_Mail是Zend Framework的构件(component)之一,在运行本节的代码时,首先要检查一下Zend Framework是否可以使用。如果你是严格按照本书第1章介绍的方法配置环境的话,Zend Framework已经可以使用了。
安全上的注意点
上述的例中将连接POP服务器的密码都直接在脚本中了,如果用户知道了这个含密码的脚本的URL后,就会知道连接POP服务器的密码。在实际的邮件服务时,最好应该有登录的画面,用户只有输入密码后才能利用系统,而将密码写在文件的方式安全漏洞太大。
共有条评论 网友评论