问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何搭建邮件服务器?

发布网友 发布时间: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等许多实用功能,有兴趣的朋友可以深入研究
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
北京协和售后 spcp代收费是什么 Doppelherz/双心 铁元营养口服液 500ml-详细介绍 淘宝阿尔卑斯店的德国铁元怎么样? 后面的肩膀缝疼因为什么 刮痧后一躺下肩膀疼的要命 “亭台六七座”的出处是哪里 mahini 是什么意思? 外阴溃烂了怎么办 外阴溃疡,溃疡处伤口不愈合,可以用什么药 怎么建立一个本地的邮件服务器? 如何建立电子邮箱? avr studio 仿真时在哪里查看全局变量的值 急!!!AVR单片机程序怎样进行软件仿真? 为什么我的AVR实验板链接的usb仿真器 AVR studio检测不到仿真器 在AVR单片机中,ICC AVR、AVR Studio还有Win AVR各个软件是什么关系? proteus不能仿真飞思卡尔单片机?飞思卡尔单片机用什么软件仿真? avr 8位机的问题,像atmega328p这种IC有没有在线仿真器?还是开发只能用串口查看输出调 AVR 单片机仿真器是什么 玫瑰花和月季花有什么不同点和相同点 Atmel EEPROM 的Verilog HDL模型哪里下载呀? 月季与玫瑰有何区别? 求问atmega系列单片机用什么开发软件好 怎么用Proteus仿真ATMEGA16单片机流水灯? 玫瑰花与月季花的区别是什么? 月季花就是玫瑰花吗? Verilog HDL 需要用什么软件仿真呢? atmel单片机c语言编译器叫什么? 单片机仿真用什么 atmel 的编译器 Atmel studio和 ARM 的编译器KEIL ,编译Cortex-M3,哪个更好? 如何在本机搭建邮件服务器? 收条上的领收人是什么意思,具备什么法律效力? 领口收针方法有哪些? 农村户口买过企业养老保险。独生子女80元每月能领收吗? 毛衣领口怎么收边 领收日付印。 用日语怎么说? 乡下邮寄点去领收一元钱,是论件的还是论领一回一元? 请问日本领收书上写金额的下边 有一个 &quot;但” 这是什么意思。 梦想世界怎么领收什么的 15岁年前我领收了20个月失业金,但现在又上了四年,又失业了,请问我现在能领取 日语的领收书 求大神解答!! 我签了案款领收按了手印。但是钱没拿到怎么办。农民工工资? 我身份证被寄错地方了,被人领收了怎么能收回来? 投资者现在投资24000元,希望在今后的每月末领收100元,无限期地领下去,问年实际利率应为多少? 麻烦帮我鉴定下这张日本领收书 在诊疗过程中有哪些情况我们不能领收患者诊查费? 在日本往韩国寄了单反相机 佳能的 有点贵 3500人民币 现在被扣在 韩国海关 说要领收证。领收 荷兰风时期男子通过在领口收省来造型的领子叫做什么? Hunting Lodge(猎户)威士忌的品牌简介 蒜苔金针菇炒肉怎么做