基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx

上传人:b****1 文档编号:14681547 上传时间:2023-06-26 格式:DOCX 页数:45 大小:741.67KB
下载 相关 举报
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第1页
第1页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第2页
第2页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第3页
第3页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第4页
第4页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第5页
第5页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第6页
第6页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第7页
第7页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第8页
第8页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第9页
第9页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第10页
第10页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第11页
第11页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第12页
第12页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第13页
第13页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第14页
第14页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第15页
第15页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第16页
第16页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第17页
第17页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第18页
第18页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第19页
第19页 / 共45页
基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx_第20页
第20页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx

《基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx(45页珍藏版)》请在冰点文库上搜索。

基于Linux系统配置高效的Qmail邮件服务器毕业设计论文.docx

基于Linux系统配置高效的Qmail邮件服务器毕业设计论文

毕业设计[论文]

题目:

基于Linux系统配置高效的Qmail邮件服务器

 

摘要3

前言5

1.关于邮件系统相关协议6

6.4创建邮件帐号37

6.5对tay@的用户进行修改37

6.6普通用户通过sqwebmail进入用户界面36

 

基于Linux系统配置高效的Qmail邮件服务器

摘要

在深入探索qmail的配置和调节之前,了解一些qmail的基础架构是重要的。

Qmail经常被仅仅归类为一个邮件服务器软件包。

这可能只在某一点上是正确的,将qmail考虑为一个邮件分发体系会更加准确,这个体系结构的构建者为这个体系的所有组件深入的提供了一些基础接口。

Qmail是非常模块化的——它包含了一系列通过特定且受限的接口来互相沟通的简单程序。

每个简单的程序都有一个特定且受限的任务需要完成。

这个体系结构允许每个组件都被容易的替代或让新的程序插入到基础组件之中。

本文将是用GNU下的一个著名的自由软件Qmail在Linux平台上配置一套功能完整、高效的邮件系统并通过Web页面轻松完成用户管理和邮件系统的配置工作。

这里将以qmail作为smtp服务器,vpopmail实现实现虚拟域管理、用mysql数据库来进行用户验证,用qmailadmin通过Web来实现管理虚拟域,用ezmlm来提供强大的邮件列表支持,用igenus来提供一个友善的webmail界面,Clanav则为此邮件系统提供杀毒模块。

关键词:

Qmail;mysql;ezmlm;igenus;apache.

 

Themailserver'sbasedontheLinuxsystemconfigurationandefficient

Abstract

Beforedelvingtoodeeplyintofurtherconfigurationandtailoringofqmail,itisimportanttounderstandthebasicstructureofqmail.Qmailisoftenreferredtoasmerelyamailserversoftwarepackage.Whilethismaybeaccurateinonesense,itismoreaccuratetothinkofqmailasamaildeliveryarchitecturewhosearchitecthasthoughtfullyprovidedabasicimplementationofallthecomponentsofthatarchitecture.Qmailisverymodular—itconsistsofaseriesofsimpleprogramscommunicatingviaspecificandlimitedinterfaces.Eachsimpleprogramhasaspecificandlimitedtasktoperform.Thisarchitectureallowseachcomponentprogramtobeeasilyreplacedornewprogramstobeinsertedbetweenthebasiccomponents.

ThepurposeofthistextisusethefreesoftwareonaUNIXplatforminstallacompletemailsystemandhowmanageit.Weusesqmaiassmtpserver,usesvpopmailaspop3serverandrealizesConjecture,usesezmlmtoofferthesupporttomailrow,WealsousesigenustoofferafriendlywebmailInterface,Clanavmailforthissystemtoprovidetheantivirusmodule.

KeyWords:

Qmail;mysql;ezmlm;igenus;apache.

 

前言

实践证明,基于Windows和Exchange的邮件服务器并不是企业级电子邮件系统的最佳选择。

由于对稳定性、安全等性能要求非常高,因此大型电子邮件系统一般都使用UNIX作为服务器的操作系统,例如,Hotmail使用FreeBSD和Solaris,国内163等站点也是采用BSD系列。

追求稳定的大型企业可采用FreeBSD和Solaris,普通中小企业可采用Linux。

Qmail是可以完全替代Sendmail-binmail体系的新一代UNIX邮件系统,它也是一个基于UNIX操作系统的Internet邮件传输机构(InternetMailTransferAgent简称MTA)。

它采用标准的简单邮件传输协议(SimpleMailTransferProtocol简称SMTP)与Internet上其他MTA交换信息。

为了解决用户邮件存储问题,Qmail提出了Maildir存储方式,每个邮件作为单独的一个文件保存在用户个人的邮件目录下,这就避免了加锁。

同时,Qmail支持虚拟域(VirtualDomain)和虚拟用户(VirtualUser),使邮件系统的用户独立于UNIX系统用户。

当前在国内最流行的免费电子邮件系统如163、371等,都是使用网易公司开发的系统。

这些系统就是采用Qmail作为基本服务器软件,采用NFS网络文件系统作为用户邮件存储空间,使用Maildir作为邮件存储格式,提供多级目录以支持较大的用户数。

与Internet上的免费电子邮件系统相比,大中型企业电子邮件系统用户主要为企业内部用户,虽然数量没有上十万、百万那么多,用户群也相对固定,但对系统的安全性、稳定性的要求更高,用户管理工作也更细致、繁琐。

如果能采用统一的Web形式建立完善的用户数据库并提供邮件服务和用户管理,则会在方便用户的同时,大大地减轻系统管理员繁琐的工作。

Qmail是GNU下的一个著名的自由软件,世界各地的高手们为进一步完善和扩充它的功能,开发了大量的基于Qmail的工具和补丁软件,VmailMgr(VirtualMailManaGeR)就是其中之一。

它增强了Qmail虚拟域(VirtualDomain)的功能,提供了大量的命令,以方便建立和管理独立于UNIX系统用户的邮件系统用户,提供软、硬空间限额等丰富的管理功能;邮件服务器的虚拟用户也可以通过POP3、IMAP标准协议访问自己的邮箱。

特别值得一提的是,VmailMgr还提供一组CGI程序和PHP函数,有了这组程序,用户们可以通过Web页面进行邮箱申请、密码更换,邮件管理员也可以通过Web页面轻松完成用户管理和邮件系统的配置工作。

 

1.关于邮件系统的相关协议

1.1SMTP协议

SMTP协议是简单的邮件传输协议(SimpleMailTransferProtocol)的缩写。

这是最早出现的,也是被普遍使用的最基本Internet邮件服务协议。

1.2POP3协议

POP协议是邮局协议(PostOfficeProtocol)的缩写,是一种允许用户从邮件服务器收发邮件的协议。

与SMTP协议相结合,POP3是目前最常用的电子邮件服务协议。

1.3IMAP4协议

IMAP协议是Internet消息访问协议(InternetMessageAccessProtocol)的缩写,现在常用的是版本4,它为用户提供了有选择的从邮件服务器接收邮件的功能,基于服务器的信息处理功能和共享信箱功能。

IMAP4在用户登录到邮件服务器以后,允许采取多段处理方式查询邮件。

首先,用户可以仅读取电子邮箱中的邮件信头(Messageheader);然后,用户可以选择下载指定的邮件或者全部邮件。

IMAP4在邮件服务器一端为用户保留邮件。

1.4HTTP协议和HTML语言

HTTP协议是超级文本传输协议(HyperTextTransferProtocol)的缩写,支持这个协议的邮件服务器,可以提供通过Web的电子邮件收发服务。

1.5MIME协议

MIME是多用途Internet邮件扩展(MultipurposeInternetMailExtensions)协议的缩写。

作为对SMTP协议的扩充,MIME规定了通过SMTP协议传输非文本电子邮件附件的标准。

目前,MIME的用途早已经超越了收发电子邮件的范围,成为在Internet上传输多媒体信息的基本协议之一。

1.6LDAP协议

LDAP协议是轻量目录访问协议(LightweightDirectoryAccessProtocol)的缩写。

通过将相关的内容存放在统一的目录之下,目录服务为用户提供了基于客户/服务器工作方式的信息查询手段。

 

2.qmail的工作原理和配置文件的设置

2.1qmail和相关的服务

qmail提供了mta功能,但是客户要能看到自己的信件,还需要其他协议和软件。

两种常见的远程用户取回他们消息的机制是邮政协议(postofficeprotocal,pop3)和互交邮件访问协议(interactivemailaccessprotocol,imap)。

综述:

qmail系统包括几个可执行程序、配置文件、qmail工具和环境变量,这些彼此互相影响,共同提供邮件服务。

2.2email投递邮件进程流程

如图3-1

图3-1

qmail系统中有9个核心程序,这里简单的介绍一下。

qmail-smtpd负责接收来自远程主机的邮件消息并将它们传送给qmail-queue处理。

qmail-inject程序是用来接收本地产生的邮件消息并传送给qmail-queue程序。

qmai-queue程序处理他们发来的邮件,移进邮件队列以便发送。

一旦消息被成功的放在邮件队列中,就调用qmail-send程序来处理他。

qmail-send检查邮件队列中每一个消息状态,前一次邮件请求失败的消息被识别,并决定它是临时失败还是永久的,临时失败会再次投递,永久失败将被送递到qmail-clean程序,被删除掉。

也就是说,qmail-clean实用来清除永久失败的的邮件消息的。

qmail-send调用了qmail-lspawn和qmail-rspawn程序。

qmail-send判断邮件是发给谁的,发给本地的,就交给qmail-lspawn程序,再由qmail-local投送到本地邮件服务器。

要是确定为远程主机,就调用qmail-rspawn程序,qmail-rspawn为每一个邮件消息的接受方决定目的的邮件服务器,再调用qmail-remote程序发送。

qmail的进程:

qmail-send、sploggerqmail、qmail-lspawn、qmaiil-rspawn、qmail-clean。

qmail在任何时候都要求有五个程序在后台运行。

这些核心的程序允许qmail扫描新邮件,并将他们发送到适当的目的地。

2.3qmail环境变量

除了控制文件之外,qmail程序还能使用unix环境变量来控制他们的动作。

多数的控制文件的值都能被一个相应设定的环境变量重载。

如果该环境变量没有设定,就使用控制文件的值。

qmail的环境变量是在qmail程序运行前就被设置好的。

这是由一个包装程序完成的。

常见的是tcpwrapper和tcpserver。

本文就是用的tcpserver。

2.4qmail控制文件

对于管理好qmail,这一步非常重要的。

控制文件是qmail配置中的中心环节,它控制了qmail的操作性为。

它位于/var/qmail/control目录下。

每一个文件包含一个值,这个值定义了相应的qmail可执行程序的变量。

qmail控制文件是定义了qmail参数的ASCII文本文件。

大多数控制文件要求一个单一的文本值,该值可以在一行中输入。

也有一些控制文件能包含多个值。

在这种情况下,每一个值被输入到单独的一行中,每一行以一个标准的UNIX换行符(LF)结尾。

还有一个要重点注意,就是控制文件的权限问题,推荐root可读写,其他只读。

#chmod644/var/qmail/control/*

以下将逐一介绍这个控制文件:

Badmailfrom:

这个控制文件实现拒收邮件功能的,每一个地址遵循前面说的规则,要单独一行。

而且,不用重起qmail就能生效。

Bouncefrom:

用来定义用户名的,该用户名是出现在那些被退回给原始发件人的消息中,一般都是永久的投递失败消息。

Bouncefrom默认值是MAILER-DAEMON,它通常是一个虚拟用户名,是一个真实用户的别名。

你要是想给用户的退信消息中用另一个名字,可以用一下命令:

#echopostmaster>/var/qmail/control/bouncefrom给改为postmaster.

Bouncehost:

制定了退信消息中的主机名,默认的值是me文件的主机名。

Concurrencylocal:

定义了qmail能够同时运行的本地投送进程数。

对于大型的邮件主机,非常重要。

默认参数是10。

就是允许多达10个本地邮件投递进程同时运行。

这个控制文件的最大值是由qmail源代码中的conf-spawn变异参数设置的,这个编译参数默认值是120,最大值是255。

Concurrencyremote:

定义了qmail可以同时运行的远程投递进程数,默认值是20。

它也是由conf-spawn设置的,默认值是120,最大可设255。

但是要根据你的实际情况,因为运行进程要需要内存和硬盘的,设太大了小心服务器负载!

Defaultdomain:

默认域名,如果给本地的邮件用户发信,没有加上域名,qmail-inject会给他添加defaultdomain文件中的域名。

如果设置了QMAILDEFAULTDOMAIN环境变量,就会重载defaultdomain控制文件的值。

Defaulthost:

默认主机名,同一邮件服务器上,给本地用户发邮件,如果收信的用户地址没加域名,就会添加主机名。

Databytes:

定义由qmail-smtpd接受到的邮件消息所允许的最大字节数,也就是发送和接受邮件的大小(本机上给本机用户出发和接受除外)。

就是说,远程邮件主机和你用outlook、foxmail等远程的mua工具发信,都受它的限制。

默认值是0,表示不限制。

#echo10000000>/var/qmail/control/databyte(设置为10m,超过10m,将得到code552,告知:

其邮件大小超出了该邮件主机所能容忍的限度)

Doublebouncehost:

用来为那些经历了两次反弹后的消息指定主机名。

默认是me文件的值

Doublebounceto:

用来为那些经历了两次反弹后的消息指定用户名,默认是postmaster。

Envnoathost:

是qmail-send用来为没有指定主机名的邮件接受方指定他的主机名的,默认是没有这个控制文件的,qmail-send使用me文件定义的

Helohost:

指定在qmail-remote与远程邮件服务器的smtp会话中用到的主机名。

如果helohost控制文件没有给出,qmail-remote使用me文件的值。

Idhost:

指定了用来在消息中产生message-ID:

头字段得主机名,默认qmail-inject用me文件的值。

Localiphost:

用来为邮件消息指定本地地址的,内容是邮件主机的ip地址。

但是它用在dns上就会有问题。

建议不要设置。

Locals:

指定邮件本地地址,不存在,qmail-send就假定me文件的值为邮件主机的唯一可用本地邮件主机。

Me:

用来指定本地邮件服务器的主机名,最重要的控制文件,如果没有,qmail将不会运行。

me控制文件通常是靠运行qmail配置子目录下的config脚本文件来建立的,config脚本自动判断邮件服务器的dns域名,并产生一个适当的控制文件(me,locals,rcpthhosts)。

如果某种原因你的邮件服务器无法连通dns服务器,可以手工运行configfast来指定邮件服务器主机名:

#/var/qmail/configure/config-fast

Plusdomain:

用来将一个域名指定成任何一个以一个加号(+)结尾的地址。

缺省的情况下,出现在me文件的域名被添加到任何一个以加号结尾的邮件地址中。

Queuelifetime:

用来指定一个消息在他被删除前,可以在邮件列表中保存的时间秒数。

默认是604800,当投递失败的消息超过规定的时间,将被从邮件队列中删除。

Rcphosts:

定义了qmail可以接收消息的主机和域名。

不过因为rcpthosts中的域名最好不要超过50行,多出的添加到morercpthosts中。

Morercpthosts:

用来指定qmail将要为其接受消息的额外的主机和域名。

Smtpgreeting:

用来指定SMTP连接的欢迎标志,默认是用me文件的主机名。

那么建立一个smtp连接的时候将会看到如下信息:

Trying198.160.x.x...

Connectedto

Escapecharacteris^].

220welcomeconnecttooutopenrelaymailserver–ESMTP

Smtproutes:

用来指定能够被用来将邮件投送给特定目的地的静态smtp连接的。

Timeoutconnect:

用来指定qmail-remote将要等待的一个时间秒数。

也就是说等待远程smtp服务器接受本地的一个smtp请求响应的时间,默认是60秒。

对于质量不好的网络,可以适当调节。

Timeoutremote:

用来指定qmail-smtpd等待远程SMTP主机发送数据的时间线。

默认的情况下,如果连接建立后1200秒内没有接受到远程SMTP主机的任何信息,那么将关闭这个连接。

Timeoutsmtpd:

用来指定qmail-smtpd等待远程smtp客户端连接的时间秒数。

默认是1200,超过这个时间,连接取消。

Virtualdomains:

让qmail接受本地邮件以外,还接受该文件中指定的域或者邮件地址,就是常说的虚拟域支持。

以上说的一些控制文件,qmail默认不是都有的,只有一些必须要得。

根据你的mail不同的使用情况,自己选择来建立和设置。

2.5改变MUA程序接口

qmail程序包含了一个可执行程序,该程序替代了unix标准的sendmail程序。

想用qmail作为mail服务器,必须用qmail的sendmail包装程序替代现有的sendmail程序。

#mv/usr/sbin/sendmail/usr/sbin/sendmail.bak

#chmod0/usr/sbin/sendmail.bak

#ln–s/var/qmail/bin/sendmail/usr/sbin/sendmail

2.6建立qmailsmtp功能

传统上使用inetd程序来监听网络,但是缺点很多。

本文中用ucspi-tcp包的tcpserver服务来代替它。

参考了iceblood的qmail-setup.1.5.3的脚本文件,是这样完成的:

1、建立/etc/qmail目录,建立了smtp.shandpop3.sh启动脚本

2、建立了tcp.smtp和tcp.smtp.cdb文件。

具体是这样做的:

#echo“/etc/qmail/start”>>/etc/rc.d/rc.locad---开机执行/etc/qmail/start

#touch/etc/qmail/start---建立执行文件

#touch/etc/qmail/smtp---建立smtp脚本文件

#touch/etc/qmail/pop---建立pop脚本文件

#touch/etc/qmail/tcp.smtp---建立tcpserver的连接规则文件

#echo"csh-cf'/var/qmail/rc&'">/etc/qmail/start--开机启动qmail

#echo"/etc/qmail/smtp.sh">>/etc/qmail/start--开机执行smtp.sh

smtp脚本内容:

/usr/local/bin/tcpserver-H-R–l-t1-c100-v-p-x/etc/qmail/tcp.smtp.cdb-u502-g5010smtp/var/qmail/bin/qmail-smtpd/home/vpopmail/bin/vchkpw/bin/true|/var/qmail/bin/splogger&

(注:

502and501换成系统上的qmaild与nofiles的uidandgid的值。

pop脚本内容:

/usr/local/bin/tcpserver-c100-v-l-U-H-R0pop3/var/qmail/bin/qmail-popup/home/vpopmail/bin/vchkpw/var/qmail/bin/qmail-pop3dMaildir2>&1|/var/qmail/bin/splogger&

tcp.smtp脚本内容:

127.0.0.1:

allow,RELAYCLIENT=""

:

allow

#/var/qmail/bin/tcprules/etc/qmail/tcp.smtp.cdb/etc/qmail/tcp.smtp.tmp

以上配置,可以做到开机自动启动了。

 

3.Qmail的安装和配置

3.1Qmail的前期准备

3.1.1系统安装

操作系统:

CentOS6.3

分区状况

/5G

Swap1024MB

/home1024MB(因为邮件都储存在/home/vpopmail下,可以根据情况分区)

3.1.2设置DNS

MX记录和地址反解

3.1.3卸载已有的邮件系统

确认没有邮件服务在运行:

#/etc/init.d/psotfixstop

#netstat-na|grep25

#netstat-na|grep110

#netstat-na|grep143

#servicesendmailstop

删除已有的邮件软件:

#rpm–e--nodepspostfix

3.1.4软件包介绍

Qmail是本文的主角,世界上使用最广的邮件系统之一。

此处使用的是netqmail-1.05的补丁集和shupp.org的Toaster7.0运行脚

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2