教你自己搭建linux邮箱服务器
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt290
现在网络中流行的电子邮件系统主要有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,等都是采用其作为其邮件平台的核心。
安装准备
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系统从头到尾都是一个开源系统,您可以在详细了解系统源代码后自己写这一部分的代码,从而让邮件系统更加个性化和专业化。
教你自己搭建linux邮箱服务器的更多相关文章
- 前端搭建Linux云服务器,Nginx配置详解及部署自己项目到服务器上
目录 搭建Linux云服务器 购买与基本配置 链接linux服务器 目录结构 基本命令 软件安装 Linux 系统启动 启动过程 运行级别 Nginx详解 1.安装 方式一:yum安装 方式二:自定义 ...
- Postfix+dovecot搭建简单邮箱服务器
实验环境: (1)修改主机名:hostnamectl set-hostname mail.meilintong.com 退出,重新登陆 (2)关闭selinux (3)关闭防火墙 1.安装postfi ...
- 搭建Linux虚拟服务器
1.搭建Linux虚拟机环境安装VMware Workstation 14下载地址:https://www.cr173.com/soft/68480.html密钥:FF31K-AHZD1-H8ETZ- ...
- 教你如何架设linux邮件服务器postfix
检查linux是否有安装postfix和dovecot 检查命令如下: Rpm -qa |grep postfix; Rpm –qa |grep dovecot; 如果没有显示任何数据,表明没有安 ...
- 用Apache James 3.3.0 搭建个人邮箱服务器
准备域名 比如域名为example.net,则邮箱格式为test@example.net.在自己的域名管理界面,添加一条A记录(mail.example.net xxx.xxx.xxx.xxx),指 ...
- CentOS 7搭建Linux GPU服务器
1. CUDA Toolkit的安装 到https://developer.nvidia.com/cuda-gpus查询GPU支持的CUDA版本: 到https://developer.nvidia. ...
- 搭建linux远程服务器和传输下载文件
其实,将ubuntu系统设置为服务器很简单,只需要开启ssh服务就可以了.开启了ssh服务以后,其它电脑就可以通过ssh登录你的这台ubuntu服务器.SSH分客户端openssh-client和op ...
- CentOS7下搭建postfix邮箱服务器并实现extmail的web访问
http://blog.51cto.com/zero01/2064693 https://blog.csdn.net/a5nan/article/details/52510887
- windows server2012搭建邮箱服务器+客户端界面(hmailserver+afterlogic)+批量创建邮箱
1.简介 由于需要较多邮箱,如果去注册需要很多的手机号码去验证,一个人不可能买一堆的手机号,所以自己搭建一个邮箱服务器可以大批量的创建自己的邮箱账号和收发邮件. 2.安装部署hmailserver 下 ...
随机推荐
- 如何模拟click事件,打开一个a标签链接?
在项目开发过程中,我们经常会碰到通过接口返回一个地址,同时在新的tab页面打开一个网址的情况,最直观的想法就是通过window.open(url)的方式,打开一个新的页面,但是大部分浏览器会遭遇拦截. ...
- git分支管理之Feature分支
软件开发中,总有无穷无尽的新的功能要不断添加进来. 添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合 ...
- gitlab+jenkins持续集成(一)
1. 环境:CentOS7.0,jdk-8u91-linux-x64.rpm,jenkins 2.7.4 ,gitlab 9.2.2 2. 安装jdk,jenkins (rpm -ivh ...
- zzuli--2134: 维克兹的进制转换(规律)
2134: 维克兹的进制转换 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 287 Solved: 63SubmitStatusWeb Board D ...
- 邻接表(C++)
adj_list_network_edge.h // 邻接表网边数据类模板 template <class WeightType> class AdjListNetworkEdge { p ...
- Struts2框架入门
1.1 Struts2概述: 是一个遵循WEB层规范的MVC设实现,该框架基本上借鉴了WebWork框架的体系结构,只吸收了少部分Struts1的优点.是目前JAVA EE项目中WEB层事实上的工业标 ...
- [算法题] Reverse Linked List
题目内容 题目来源:LeetCode Reverse a singly linked list. 题目思路 这个属于经典问题,链表反转的思路基本上已经非常固定了.有两种非常常见的方法:1.三指针法 2 ...
- Json 查看Json的插件
# 写写写写写,每个人有每个人写东西的方式,这些都是好的方式.需要感谢的人有几个,对我的成长有启发,所以我也会把能够想到.接触到的东西告诉team里面的人.新人,然后这些人又可以把这些东西传递给下一波 ...
- HTML indexedDB数据库—简单示例
indexedDB数据库的基本概念:在HTML5中,新增一种被称为"indexedDB"的数据库,该数据库是一种存储在客户端本地的NoSQL数据库. <!DOCTYPE ht ...
- HTML5 — Wed Storage简单示例
一.Wed Storage 概述 Wed Storage功能:在Wed上储存数据的功能,这里的储存是针对客户端本地而言的. 具体分为两种: sessionStorage,将数据保存在session对象 ...