收藏 分销(赏)

基于Sendmail-OpenWebmail邮件服务器的解决方案论文.doc

上传人:仙人****88 文档编号:9465841 上传时间:2025-03-27 格式:DOC 页数:30 大小:347.50KB
下载 相关 举报
基于Sendmail-OpenWebmail邮件服务器的解决方案论文.doc_第1页
第1页 / 共30页
基于Sendmail-OpenWebmail邮件服务器的解决方案论文.doc_第2页
第2页 / 共30页
点击查看更多>>
资源描述
目 录 一、引言 2 1.1 Sendmail的简介 3 1.2 Open Webmail的简介 4 1.3 Open Webmail的一些能力及特点 4 1.4 邮件服务器的相关协议 5 1.41 SMTP 协议 5 1.42 POP3 协议 5 1.43 IMAP4 协议 5 1.44 HTTP 协议和 HTML 语言 5 1.45 MIME 协议 5 1.46 LDAP 协议 5 二、 Sendmail邮件服务器安装的准备工作 6 2.1 Sendmail邮件系统的目标 6 2.2 安装软件包的介绍 6 2.3 Sendmail邮件服务器的安装 6 2.31 工作环境 6 2.32 主机系统 6 2.33 所用软件包 6 2.34 安装apache 7 2.35 安装php4 7 2.36 配置httpd.conf 7 2.37 测试apache对php的支持 7 2.4 Sendmail基本包的安装配置 8 2.41 安装、配置方法 8 2.42 简要配置方法 10 2.5 设置SASL认证方案 12 2.6 安装pop3 13 2.7 安装openwebmail 13 三、 Sendmail的一些特殊配制 15 3.1 Sendmail设置虚拟域 15 3.2 设定用户名 15 3.3 相应的源文件 17 四、具体的功能实现 22 4.1 主界面 22 4.2 基本认识 23 4.3 使用工具列 24 4.4 邮件管理 26 4.5 通讯录 27 4.6 使用行事历 28 4.7 调整设定 29 五、总结 29 六、结束语 30 参考文献 30 基于Sendmail+OpenWebmail邮件服务器的解决方案 摘要 人们在互联网上最常使用的就是电子邮件,很多企业用户也经常使用免费电子邮件系统。本文就以step by step的方式引导用户从Sendmail源代码开始再加上Openwebmail构建一个可以满足基本工作需要的邮件系统。例如:防垃圾邮件;垃圾邮件地址/域名限制;拒绝没有MX/A记录的域;RBL(实时黑洞列表)查找;SMTP连接控制;防非法用户;防攻击;循环检测;系统安全加固;系统安全特性;网络安全特性。 关键字 Sendmail Openwebmail Apache SMTP协议 POP3协议 The mail server's solution based on Sendmail and Openwebmail Bai lin, Department of Computer Science,GuiZhou University Abstract People most and often use on the Internet of is an E-mail, customer of a lot of business enterprises to also usually use the free E-mail system.This text with the step by step way leading customer is from the Sendmail the code beginning plus the Openwebmail to set up a mail system for can satisfying the basic work demand. For example:Defend the garbage mail;Garbage mail address/ domain restrict;Refuse to have no a MX/ A the domain that record;The RBL( solid hour black hole row form) checks to seek;SMTP conjunction control;Defend the illegal customer;Defend the attack;Circulation examination;The system safety reinforces;Safe characteristic of system;Safe characteristic of network. Key word Sendmail Openwebmail Apache SMTP agreement POP3 agreement 一、引言 电子邮件是Internet应用服务之一,通过网络,可以以非常低廉的价格、非常快速的方式,与世界上任何一个网络用户联络,这些电子邮件可以包含文字、图像、声音或其他多媒体信息。和普通的邮件一样,电子邮件也需要“邮局”——邮件服务器。邮件服务器提供了邮件系统的基本结构,包括邮件传输、邮件分发、邮件存储等功能,以确保邮件能够发送到Internet网络中的任意地方。 邮件服务器的主要功能有:防垃圾邮件;垃圾邮件地址/域名限制;拒绝没有MX/A记录的域;RBL(实时黑洞列表)查找;SMTP连接控制;防非法用户;防攻击;循环检测;系统安全加固;系统安全特性;网络安全特性。 选用Linux邮件服务器是因为Linux操作系统作为目前应用最为广泛的开源操作系统,具有性能稳定、可靠性高和价格低廉的特点。使用Linux作为邮件服务器,主要是可以与Sendmail等开发源软件共同使用,在满足用户需求的基础上降低了系统价格。 1.1 Sendmail的简介 Sendmail是最重要的邮件传输代理程序。理解电子邮件的工作模式是非常重要的。一般情况下,我们把电子邮件程序分解成用户代理、传输代理和投递代理。 用户代理用来接受用户的指令,将用户的邮件传送至邮件传输代理,如:outlook express、foxmail等。而投递代理则从邮件传输代理取得邮件传送至最终用户的邮箱,如:procmail。 当用户试图发送一封电子邮件的时候,他并不能直接将邮件发送到对方的机器上,用户代理必须试图去寻找一个邮件传输代理,把邮件提交给它。邮件传输代理得到了邮件后,首先将它保存在自身的缓冲队列中,然后,根据邮件的目标地址,邮件传输代理程序将找到应该对这个目标地址负责的邮件传输代理服务器,并且通过网络将邮件传送给它。对方的服务器接收到邮件之后,将其缓冲存储在本地,直到电子邮件的接收者察看自己的电子信箱。 显然,邮件传输是从服务器到服务器的,而且每个用户必须拥有服务器上存储信息的空间(称为信箱)才能接受邮件(发送邮件不受这个限制)。可以看到,一个邮件传输代理的主要工作是监视用户代理的请求,根据电子邮件的目标地址找出对应的邮件服务器,将邮件在服务器之间传输并且将接收到的邮件缓冲或者 提交给最终投递程序。有许多的程序可以作为邮件传输代理,但是sendmail是其中最重要的一个,事实证明它可以支持数千甚至更多的用户,而且占用的系统资源相当少。不过,sendmail的配置十分复杂,因此,也有人使用另外的一些工具,如qmail、postfix等等。 当sendmail程序得到一封待发送的邮件的时候,它需要根据目标地址确定将邮件投递给对应的服务器,这是通过DNS服务实现的。例如一封邮件的目标地址是ideal@,那么sendmail首先确定这个地址是用户名(ideal)+机器名()的格式,然后,通过查询DNS来确定需要把邮件投递给某个服务器。 DNS数据中,与电子邮件相关的是MX记录,例如在这个域的dns数据文件中有如下设置: IN MX 10 mail IN MX 20 mail1 mail IN A 210.40.4.6 mail1 IN A 210.40.4.6 显然,在DNS中说明有两个一个邮件交换(MX)服务器,于是,sendmail试图将邮件发送给两者之一。一般来说,排在前面的MX服务器的优先级别比较高,因此服务器将试图连接的25端口,试图将邮件报文转发给它。如果成功,你的smtp服务器的任务就完成了,在这以后的任务,将由来完成。在一般的情况下,mail交换器会自动把邮件内容转交给目标主机,不过,也存在这样的情况,目标主机(比如)可能并不存在,或者不执行smtp服务,而是由其mx交换器来执行邮件的管理,这时候,最终的邮件将保存在mx机器上,直到用户来察看它。   如果DNS查询无法找出对某个地址的MX记录(通常因为对方没有邮件交换主机),那么sendmail将是试图直接与来自邮件地址的主机对话并且发送邮件。例如,test@DNS中没有对应的MX记录,因此sendmail在确定MX交换器失败后,将从DNS取得对方的IP地址并直接和对方对话试图发送邮件。 1.2 Open Webmail的简介 Open Webmail 是一套自由(免费)的开放源代码的程序,协助人们从任何地方检查他们的电子邮件信箱!Open WebMail 可以让你在使用他人电脑时方便地存取自己的电子邮件,或者用来完全代替你常用的邮件阅读程序(Outlook Express)。Open Webmail 内附带的容易使用的行事历工具,也能够帮助你管理每日活动和日历。在这个指南中,你将找到例子、图表、和定义,以帮助你充分了解运用 Open Webmail。 1.3 Open Webmail的一些能力及特点 Open Webmail 的一些能力及特点,让你在使用上有极大的“弹性”,并且可以和你的其他电子邮件用户端程序配合使用。 如果电子邮件已经在 Open WebMail 的收件箱中观看过了 · 仍可被下载到你的离线式邮件阅读程序中,不过会被标示为已读。 · 只要邮件尚未被下载仍可以透过 Open WebMail 将邮件标示为未读。 如果电子邮件已经被下载到你的离线式邮件阅读程序中 · 将不能再使用Open Webmail 查看收件箱的邮件 · 将不会对你的Open Webmail 收件箱中已读\新邮件有所影响 注意,当你已经将邮件下载到你的离线式邮件阅读程序之后,无论你将邮件标记为已读\未读,在你的Open WebMail收件箱不会有任何邮件。 Open Webmail 主要的优点是:你可以透过全世界任何可上网的电脑来观看你的电子邮件,另外你还可以透过Open Webmail行事例来计划及记忆每日的行程。 1.4 邮件服务器的相关协议 1.41 SMTP 协议 SMTP 协议是简单的邮件传输协议(Simple Mail Transfer Protocol) 的缩写。 这是最早出现的, 也是被普遍使用的最基本 Internet 邮件服务协议。 1.42 POP3 协议 POP 协议是邮局协议 (Post Office Protocol) 的缩写, 是一种允许用户从邮件服务器收发邮件的协议。与 SMTP 协议相结合, POP3 是目前最常用的电子邮件服务协议。 1.43 IMAP4 协议 IMAP 协议是 Internet 消息访问协议 (Internet Message Access Protocol) 的缩写, 现在常用的是版本 4, 它为用户提供了有选择的从邮件服务器接收邮件的功能, 基于服务器的信息处理功能和共享信箱功能。 IMAP4 在用户登录到邮件服务器以后, 允许采取多段处理方式查询邮件。 首 先, 用户可以仅读取电子邮箱中的邮件信头(Message header); 然后, 用户可以选择下载指定的邮件或者全部邮件。 IMAP4 在邮件服务器一端为用户保留邮件。 1.44 HTTP 协议和 HTML 语言 HTTP 协议是超级文本传输协议 (HyperText Transfer Protocol) 的缩写, 支持这个协议的邮件服务器, 可以提供通过 Web 的电子邮件收发服务。 1.45 MIME 协议 MIME 是多用途 Internet 邮件扩展 (Multipurpose Internet Mail Extensions) 协议的缩写。作为对 SMTP 协议的扩充, MIME 规定了通过 SMTP 协议传输非文本电子邮件附件的标准。目前, MIME 的用途早已经超越了收发电子邮件的范围, 成为在 Internet 上传输多媒体信 息的基本协议之一。 1.46 LDAP 协议 LDAP 协议是轻量目录访问协议 (Lightweight Directory Access Protocol) 的 缩写。 通过将相关的内容存放在统一的目录之下, 目录服务为用户提供了基于客户/服 务器工作方式的信息查询手段。 二、 Sendmail邮件服务器安装的准备工作 2.1 Sendmail邮件系统的目标 使用sendmail建造一个高性能和安全的邮件服务器。 2.2 安装软件包的介绍 sendmail-cf-8.11.6-3 RPM apache-2.0.45.tar.gz apache安装包 php-4.3.1.tar.gz 支持apache的安装 CGI.pm-2.74.tar.gz openwebmail相关包 MIME-Base64-2.12.tar.gz libnet-1.0901.tar.gz Download openwebmail-1.65.tar. gz openwebmail程序套件, perl.5.XX   redhat 7.2系统自带 2.3 Sendmail邮件服务器的安装 2.31 工作环境   本文假设用户希望在校园区网环境中架设一个电子邮件服务器,为本系用户提供邮件服务。该服务器拥有一个合法的IP地址210.40.4.6和一个合法的域名mail.m99biye.3322.org,并且DNS的MX记录也指向该域名。为了满足域名需求,DNS的域数据文件应该包含以下内容:   IN MX 10 mail   mail IN A 210.40.4.6 2.32 主机系统 主机使用的是REDHAT7.2操作系统。 2.33 所用软件包 sendmail-cf-8.11.6-3 RPM apache-2.0.45.tar.gz php-4.3.1.tar.gz CGI.pm-2.74.tar.gz MIME-Base64-2.12.tar.gz libnet-1.0901.tar.gz Download openwebmail-1.65.tar. gz perl.5.XX   2.34 安装apache tar -xzvf apache-2.0.45.tar.gz cd apache-2.0.45 ./configure --prefix=/usr/local/apache --enable-module=so make make install 2.35 安装php4 tar -xzvf php-4.3.1.tar.gz cd php-4.3.1 ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/lib --enable-track-vars --with-xml --with-mysql --with-imap=../imap-2002 --with-kerberos make make install cp php.ini-dist /usr/local/lib/php.ini 2.36 配置httpd.conf AddType application/x-httpd-php .php .php3 .phtml .inc AddType application/x-httpd-php-source .phps LoadModule php4_module modules/libphp4.so /usr/local/apache/bin/./apachet1 restart 重新启动apache 2.37 测试apache对php的支持 编写/usr/local/apache/htdocs/test.php <?phpinfo()?> 测试: http://127.0.0.1/test.php 2.4 Sendmail基本包的安装配置 前提:首先你要安装sendmail,如果你在安装Linux时选择全部安装的话,sendmail就已经在你的系统里了。如果不是的话就要安装了。其次就是你的DNS一定要配置正确,完整,否则sendmail服务可能运行不正常。如果你的系统是按照上面所述的安装好的话,那么sendmail服务的配置可以说是非常简单了,想知道有关DNS的详细配置请查阅有关DNS的文章。 Sendmail是目前使用最为广泛的一种E-mail服务器。当前其最新的稳定版本为8.11.4。下载得到tar.gz格式的压缩包以后,将其存放在/usr/src目录下。 2.41 安装、配置方法 解压软件包:   [root@email src]# tar xvfz sendmail.8.11.4.tar.gz   [root@email src]# cd sendmail-8.11.4   编译安装:   [root@email sendmail-8.11.4]# cd sendmail   [root@email sendmail]# sh Build   生成配置文件:   [root@email sendmail]#cd /usr/src/sendmail-8.11.4/cf/cf/   一般该目录下应该有config.mc的文件,如果没有则创建新文件config.mc,内容为:   divert(-1)   dnl This is the macro config file used to generate the /etc/sendmail.cf   dnl file. If you modify thei file you will have to regenerate the   dnl /etc/sendmail.cf by running this macro config through the m4   dnl preprocessor:   dnl m4 /etc/sendmail.mc > /etc/sendmail.cf   dnl You will need to have the Sendmail-cf package installed for this to work.   include(`/usr/src/sendmail-8.11.4/cf')   define(`confDEF_USER_ID',`8:12')   OSTYPE(`linux')   undefine(`UUCP_RELAY')   undefine(`BITNET_RELAY')   define(`confAUTO_REBUILD')   define(`confTO_CONNECT', `1m')   define(`confTRY_NULL_MX_LIST',true)   define(`confDONT_PROBE_INTERFACES',true)   define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')   FEATURE(`smrsh',`/usr/sbin/smrsh')   FEATURE(`mailertable',`hash -o /etc/mail/mailertable')   FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')   FEATURE(redirect)   FEATURE(always_add_domain)   FEATURE(use_cw_file)   FEATURE(local_procmail)   MAILER(smtp)   MAILER(procmail)   FEATURE(`access_db')   FEATURE(`blacklist_recipients')   dnl We strongly recommend to comment this one out if you want to protect   dnl yourself from spam. However, the laptop and users on computers that do   dnl not hav 24x7 DNS do need this.   FEATURE(`accept_unresolvable_domains')   dnl FEATURE(`relay_based_on_MX') 然后运行:   [root@email cf]# sh Build config.cf   该命令将在该目录下生成config.cf文件。然后安装sendmail:   [root@email sendmail]# sh Build install   将config.cf拷贝到/etc/mail目录下,并改名为sendmail.cf:   [root@email mail]#cp /usr/src/sendmail-8.11.4/cf/cf/config.cf /etc/mail/sendmail.cf 在/etc/mail目录下创建access文件,内容如下:   127.0.0.1 RELAY   210.40.4.6 RELAY   这里表示允许本机和网址210.40.4.6的机器通过该邮件服务器的转发邮件。其中210.40.4.6应该是你拥有的局域网络IP网段的IP地址,只需要写网络部分即可。比如说你的用户有多个网段,只需要在其中设置多个网段即可:   127.0.0.1 RELAY   202.99.11 RELAY   200.200.201 RELAY   然后对access文件生成易于检索的库文件格式:   [root@email mail]# makemap hash access.db < access   创建文件/etc/mail/local-host-names,其内容为本机的拥有的域名信息,因为在上面的DNS配置文件中该服务器有一个域名:,并且MX记录也指向该域名,因此该服务器就有两个域名,一个为及,这样用户才可以使用someone@.这样的地址收发邮件,故该文件应该包含入下内容:   .   .   最后还要创建别名数据库。在/etc/mail/aliases目录下创建文件aliases,内容如下:   MAILER-DAEMON: postmaster   postmaster: root   bin: root   daemon: root   nobody: root   然后生成aliases库:   [root@email mail]# newaliases   然后,就可以启动Sendmail了:   [root@email mail]# /usr/sbin/sendmail -bd -q20m   在第一次启动时可能出现如下的错误信息: 554 5.0.0 /etc/mail/sendmail.cf: line 41: unknown configuration line ""   554 5.0.0 /etc/mail/sendmail.cf: line 60: unknown configuration line "" 只需要使用vi编辑器将这些行删除即可,其实41、60等行都是空白行而已。删除以后再重新启动就应该没有问题了。 2.42 简要配置方法 1>. 修改/etc/mail/access 文件  象下面这样:     RELAY    //“”是你的域的名字         192.168.0    RELAY    //允许 192.168.0.*的机器通过你的机器发信  然后输入下面这个命令进行转化:     makemap hash access.db < access  2>. 修改或创建文件:/etc/mail/relay-domains 内容如下:    192.168.0  这样就可以了。可能你这配置时要许多的问题。以上是相对要简要的方法我经过十几次的安装和配置linux总结出来的最简单的方法了。但是要注意一点,你的DNS一定要是没有问题的,否则sendmail是不会好用的。  3>. sendmail常用命令及测试和相关文件    A、相关文件      /etc/sendmail.cf      /etc/sendmil.cw      /etc/inetd.conf    在/etc/mail目录下有以下文件      access.db    access      mailertable.db   mailertable      aliases.db     aliases    B、命令      a. 重新启动sendmail服务        有这个目录下 /etc/rc.d/init.d 有文件sendmail,输入如下命令:         ./sendmail restart      b. 检查POP3端口是否打开        命令: netstat -a |grep pop       如有下面的信息,则POP3端口就打开了:       tcp 0 0 *: pop3 *.* LISTEN      c. 确定sendmail服务是否启动        ps -axuw | grep sendmail 如启动了,则会有一些提示信息。 2.5 设置SASL认证方案 1. 运行下面的命令,确保SASL被编译进Sendmail. #/usr/sbin/sendmail -d0.1 -bv root |grep SASL 输出应该类似如下面: NETUNIX NEWDB QUEUE SASL SCANF SMTP USERDB XDEBUG 确保你能看见上面的文本中的 SASL 2. 测试端口25,确保输出AUTH提示行。 #telnet localhost 25 Trying 127.0.0.1... Connected to . Escape character is '^]'. 220 ESMTP Sendmail 8.11.2/8.11.2; Sun, 1 July 2001 17:56:54 -0800 EHLO localhost 250- Hello IDENT:root@ [127.0.0.1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-EXPN 250-VERB 250-8BITMIME 250-SIZE 250-DSN 250-ONEX 250-ETRN 250-XUSR 250-AUTH LOGIN PLAIN 250 HELP quit 221 2.0.0 closing connection Connection closed by foreign host. 你需要至少看见AUTH行中有LOGIN PLAIN在那里,否则不能relay mail。 3. 最后,运行/etc/rc.d/init.d/sendmail restart重新启动Sendmail。 4、添加用户。我用的是系统默认用户,只要添加系统用户就可以了。  例如,添加用户peng,组是mailuser, 放在/home/mailuser目录中,没有登陆shell.  groupadd -g 2000 mailuser  useradd -d /home/mailuser/peng -g 2000 -s /bin/false peng  passwd peng  输入两遍密码。  在这里,为了安全起见,我没有给用户添加可用的shell。用户可通过openwebmail界面更改密码。   2.6 安装pop3 从redhat 7.2的光盘上有imap-2000c-15.i386.rpm rpm -ivh imap-2000c-15.i386.rpm 验证:netstat -a |grep pop 输出 ------tcp 0 0 * : pop3 *:* listen 2.7 安装openwebmail 下载相关的软件: 1、CGI.pm-2.74.tar.gz 2、MIME-Base64-2.12.tar.gz 3、libnet-1.0901.tar.gz 4、Download openwebmail-1.65.tar.gz程序套件, 5、perl.5.XX    把前三个文件放在/tep目录下: (1)安装CGI.pm-2.74: cd /tmp tar -zxvf CGI.pm-2.74.tar.gz cd CGI.pm-2.74 perl Makefile.PL make make install (2)安装MIME-Base64-2.12: cd /tmp tar -zxvf MIME-Base64-2.12.tar.gz cd MIME-Base64-2.12 perl Makefile.PL make make install (3)安装libnet-1.0901: cd /tmp tar -zxvf libnet-1.0901.tar.gz cd libnet-1.0901 perl Makefile.PL make make install (4)安装 openwebmial 主程序 cd /var/www tar -zxvf openwebmail-1.65.tgz mv /var/www/data/openwebmail  /var/www/htdocs/ 修改设定值: (1)vi /var/www/cgi-bin/openwebmail/auth_unix.pl) my $unix_passwdfile to /etc/shadow (找到这两行,修改。) my $unix_passwdmkdb to none (2)vi /var/www/cgi-bin/openwebmail/etc/openwebmail.conf 下列是 RedHat 7.2 openwebmail.conf 的內容,请修改如下: -------------------------------------------------------------------------------------- # Open WebMail configuration file # This file contains just the overrides from openwebmail.conf.default # please make all changes to this file. # This file set options for all domains and all users. # To set options on per domain basis, please put them in sites.conf/domainname # To set options on per user basis, please put them in users.conf/username domainnames auto auth_module auth_unix.pl mailspooldir /var/spool/mail dbm_ext .db dbmopen_ext none ow_cgidir /var/www/cgi-bin/openwebmail ow_htmldir /var/www/htdocs/openwebmail logfile /var/log/openwebmail.log spellcheck /usr/bin/aspell default_language zh_CH.GB2312   -----默认简体中文 ------------------------------------------------------------------------------ (3)为避免"Returned mail: see transcript for details"的错误信息,请做下列连接: cd /etc/smrsh ln -s /var/www/cgi-bin/openwebmail/vacation.pl /etc/smrsh/vacation.pl 进行测试! 添加用户: useradd -d /home/test test passwd test ----创建密码 輸入以下网址 http://yourservername/cgi-bin/openwebmail/openwebmail.pl 如果你觉得输入这么长的地址太麻烦,可以做个index.html连接。 cd /var/www/htdocs/ vi index.html ------------------------------------------------------ <html> <head> <META HTTP-EQUIV="REFR
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服