深入了解 分布式的Qmail邮件系统

深入了解 分布式的Qmail邮件系统

作者:佚名 2011-02-21 14:31:04

运维

系统运维

分布式 Qmail是一个因特网邮件传送代理(简写为MTA),它运行在linux/Unix兼容系统下,是一个直接代替UNIX下Sendmail软件的邮件传送程序。qmail使用SMTP协议与其它系统上的MTA交换邮件。本文我将给大家讲下分布式的Qmail邮件系统。

分布式的Qmail邮件系统大家估计不熟悉,本文就给大家讲下他的安装与配置。

  一. 设计目的

  适应多用户、大容量的邮件系统,易扩展,提供mail服务冗余特性。

  二. 配置环境

  我的测试环境采用了三台PC Server,均采用RedHat 6.2,openldap2.0.7和qmail-1.03 以及qmail-ldap,分别运行smtp/pop3服务,具体

  配置如下。

  192.168.0.19 omni1.i100.com.cn 主smtp/pop3 server,dns MX记录,邮件存储主机,qmqp server

  192.168.0.5 cocoon.i100.com.cn LDAP server,邮件存储主机

  192.168.0.2 gw2.i100.com.cn 邮件存储主机,qmqp server,同时是次smtp/pop3 server

  在192.168.0.19的/data/vuser/目录下,存储johnny的邮件。

  在192.168.0.5的/data/vuser/目录下,存储jacky的邮件。

  在192.168.0.2的/var/qmail/vuser/目录下,存储denny的邮件。

  以上配置在实践中,可以配置成邮件存储和ldap以及smtp server分别位于不同机器。

  三. 软件

  openldap-2.0.7.tgz

  qmail-1.03.tar.gz

  qmail-ldap-1.03-20010301.patch

  ucspi-tcp-0.84.tar.gz

  编译qmail的时候,记得把对cluster的支持编译进去。Edit the Makefile to reflect your setup. You can change the following

  values: QLDAP-CLUSTER

  Compiles the clustering code in. Note: this doesn’t mean clustering is on, it just means you _can_ turn on clustering. 缺

  省qmail是支持cluster结构的。

  四. LDAP和qmail的安装

  关于LDAP和qmail的安装,在这里,我给出我的LDAP的ldif文件:

  dn: dc=i100, dc=com, dc=cn

  objectclass: top

  objectclass: orgnization

  dn: cn=Manager, dc=i100, dc=com, dc=cn

  uid: Manager

  objectclass: qmailUser

  mail: [email protected]

  dn: cn=johnny, dc=i100, dc=com, dc=cn

  cn: johnny

  sn: johnny

  objectclass: top

  objectclass: person

  objectclass: inetOrgPerson

  objectclass: qmailUser

  mail: [email protected]

  mailhost: omni1.i100.com.cn

  mailalternateaddress: [email protected]

  mailmessagestore: /data/vuser/johnny/

  mailquota: 51200

  uid: johnny

  userpassword: hSAMdaZcsdAOI

  dn: cn=jacky, dc=i100, dc=com, dc=cn

  cn: jacky

  sn: jacky

  objectclass: top

  objectclass: person

  objectclass: inetOrgPerson

  objectclass: qmailUser

  mail: [email protected]

  mailhost: cocoon.i100.com.cn

  mailalternateaddress: [email protected]

  mailmessagestore: /data/vuser/jacky/

  mailquota: 51200

  uid: jacky

  userpassword: hSAMdaZcsdAOI

  dn: cn=denny, dc=i100, dc=com, dc=cn

  cn: denny

  sn: denny

  objectclass: top

  objectclass: person

  objectclass: inetOrgPerson

  objectclass: qmailUser

  mail: [email protected]

  mailhost: gw2.i100.com.cn

  mailalternateaddress: [email protected]

  mailmessagestore: /var/qmail/vuser/denny/

  mailquota: 51200

  uid: denny

  userpassword: hSAMdaZcsdAOI

  以上大家可以看到,我把三个用户的邮件分别存到了不同的机器上。如果用户多,可以把a-n和o-z开头的用户分别存储到不同的机器上。

#p#

  五. 基本系统配置

  在三台机器上分别install qmail with qmail-ldap patch.

  需要特别配置的是/var/qmail/control下的相关文件。

  ldapuid ldapgid 这是可以读写用户邮件目录的系统用户的uid和gid,在不同的机器上,会有不同的配置;确保此用户有读写用户邮件目

  录的权限。

  ldapserver 此文件指定LDAP服务器的ip地址;如果您想ldap有冗余作用,在主LDAP server down了的时候,启用次LDAP server,可以在

  该文件中指定。

  如:ldap1.i100.com.cn:389 ldap2.i100.com.cn:389 🙂

  ldapserver 此文件内容是0或者1,表示是否启动qmail cluster模式。我们当然要启动了。

  echo 1 > /var/qmail/control/ldapserver

  六. Qmail Cluster工作原理

  在允许cluster的邮件环境中,每台主机都可以处理该cluster声明的域的邮件;当一个mail到达主smtp server的时候,Qmail查询LDAP

  server中有关该用户的mailhost属性,如果mailhost属性指定的不是此server的/var/qmail/control/me中定义的的主机,此邮件被通过qmqp协

  议转发到mailhost定义的主机上。

  注:所有主机名必须是合法的dns主机名。

  七. 详细配置

  在每台运行qmail的系统上运行qmail-qmqpd进程,才可实现邮件转发。需要设置tcp.qmqp

  文件,此文件中定义可信任的mailhost.

  如: 192.168.0.:allow

  :deny

  然后用tcprules生成tcp.qmqp.cdb文件。

  运行 /usr/local/bin/tcpserver -v -x /var/qmail/control/tcp.qmqp.cdb

  -u 502 -g 501 0 628 /var/qmail/bin/qmail-qmqpd 2>&1 | /var/qmail/bin/splogger qmqpd &

  启动qmail-qmqpd进程,监听在628 port。

  在客户端,使用oe将pop3 server设置为主smtp/pop3 server地址(这里是192.168.0.19),就可以收到存储在192.168.0.5和192.168.0.2

  上用户的邮件。 🙂

  八. 有关qmail-qmqpd server

  以上实现了邮件的分布式存储,但是随着用户的增加,主smtp/pop3 server会成为整个系统的瓶颈;而且一旦主smtp/pop3 server down机

  ,整个系统将不再有效。

  解决办法是增加qmqpd server。

  现在主smtp/pop3 server是192.168.0.19,我测试环境是把192.168.0.2同时也作为qmqpd server;由此,一旦192.168.0.19 down机,

  192.168.0.2仍然可以继续提供smtp/pop3服务。

  我简单的采用手工down掉192.168.0.19,而把pop3和smtp server设置成192.168.0.2的方式,以证实此方法的可行性;并且192.168.0.2并

  不是此域声明的MX记录。

  以上需要在两台qmqpd server的/var/qmail/control目录中,增加qmqpservers文件,在其中每行写入一台qmqpd server的ip地址。 🙂

  九. 其他

  如果需要webmail功能,可以和sqwebmail进行整合。此方案不提供对pop3存储的冗余措施,如果可能,可以采用Raid、NFS或者SAN的解决方案。

通过文章的描述,读者都知道了分布式Qmail的相关安装和配置,希望对大家有所帮助!

【编辑推荐】

  • 如何在Qmail里配置SMTP
  • Qmail邮件系统日志和管理
  • 深入了解 Qmail的工作原理和配置文件
  • Qmail简单介绍
  • Qmail防垃圾邮件处理
  • Mysql安装与qmail实际操作概述
  • Linux系统Qmail邮件服务器安装过程解析

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/292878.html<

(0)
管理的头像管理
上一篇2025-05-20 08:47
下一篇 2025-05-20 08:49

相关推荐

  • 骨干网络体系结构能干什么?骨干网络体系结构的作用

    骨干网络体系结构是现代信息社会的“超级高速公路网”,它通过分层设计、冗余备份和智能调度,确保海量数据在全球范围内高速、稳定、安全地传输,是支撑云计算、物联网及人工智能应用的底层基石,想象一下,如果你把互联网比作一个巨大的城市交通系统,那么骨干网络就是连接各个城市的主干道和立交桥,没有它,你的每一次微信发送、每一……

    2026-06-18
    0
  • 高io数据库可以干什么用?高io数据库适合什么场景

    高IO数据库的核心价值在于通过极高的读写吞吐量,解决海量数据场景下的性能瓶颈,是支撑高并发交易、实时分析及大规模内容分发的关键基础设施,在数字化转型的深水区,数据不再仅仅是静态的记录,而是流动的资产,传统的机械硬盘或普通SSD早已无法满足现代应用对速度的极致追求,高IO(Input/Output)数据库,就是那……

    2026-06-18
    0
  • 高io服务器性能如何?高io服务器适合什么场景

    高IO服务器并非单纯指代某种硬件,而是指在随机读写、高并发连接及小文件处理场景下,具备极致IOPS(每秒输入输出操作次数)和低延迟特性的计算资源,它是支撑现代高并发应用稳定运行的核心基石,在2026年的数字化浪潮中,业务负载早已从简单的静态页面展示演变为复杂的实时数据处理,许多开发者在排查系统瓶颈时,往往忽略了……

    2026-06-18
    0
  • 隔离网络空间哪里便宜?国内隔离网络空间价格

    隔离网络空间并没有统一的“便宜”标准,其成本高度取决于物理隔离等级、带宽需求及安全合规要求,通常物理网闸方案初期投入较高但长期运维成本低,而逻辑隔离方案虽初期便宜但存在潜在安全风险,建议根据业务敏感度选择混合隔离架构以平衡成本与安全,在数字化时代,企业构建独立网络环境的需求日益增长,但“隔离网络空间哪里便宜”这……

    2026-06-18
    0
  • 骨干网络体系结构设备为何故障?常见原因有哪些

    骨干网络体系结构设备故障的核心原因通常归结为硬件老化、配置错误、物理链路中断及外部攻击四大类,其中电源模块失效与光模块性能衰减是占比最高的隐性故障源,骨干网作为数字经济的“大动脉”,其稳定性直接关乎国计民生,当核心路由器或交换机出现丢包、震荡甚至宕机时,运维人员往往面临巨大的压力,很多人第一反应是检查软件配置……

    2026-06-18
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注