如何搭建邮件服务器?
发布网友
发布时间:2022-04-24 16:19
我来回答
共4个回答
懂视网
时间:2022-04-22 13:04
这是一段Web Mail的示范代码,功能不是很强,但是结构还比较完整,主要的功能如查看文件夹,查看信件,回复,写信都有。但是程序中没有考虑附件解读和发送的问题。 (原文在 这里)。仅推荐给希望了解Webmail编程的网友做个参考。更加完善的Webmail请大家到 这里查找。
请注意:程序中使用了http认证功能,此功能需配合apache服务器使用。
--------------------------------------------------------------------------------
将以下代码分别存为 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>
";
echo "<CENTER><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=1 WIDTH=90%>
";
echo "<TR ALIGN=LEFT BGCOLOR=$M_COLOR_HEAD>";
echo "<TH> </TH><TH>From</TH><TH>Subject</TH><TH>Date</TH>";
echo "</TR>
";
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">
";
echo " <TD><INPUT TYPE=CHECKBOX NAME=marked[] VALUE=$i></TD>
";
echo " <TD>$from</TD>";
echo "<TD><A href="$PHP_SELF?m=$mailbox&n=$i&cmd=display">$subj</A></TD>";
echo "<TD>$date</TD>
";
echo "</TR>
";
}
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>
";
}
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>
";
echo "</TABLE></CENTER>
";
echo "</FORM>
";
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>
";
echo "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=10 WIDTH=100%>
";
echo "<TR BGCOLOR=$M_COLOR_HEAD><TH>Message #$msgno: $from / $subj</TH></TR>
";
echo "<TR BGCOLOR=$M_COLOR_BG><TD><PRE>
";
echo "From: $from
";
echo "Subject: $subj
";
echo "Date: $date
";
echo "<HR SIZE=2 NOSHADE>
";
echo "$body
";
echo "</PRE></TD></TR>
";
echo "<TR BGCOLOR=$M_COLOR_HEAD><TD>";
echo "<FORM ACTION=$PHP_SELF METHOD=POST>";
echo "<INPUT TYPE=HIDDEN NAME=m VALUE=$mailbox>
";
echo "<INPUT TYPE=HIDDEN NAME=n VALUE=$msgno>
";
echo "<INPUT TYPE=HIDDEN NAME=marked[] VALUE=$msgno>
";
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>
";
echo "</TABLE>
";
echo "</CENTER>
";
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:
";
$body .= ereg_replace("
","
>", "
" . imap_body($MBOX, $msgno));
} else {
$to = "";
$subject = "";
$body = "";
}
echo "<CENTER>
";
echo "<FORM METHOD=POST ACTION="$PHP_SELF">
";
echo "<TABLE BORDER=0 CELLPADDING=5 CELLSPACING=0>
";
echo "<TR bgcolor=$M_COLOR_HEAD><TD ALIGN=RIGHT>To:</TD>";
echo "<TD><INPUT TYPE=TEXT NAME=to value="$to" SIZE=50></TD></TR>
";
echo "<TR bgcolor=$M_COLOR_HEAD><TD ALIGN=RIGHT>Subject:</TD>";
echo "<TD><INPUT TYPE=TEXT NAME=subject value="$subject" SIZE=50></TD></TR>
";
echo "<TR bgcolor=$M_COLOR_BG><TD COLSPAN=2>";
echo "<TEXTAREA COLS=76 ROWS=10 NAME=body WRAP=hard>$body</TEXTAREA>";
热心网友
时间:2022-04-22 10:12
只要一台电脑就可以了
热心网友
时间:2022-04-22 11:30
建议用WINDOWS2003SERVER,邮件服务器软件用mdaemon,功能很强大,而且安全性高!具体设置.com可找到!因为多,所以没有打出来!
热心网友
时间:2022-04-22 13:04
一、
Foxmail Server(以下简称FMS)可以搭建出功能强大的邮件服务器。本文以FMS For Windows 2.0为例,从其设置、管理、收发邮件等几方面入手为大家简单介绍该软件的使用方法及注意事项。 ★安装和设置邮件服务器
FMS2.0要求操作系统Windows NT4.0(Service Pack4以上)和IIS5.0及以上版本的支持才能实现全部功能,并且还应以Administrator身份登录计算机。我们的讨论则是基于Windows Server 2000+IIS5.0的试验环境。FMS的安装过程比较简单,这里不再赘述,我们重点谈谈它的设置过程。
一、设置域名和管理员口令
程序安装完毕后,自动进入设置向导。单击“下一步”按钮,即可进入“应用程序设置”窗口。在这里我们可以设置用户信箱的域名(即用户E-mail地址中@字符的后缀部分)和管理员口令。您可以向域名管理机构申请合法的域名。但是如果通信范围仅限于局域网内部,也可以通过内部的DNS服务器建立一个邮件服务器专用的域名。为叙述方便,我们使用了本机的机器名作为域名(在命令行窗口中键入“hostname”命令就能得到本机的机器名),本例中的机器名为CHHUIAN。然后设置系统管理员口令和邮箱密码以及域管理员口令和邮箱密码,以后在管理系统和域时会用到两个管理员口令(图1)。
二、
二、设置网络参数
域名和管理员口令设置完成后,单击“下一步”按钮进入“网络设置”窗口。在这里可以设定DNS地址、SMTP端口、POP3端口等信息。DNS地址栏中应该填入当地电信部门或您所在的ISP提供的DNS地址,当然如果您只是在局域网内部通信且使用机器名作为域名,则只需填入服务器IP地址即可。本例中的DNS地址为本机IP地址“10.115.223.10”。SMTP端口和POP3端口应该采用默认参数,不过在这里可能会遇到SMTP端口或POP3端口被占用的问题。我们应按照提示停止某些程序对该端口的占用,并且保证以后在运行FMS时这些应用程序始终被关闭。该窗口最下边有一个关于Esmtp的可选项,这是一种身份认证功能,与客户端的“SMTP服务器需要身份认证”配合使用,可以杜绝垃圾邮件的侵袭(图2)。
小提示:一般情况下很容易出现SMTP端口被占用的情况,其原因是�袅薎IS自带的SMTP服务。这时只需在IIS属性对话框中将SMTP服务停止即可解决。
三、IIS设置
接着单击“下一步”按钮进入“IIS设置”窗口,可以通过设置IIS使FMS支持Webmail。为简化操作,我们选中“默认网站”作为Webmail所依附的站点,并采用默认的“Webmail”作为虚拟目录名。单击“完成”按钮,程序会自动对FMS进行配置,根据提示结束设置工作并重新启动服务器(图3)。
客户端收发邮件
邮件服务器设置完成后,我们就可以使用Webmail方式或邮件客户端软件收发邮件了。在客户机或服务器上启动IE浏览器,在地址栏键入邮件服务器地址“http://10.115.223.10/webmail”。回车后出现webmail入口界面。如果是新用户,必须先注册账号才能使用。关于在webmail方式下注册用户和收发邮件的方法相信大家一定很熟悉,这里不作讨论。如果使用Foxmail收发邮件,我们只需新建一个账户,填入相应的邮件服务器名(本例中POP3和SMTP服务器均为CHHUIAN)和已经注册的账户及密码,完成后即可与局域网内的用户通信了(图4)。
★管理邮件服务器
我们可以通过两种方式对邮件服务器进行管理。一种方式是通过Webmail界面进行管理,在浏览器地址栏键入“http://10.115.223.10/Webmail/sysad-
min”或“http://10.115.223.10/Webmail/admin”并键入相应密码即可登录系统管理员界面或域管理员界面。在这里,我们可以对“系统”和“域”两方面进行管理。“系统”管理的权限是管理“域”和“系统过滤器”,可以添加或删除域、更改指定域的管理员口令等,但是在Webmail方式下无法更改指定域的名称。“域”的管理权限仅限于某个域,可以在该域内添加或删除账户、查看某个账户的密码和个人信息、管理该域的公共地址簿等。同样,在Webmail方式下域管理员不能更改账户的名称。
另一种方式是通过本机管理程序进行管理,可以通过程序组启动管理系统。这种方式除了具备Webmail方式下的全部管理功能外,还增加了更改域名和账户名、更改账户的邮箱容量等功能,可以更全面地管理“系统”和“域”。不过测试版没有提供第二种管理方式。
上述内容较笼统地介绍了FMS的使用方法。作为一款功能强大的企业级邮件服务平台,它还有诸如安全邮件设置、日程管理、Wapmail等许多实用功能,有兴趣的朋友可以深入研究