手把手教你搭建linux邮箱服务器

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 现在网络中流行的电子邮件系统主要有Microsoft Exchange、Lotus Notes、Imail等等。Windows操作系统应用广泛,但是却漏洞也多。如何建立一个价廉而又安全的邮件服务平台呢。

现在网络中流行的电子邮件系统主要有Microsoft Exchange、Lotus Notes、Imail等等。Windows操作系统应用广泛,但是却漏洞也多。如何建立一个价廉而又安全的邮件服务平台呢。下面我们以 Linux+Qmail邮件系统组合为例,建立一个Linux平台的邮件系统。

Linux操作系统是开放的多用户多任务操作系统,能完成几乎所有的Windows操作系统功能。Linux可以采用字符界面模式运行服务,与 Windows华丽的图形界面比较起来,可以节约大量的系统资源用于服务,从而降低了对硬件的要求。下面我们要用到的Linux和Qmail都是共享免费 软件,可以从互联网上任意下载。

Qmail是Linux平台下一个模块化设计的邮件系统,每一个子功能都是由一个运行程序来实现。Qmail只是一个MTA(Mail Transport Agent,邮件传输代理),其他的功能如虚拟域名管理、数据库支持、WebMail等等,都需要其他程序来配合完成。Qmail的安全性非常高,网上很 多知名的邮件服务上如Hotmail、Yahoo,等都是采用其作为其邮件平台的核心。
timg

一、安装准备

1.拥有一台网络服务器
Qmail的设计目标是在一台奔腾机器上最终达到每天可以投递大约百万级数目的邮件,一般实际应用中,我们可以选用中低档次的服务器(1~2块 800MHz的CPU、1GB左右的内存、70GB左右的SCSI硬盘)就可以轻松满足百万用户数、千万次的邮件投递需求。这样的性能对于大型的机关企业 甚至一个小型的网络运营商都足够了。

Qmail对于网络链路的要求也很低,一条普通的ADSL专线就可以达到专业应用。Qmail的邮件队列管理非常完善,而且采用了Maildir的邮 件保存格式,在传递过程若发生网络中断、甚至在写入磁盘过程中服务器突然掉电,也不会出现邮件丢失或者损坏的情况,保障了用户数据的安全和完整性。

2.安装Linux服务器版操作系统
我们选用的是RedHat9,或者可以用服务器专用的最新版本RedHat Enterprise Linux Advance Server 3.0 版本。
RedHat9有非常漂亮的系统安装界面,需要注意的是我们以后要用到几个模块必须在安装的时候选择进去:apache、SQL/" target="_blank" class="keylink">mysql、 PHP、SQL/" target="_blank" class="keylink">mysql—devel,其他用不上的服务和协议一律不安装。为了达到服务器最佳性能,我们只运行操作系统的字符 界面,所以两种图形界面也不需要了。一般我们安装完操作系统后,调试应用程序都是通过网络远程进行的,我们需要添加两个服务:Vsftpd和VNC。

3.下载Qmail及其安装文件
我们需要用到的程序或者代码大致包括以下几类:
(1)操作系统补丁,用来完善和升级系统相关协议。
(2)Qmail、Vpopmail主程序及其相关升级文件。
(3)Web邮件收发系统:iGenus或者Sqwebmail,两者任选一种。
(4)后台管理程序:包括Qmailadmin、邮件列表、账号申请程序等。

二、安装调试与配置

这里我们只介绍大致的安装过程,着重讲述的是每个模块的功能和原理,实际具体的安装步骤请参考安装文档。

1.Qmail及Vpopmail安装

我们将要建立的是可以满足百万用户数的专业级邮件系统,同时也要满足不同用户组也就是多个虚拟域使用,所以我们需要用数据库来管理所有的虚拟域和邮件用户。

首先安装Qmail1.03版本及其相关补丁,运用tar命令解压缩程序源代码,make setup编译安装,输入配置系统的默认虚拟如mail.xiangshan.com。由于Linux系统自带有一个邮件系统Sendmail,它和 Qmail一样是一个MTA,所以在这里要让它停止服务(如图1)。

接着安装Vpopmail程序,它的作用是将Qmail和mysql数据库完美地结合起来,今后只要操作mysql数据库就可以全面管理Qmail的用户和信息了。安装成功以后,就可以利用Vpopmail程序的各种命令来建立虚拟域、用户名和密码、用户邮箱的大小等等。
这样,邮件系统的核心已经安装完成,我们已经可以通过Outlook、Foxmail等邮件客户端软件来收发虚拟域的邮件。

2.Web页面收发系统
我们采用的Web Mail系统是iGenus(如图2),iGenus 不是一套独立的邮件系统,只是一个 WebMail 接口,需要配合Qmail+Vpopmail+mysql 使用。iGenus采用直接对Qmail的Maildir 进行读写操作,因而比 IMAP/POP 方式更快一点。而且,这种方式也保证了在操作系统掉电或者突然崩溃的情况下,不至于破坏整个信箱。结合mysql数据库,iGenus还提供了目前流行的 网络硬盘存储、部门会议通知、日程安排等实用功能。

3.辅助管理维护系统
对于网络管理员来说,还需要对用户邮件虚拟域以及整个邮件服务器运行状况的管理功能,比如:用户账号申请、账号维护、建立新的虚拟域、限制邮件数量和磁盘配额、查看某个虚拟域的收发流量等等。

(1)安装Qmailadmin:可以完成对某个虚拟域中邮件账号的添加/删除和密码维护工作,也可以对某个账户进行停用启动以及转发邮件机器人邮件列表等设置。

(2)安装iGenus Admin:这是一个基于Web的虚拟域管理程序,可以完成虚拟域的建立定义维护和用户账号的维护,功能要比Qmailadmin强大。

(3)安装Isoqlog:Isoqlog是一个Qmail日志分析工具(如图3),可以分析和统计Qmail的运行日志,将诲涩难懂的日志转换成便于我们阅读和能够理解的报告,并生成漂亮的HTML格式的报表,管理员就可以通过浏览器来查看这些报表。

(4)安装QmailMRTG:多路由器通信监视器(MRTG)是在网络链路上监控通信负载的一件工具,MRTG 产生包含图表的HTML网页,它可以将系统中的通信情况实时显示在页面上(如图4)。

随着用户的增加,邮箱用户和虚拟域用户将会越来越庞大,管理员可以利用iGenus建立和管理每个虚拟域的数据,然后将每个域的Postmaster 账号密码告诉域管理员,让其通过Qmailadmin来建立和维护自己的每个用户信箱。同时,利用isoqlog和QmailMRTG分别观察各个域及其 用户的使用状况,以及整个服务器的运行状况,分析系统的各种运行参数来判断系统故障和潜在问题,最大限度保障邮件服务长时间高效运行。

三、后续开发和应用

垃圾邮件(SPAM)和邮件病毒是绝大多数网络管理员和邮箱用户最为关心的问题,SpamAssassin是一款高效实用的反垃圾邮件程序,用它几乎可以抵挡网络上95%的垃圾信息,而邮件服务器的效率却没有明显的降低。

病毒是除了垃圾邮件以外最让人头痛的邮件问题。ClamAV是Unix平台下免费的电子邮件防毒软件,提供线上及时更新病毒码的服务。ClamAV 目前可以侦测超过40,000 种病毒、蠕虫、木马程序,并且随时更新数据库,在极短的时间内,互联网上采用ClamAV的邮件服务器就完成最新的防护动作。

Qmail系统从头到尾都是一个开源系统,您可以在详细了解系统源代码后自己写这一部分的代码,从而让邮件系统更加个性化和专业化。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
13天前
|
Linux
linux下搭建tftp服务器教程
在Linux中搭建TFTP服务器,需安装`tftp-server`(如`tftpd-hpa`)。步骤包括:更新软件包列表,安装`tftpd-hpa`,启动并设置开机自启,配置服务器(编辑`/etc/default/tftpd-hpa`),添加选项,然后重启服务。完成后,可用`tftp`命令进行文件传输。例如,从IP`192.168.1.100`下载`file.txt`: ``` tftp 192.168.1.100 <<EOF binary put file.txt quit EOF ```
28 4
|
23天前
|
存储 监控 Linux
linux搭建EwoMail开源邮件服务器软件
linux搭建EwoMail开源邮件服务器软件
26 0
|
Ubuntu 大数据 Unix
手把手教如何搭建Linux环境(搭建云服务器) (Linux基础篇p1)
手把手教如何搭建Linux环境(搭建云服务器) (Linux基础篇p1)
手把手教如何搭建Linux环境(搭建云服务器) (Linux基础篇p1)
|
2月前
|
数据可视化 Linux Docker
【Linux】从零开始本地部署Dashy并远程访问
【Linux】从零开始本地部署Dashy并远程访问
25 0
|
5月前
|
Linux
手把手教你Linux下搭建ftp服务
手把手教你Linux下搭建ftp服务
148 1
|
5月前
|
jenkins Java Linux
手把手带你linux下搭建jenkins
手把手带你linux下搭建jenkins
123 1
|
5月前
|
Java Linux 网络安全
学习Linux须知1.2之Linux命令的实战
学习Linux须知1.2之Linux命令的实战
48 0
|
10月前
|
域名解析 网络协议 Java
Linux网站服务实操练习
今天介绍一下Linux中的网站服务,并且根据具体的实操来联系如何创建网站服务以及客户端如何配置来访问服务器的网站服务,以静态网站为例来优先介绍。
155 0
|
域名解析 缓存 Kubernetes
DNS与服务器搭建-Linux每日一练(10)
DNS与服务器搭建-Linux每日一练(10)
DNS与服务器搭建-Linux每日一练(10)
|
Linux 开发工具 数据安全/隐私保护
手把手教你搭建Linux时间同步服务器
手把手教你搭建Linux时间同步服务器
460 0
手把手教你搭建Linux时间同步服务器