深圳升蓝软件
数据库开发 .Net技术  |  ASP技术 PHP技术 JSP技术 应用技术类   
Hiblue Software

用PHP3阅读IMAP邮件


March 25,2004
作者:Mark Musone 翻译:limodou

  你是不是抱怨过,当你呆在一个朋友的房子或拜访亲戚时,想检查邮件但是不知道你的POP/IMAP设置。或者更糟的是,他们没有POP或IMAP软件?

  基于Web的电子邮件似乎只是在最近才在网上被谈起。这里就是如何使用PHP来生成一个快速的,简单的和有效的IMAP或POP 邮件阅读器。一旦这个做好了,你现在就能够从世界的任何一个角落仅用一个浏览器来阅读你的邮件。

  第一件必需知道的是确认你已经具有了一个可用的IMAP服务器。你可以从ftp://ftp.cac.washington.edu/imap得到UW IMAP服务软件和库函数(你将需要把这个库编译进PHP中,所以你可能也要安装同库在一起的IMAP服务软件)。

  一旦你已经运行了IMAP服务器并且用IMAP支持编译过了PHP(确信你读过了PHP文档中关于如何编译支持IMAP的PHP),剩下的就很easy了!

  我们将生成一个好用和简单的基于3个脚本的mail阅读程序。

  第一个脚本将用来读取用在IMAP中的用户名及口令。我们将使用标准的PHP认证功能来做。

login.php3 包含:

--------------------------------------------------------------------------------

<?php
if (!$PHP_AUTH_USER) {
    Header("WWW-authenticate: basic realm="Mail Chek"");     
    Header("HTTP/1.0 401 Unauthorized"); }
else {
    $MYDIR=ereg_replace("/[^/]+$","",$PHP_SELF);     
    Header("Location: $SERVER_NAME$MYDIR/messages.php3"); }
?>



--------------------------------------------------------------------------------
  它简单地读取你的用户名和口令并且重定向到邮件阅读页面。

messages.php3 包含:

--------------------------------------------------------------------------------

<?php
    $MAILSERVER="{localhost/imap}";
    $link=imap_open($MAILSERVER,$PHP_AUTH_USER,$PHP_AUTH_PW);
    $headers=imap_headers($link);
    for($x=1; $x < count($headers); $x++) {     $idx=($x-1);
    echo "<a href="view.php3?num=$x">$headers[$idx]</a><br>"; }
?>


--------------------------------------------------------------------------------
  它打开一个IMAP连接到通过$MAILSERVER所指定的邮件服务器,传递你的用户名和口令。

  它然后在一个循环中得到一个所有邮件的信息头的列表,把它们打印出来。在打印出来之外,也给每一
个信息头生成了一个指向view.php3的链接,传递给view.php3信息头的信息序号。

view.php3 包含:

--------------------------------------------------------------------------------
<?php
    $MAILSERVER="{localhost/imap}";
    $link=imap_open($MAILSERVER,$PHP_AUTH_USER,$PHP_AUTH_PW);
    $header=imap_header($link,$num);
    echo "From: $header[fromaddress]<br>";
    echo "To: $header[toaddress]<br>";
    echo "Date: $header[Date]<br>";
    echo "Subject: $header[Subject]<br><br>";
    echo imap_body($link,$num);
?>

--------------------------------------------------------------------------------
  view.php3象上面一样打开IMAP连接,并且得到邮件消息的头信息,将其打印出来。

  它然后读出邮件信息的信息体并打印到屏幕上。

  就是它了!你现然拥有了一个基于web功能的邮件程序器...Hotmail要小心了,php来了!;^)



--------------------------------------------------------------------------------

翻译的话:

  这篇文章很简单地实现了一个可以阅读IMAP邮件协议的邮件阅读程序。但是首先要在本地安装一个IMAP
邮件服务器才可以。我试验的时候使用了国内的支持IMAP的免费邮件,大家可以去http://www.363.net去申
请。这样邮件服务器地址应该改成为:{363.net:143}。还有一点要注意的是在messages.php3中,它将取出
每一个邮件的头,但有时虽然有邮件可能取不出来,我想也许是没有主题的原因吧,只是我的想象。所以大
家在试验的时候,邮件最好写出主题。这篇文章比较简单,我将在某个时间写一篇比较复杂的文章向大家继
续介绍用PHP处理IMAP的编程。还有一点就是第一个脚本由于是用来读入用户名及口令的,所以可以不用,
在messages.php3中直接填入用户名和口令即可。

转自:PHPBuilder.com
       
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved