学习网考试学习资料

Gzu521.com

构建简单的Webmail系统

PHP教程   点击:次   发布时间:2005-8-17   【字体: 】   来源:Gzu521.com
贵 州 学 习 网
"; 
echo "\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 "\n"; 
echo " 
\n"; 
echo " "; 
echo ""; 
echo "\n"; 
echo "\n"; 


if ($num <= 0) { 
echo "
"; 
echo "no messages in mailbox"; 
echo "

\n"; 


echo ""; 
echo ""; 
echo ""; 
echo ""; 
echo "\n"; 

echo "
这是一段web mail的示范代码,功能不是很强,但是结构还比较完整,主要的功能如查看文件夹,查看信件,回复,写信都有。但是程序中没有考虑附件解读和发送的问题。 (原文在 这里)。仅推荐给希望了解webmail编程的网友做个参考。更加完善的webmail请大家到 这里查找。 
请注意:程序中使用了http认证功能,此功能需配合Apache服务器使用。 

 


-------------------------------------------------------------------------------- 
将以下代码分别存为 index.php3, imapfuncs.phl 
配置imapfuncs.phl文件中的$m_host = "localhost"; $m_mailserver = "transit.fast.no"; 
然后浏览 index.php3 即可.  
-------------------------------------------------------------------------------- 
index.php3 

/* $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); 

?> 
 
 
<?php echo "$m_sysname"; ?> 
 
 
 
 

 
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); 

?> 

 

 
 

 
 

 

 


-------------------------------------------------------------------------------- 
imapfuncs.phl 


/* $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 "\n"; 
echo "

\n"; 

echo ""; 
echo "
 fromsubjectdate
$from$subj$date
\n"; 
echo "\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 "
\n"; 
echo "\n"; 
echo "message #$msgno: $from / $subj\n"; 
echo "
\n"; 
echo "from: $from\n"; 
echo "subject: $subj\n"; 
echo "date: $date\n"; 
echo "\n"; 
echo "$body\n"; 
echo "
\n"; 
echo ""; 

echo ""; 
echo "\n"; 
echo "\n"; 
echo "\n"; 
echo ""; 
echo ""; 
echo "     "; 

echo "\n"; 
echo "\n"; 
echo "
\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 "
\n"; 
echo "\n"; 
echo "\n"; 
echo "to:"; 
echo "\n"; 

echo "subject:"; 
echo "\n"; 

echo ""; 
echo "$body";  

责任编辑:gzu521

网络编程分类
ASP教程
.Net教程
Java教程
PHP教程
数据库基础
ACCESS教程
SQL Server教程
MySQL教程
Oracle教程
分类推荐信息
更多...
大类最新文章
更多...