构建简单的Webmail系统

那是一段Web
Mail的亲自过问代码,作用不是很强,可是布局还比较完整,重要的效应如查看文件夹,查看信件,回复,写信都有。不过程序中从未伪造附属类小构件解读和发送的难题。
(原作在此卡塔尔(قطر‎。仅援用给希望理解Webmail编制程序的网民做个参照他事他说加以考查。特别周详的Webmail请大家到
这里寻找。

请小心:程序中央银行使了http认证作用,此功用需合营apache服务器使用。

将以下代码分别存为 index.php3, imapfuncs.phl
配置imapfuncs.phl文件中的$M_HOST = localhost; $M_MAILSE奥德赛VE福睿斯 =
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 ?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 CENTERTABLE BORDER=0
CELLSPACING=0 CELLPADDING=1 WIDTH=90%/n; echo TR ALIGN=LEFT
BGCOLOR=$M_COLOR_HEAD; echo TH /THTHFrom/THTHSubject/THTHDate/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
TDINPUT TYPE=CHECKBOX NAME=marked[] VALUE=$i/TD/n; echo TD$from/TD;
echo TDA href=/$PHP_SELF?m=$mailbox&n=$i&cmd=display/$subj/A/TD; echo
TD$date/TD/n; echo /TR/n; } if ($num = 0) { echo TRTD COLSPAN=4
BGCOLOR=$M_COLOR_BGBR; echo FONT SIZE=+1 COLOR=#FF0000No messages in
mailbox/FONT; echo BRBR/TD/TR/n; } echo TR BGCOLOR=$M_COLOR_HEADTD
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_HEADTHMessage #$msgno: $from / $subj/TH/TR/n; echo
TR BGCOLOR=$M_COLOR_BGTDPRE/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_HEADTD; 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_HEADTD ALIGN=RIGHTTo:/TD;
echo TDINPUT TYPE=TEXT NAME=to value=/$to/ SIZE=50/TD/TR/n; echo TR
bgcolor=$M_COLOR_HEADTD ALIGN=RIGHTSubject:/TD; echo TDINPUT TYPE=TEXT
NAME=subject value=/$subject/ SIZE=50/TD/TR/n; echo TR
bgcolor=$M_COLOR_BGTD COLSPAN=2; echo TEXTAREA COLS=76 ROWS=10
NAME=body WRAP=hard$body/TEXTAREA;

发表评论

电子邮件地址不会被公开。 必填项已用*标注