background image

php 邮件收发系统:查找邮件代码示例

查找邮件

为了方便用户查找邮件,该邮件系统提供了两种搜索方式,分别为按邮件主题进行查找
和按发件人地址进行查找。查找邮件模块在文件 findmail.php 中完成,页面如图 1 所示。
查找邮件的部分代码如下:
<!—
********************************findmail.php***********************************--
>
……
<?php
include("mailclass.php");                  //包含发邮件类
$rec=new pop3($_SESSION[host],110,10);     //对发邮件类进行实例化
$rec->open();                             //调用 POP3 类的 open()方法来连接 POP3 服务器
$rec->login($_SESSION[user],$_SESSION[pass]);
//调用 POP3 类的 login()方法来对登录用户身份进行验证
$rec->stat();                              //调用 POP3 类的 stat()方法取得总邮件数和总邮件大小
$rec->listmail();                           //调用 POP3 类的 listmail()方法取得每个邮件的大小及序号
if($_POST[findtype]==1)                  //如果通过 POST 方法提交的 findtype 的值为 1,则按邮
件主题进行匹配查找
{
$sum=0;                             //用$sum 记录查找到邮件的总个数
for($i=1;$i<=$rec->messages;$i++)         //通过循环遍历所有邮件
{
$rec->getmail($i);                 //取得第$i 封邮件头及邮件内容
for($j=0;$j<count($rec->head);$j++)  //通过循环获取邮件头所有内容
{ if(substr($rec->head[$j],0,7)=="Subject") //获取邮件主题
{                                 $head1=substr(htmlspecialchars($rec->head[$j]),8,strlen (trim (htmlspecialchars 
($rec->head[$j])))-8);
//

去掉邮件主题的提示文字 Subject:”

}
}
if(preg_match("/$_POST[info]/i",trim($head1)))
//利用正则表达式进行匹配查找
{
$sum++;                   //如果查找到匹配的主题,则使 sum 值加 1
?>
……
<?php
for($j=0;$j<count($rec->head);$j++)                 //显示邮件主题
{ if(substr($rec->head[$j],0,7)=="Subject")
{
echo   substr(htmlspecialchars($rec->head[$j]),8,strlen(trim(htmlspecialchars   ($rec->head[$j])))