-------------------------------------------------------------------------------- 
将以下代码分别存为 index.php3, imapfuncs.phl 
配置imapfuncs.phl文件中的$M_HOST = "localhost"; $M_MAILSERVER = "transit.fast.no"; 
然后浏览 index.php3 即可.  
-------------------------------------------------------------------------------- 
index.php3 
<?PHP 
/* $Id: index.php3,v 1.3 1999/04/14 12:12:32 borud Exp $ */ 
/* load the IMAP library functions we\'ve written */ 
include("imapfuncs.phl"); 
m_login($m);
?> 
<HTML> 
<HEAD> 
<TITLE><?PHP echo "$M_SYSNAME"; ?></TITLE> 
</HEAD> 
<BODY bgcolor=#AAAAAA text=#000000 link=#440000 vlink=#440000 alink=#FF00FF> 
<H1 ALIGN=CENTER><?PHP echo "$M_SYSNAME"; ?></H1> 
<HR SIZE=1 NOSHADE> 
<P> 
<?PHP 
if ($cmd == "delete") { 
m_delete($marked, $m); 
m_list($m); 
} 
elseif ($cmd == "display") { 
m_display($n, $m); 
} 
elseif ($cmd == "compose" || $cmd == "reply") { 
m_compose($n, $m); 
} 
elseif ($cmd == "send") { 
m_send($to, $subject, $body); 
m_list($m); 
} 
else { 
m_list($m); 
} 
?> 
<P>
<HR SIZE=1 NOSHADE> 
<?PHP echo "User: $PHP_AUTH_USER"; ?> 
</BODY> 
</HTML> 
-------------------------------------------------------------------------------- 
imapfuncs.phl 
<?PHP /* -*-C++-*- */
/* $Id: imapfuncs.phl,v 1.4 1999/04/14 12:12:32 borud Exp $ */
/* configurable parameters */
$M_HOST = "localhost"; 
$M_MAILSERVER = "transit.fast.no\"; 
$M_COLOR_ODD = "#CCCCCC"; 
$M_COLOR_EVEN = "#EEEEEE"; 
$M_COLOR_HEAD = "#AAAAFF"; 
$M_COLOR_BG = "#FFFFFF"; 
/* globals */ 
$M_PORT = 143; 
$M_SERVICE = "imap"; 
$M_SYSNAME = "Simple PHP3 IMAP Interface 1.0"; 
$M_MBOX = "{$M_HOST:$M_PORT/$M_SERVICE}"; 
$M_REALM = "IMAP Interface"; 
$MBOX = false; 
/* functions */
function m_login ($mailbox = '') 
{ 
global $MBOX, $M_REALM; 
global $PHP_AUTH_USER, $PHP_AUTH_PW; 
if ($MBOX) { 
return true; 
} 
if (! $PHP_AUTH_USER) { 
m_reject($M_REALM); 
} 
$MBOX = @imap_open(m_mailbox_name($mailbox), $PHP_AUTH_USER, $PHP_AUTH_PW);
if (! $MBOX) { 
m_reject($M_REALM); 
} 
return true; 
} 
function m_list($mailbox = '') 
{ 
global $MBOX, $PHP_SELF; 
global $M_COLOR_ODD, $M_COLOR_EVEN, $M_COLOR_HEAD, $M_COLOR_BG; 
/* if not logged into server, do so */ 
if (! $MBOX) { 
if (! m_login($mailbox)) { 
return false; 
} 
} 
$num = imap_num_msg($MBOX);
echo "<FORM ACTION=$PHP_SELF TYPE=POST>\n"; 
echo "<CENTER><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=1 WIDTH=90%>\n"; 
echo "<TR ALIGN=LEFT BGCOLOR=$M_COLOR_HEAD>"; 
echo "<TH> </TH><TH>From</TH><TH>Subject</TH><TH>Date</TH>"; 
echo "</TR>\n"; 
for ($i=1; $i < ($num+1); $i++) { 
$head = imap_header($MBOX, $i, 50, 50, 0); 
$from = $head->fetchfrom; 
$subj = $head->fetchsubject; 
$date = m_date_format($head->date); 
$bgcolor = ($i%2 == 0)?$M_COLOR_ODD:$M_COLOR_EVEN;
echo "<TR BGCOLOR=\"$bgcolor\">\n"; 
echo " <TD><INPUT TYPE=CHECKBOX NAME=marked[] VALUE=$i></TD>\n"; 
echo " <TD>$from</TD>"; 
echo "<TD><A href=\"$PHP_SELF?m=$mailbox&n=$i&cmd=display\">$subj</A></TD>"; 
echo "<TD>$date</TD>\n"; 
echo "</TR>\n"; 
} 
if ($num <= 0) { 
echo "<TR><TD ALIGN=CENTER COLSPAN=4 BGCOLOR=$M_COLOR_BG><BR>"; 
echo "<FONT SIZE=+1 COLOR=#FF0000>No messages in mailbox</FONT>"; 
echo "<BR><BR></TD></TR>\n"; 
} 
echo "<TR BGCOLOR=$M_COLOR_HEAD><TD COLSPAN=4>"; 
echo "<INPUT TYPE=submit NAME=cmd VALUE=delete>"; 
echo "<INPUT TYPE=submit NAME=cmd VALUE=compose>"; 
echo "<INPUT TYPE=submit NAME=cmd VALUE=refresh>"; 
echo "</TD></TR>\n"; 
echo "</TABLE></CENTER>\n"; 
echo "</FORM>\n"; 
return true; 
} 
function m_display($msgno, $mailbox = '') 
{ 
global $MBOX, $M_COLOR_HEAD, $M_COLOR_BG; 
global $PHP_SELF; 
if (! $MBOX) { 
if (! m_login($mailbox)) { 
return false; 
} 
} 
$struc = imap_fetchstructure($MBOX, $msgno); 
if (! $struc) { 
return false; 
} 
$head = imap_header($MBOX, $msgno, 50, 50, 0);
$from = $head->fromaddress; 
$subj = $head->subject; 
$date = $head->date; 
$body = htmlentities(imap_body($MBOX, $msgno)); 
echo "<CENTER>\n"; 
echo "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=10 WIDTH=100%>\n"; 
echo "<TR BGCOLOR=$M_COLOR_HEAD><TH>Message #$msgno: $from / $subj</TH></TR>\n"; 
echo "<TR BGCOLOR=$M_COLOR_BG><TD><PRE>\n"; 
echo "From: $from\n"; 
echo "Subject: $subj\n"; 
echo "Date: $date\n"; 
echo "<HR SIZE=2 NOSHADE>\n"; 
echo "$body\n"; 
echo "</PRE></TD></TR>\n"; 
echo "<TR BGCOLOR=$M_COLOR_HEAD><TD>"; 
echo "<FORM ACTION=$PHP_SELF METHOD=POST>"; 
echo "<INPUT TYPE=HIDDEN NAME=m VALUE=$mailbox>\n"; 
echo "<INPUT TYPE=HIDDEN NAME=n VALUE=$msgno>\n"; 
echo "<INPUT TYPE=HIDDEN NAME=marked[] VALUE=$msgno>\n"; 
echo "<INPUT TYPE=SUBMIT NAME=cmd VALUE=back>"; 
echo "<INPUT TYPE=SUBMIT NAME=cmd VALUE=reply>"; 
echo "     <INPUT TYPE=SUBMIT NAME=cmd VALUE=delete>"; 
echo "</TD></TR>\n"; 
echo "</TABLE>\n"; 
echo "</CENTER>\n"; 
return true; 
} 
function m_delete ($msgno, $mailbox='') 
{ 
global $MBOX; 
if (is_array($msgno)) { 
while (list($dummy, $num) = each($msgno)) { 
imap_delete($MBOX, $num); 
} 
imap_expunge($MBOX); 
} else { 
return false; 
} 
return true; 
} 
function m_compose ($msgno='', $mailbox='') 
{ 
global $MBOX, $M_COLOR_HEAD, $M_COLOR_BG; 
global $PHP_SELF, $PHP_AUTH_USER, $M_MAILSERVER; 
if ($msgno != '') { 
$head = imap_header($MBOX, $msgno, 150, 150, 0); 
$to = $head->fromaddress; 
$subject = "Re: " . $head->subject; 
$body = "$to wrote:\n"; 
$body .= ereg_replace("\n","\n>", "\n" . imap_body($MBOX, $msgno)); 
} else { 
$to = ""; 
$subject = ""; 
$body = ""; 
} 
echo "<CENTER>\n"; 
echo "<FORM METHOD=POST ACTION=\"$PHP_SELF\">\n"; 
echo "<TABLE BORDER=0 CELLPADDING=5 CELLSPACING=0>\n"; 
echo "<TR bgcolor=$M_COLOR_HEAD><TD ALIGN=RIGHT>To:</TD>"; 
echo "<TD><INPUT TYPE=TEXT NAME=to value=\"$to\" SIZE=50></TD></TR>\n"; 
echo "<TR bgcolor=$M_COLOR_HEAD><TD ALIGN=RIGHT>Subject:</TD>"; 
echo "<TD><INPUT TYPE=TEXT NAME=subject value=\"$subject\" SIZE=50></TD></TR>\n"; 
echo "<TR bgcolor=$M_COLOR_BG><TD COLSPAN=2>"; 
echo "<TEXTAREA COLS=76 ROWS=10 NAME=body WRAP=hard>$body</TEXTAREA>";