[精]搭建postfix+dovecot+ courier-authlib+sasl2+mysql邮件系统

2026/1/27 7:50:11

(精)搭建postfix+dovecot+ courier-authlib+sasl2+mysql邮件系统

(精)搭建postfix+dovecot+ courier-authlib+sasl2+mysql邮件系统

一、系统逻辑结构:xvxc

整个系统主要包括,用来发信的SMTP, 用来收信的POP3和IMAP, 其中Postfix在

整个系统中充当MTA的作用,而Dovecot则充当MDA的功能,它提供对外取信的接口,其中用户可以使用如下三种协议来取信:

? POP3 -- 110/993 ? IMAP -- 143/995 ? WEB-MAIL – 80/443

MySQL在系统中主要起的作用是存储邮件的虚拟域及磁盘配额等信息,而Extman则为管理员提供一个管理邮件的web界面,而Extmail则为普通用户提供相应的邮件操作功能。 Cyrus-SASL函数库主要是为SMTP发信进行验证,而它要操作数据库,则需要依赖于Courier-authlib来操作数据库,进而实现相应的验证操作。 接下来我们来看几种常见的操作的过程:

(1) 外部邮箱发邮件到本域。当外地邮件服务器发送邮件到本域时,如果满足要求则被本系统的postfix 软件接收处理,如果本系统加了邮件过滤什么的,它会阻止不满足要求的邮件,如果满足则postfix会自己去查询mysql,进而得到用户的收件箱,再将邮件存放到相应用户的邮件箱中[postfix会通过tcp/ip方式去查询mysql数据库]。

(2) 通过本域发送邮件。当用户想要通过本域来发送邮件时,需要先提供用户名和密码 到postfix, 接下来postfix会将用户名和密码通过Cyrus-SASL函数库来进行验证,由于 我们的验证信息存放在mysql中,所以Cyrus-SASL需要借助于Courier-authlib连接到 数据库,进而取得相应信息,如果验证失败,则拒绝发信,如果成功,则通过Postfix 的SMTP将信件发送到本域或其它邮件服务器中。

1

(精)搭建postfix+dovecot+ courier-authlib+sasl2+mysql邮件系统

(3) 读取本域邮件。当用户想要从本域中读取自己的邮件时,它会通过网络(其前端操作 界面可以是Extmail等,也可自己开发) 发出请求到Dovecot, 接下来Dovecot会通过 查询mysql来验证用户的身份,如果验证通过,将会使用查询得到的用户邮箱地址, 进而进行收信操作。

二、具体安装过程。

1. (1)安装操作系统(我选的是CentOS-6)。安装时选择“Web Server”、“Dns Name Server”、“MySQL Database Server”、“Development Tools”和“Kernel Development”等 软件包组(“Core”和“Base”组是默认必选的软件包)。安装完成后一般需要装上如下 rpm包 (自己从操作系统光盘的Packages目录下查找): ? [root@Mail ~]# rpm -qa | grep postgresql ? postgresql-libs-8.1.22-1.el5_5.1 ? postgresql-devel-8.1.22-1.el5_5.1 ? postgresql-8.1.22-1.el5_5.1

? pexpect-2.3-3.el5 ? expect-5.43.0-5.1

? rpm -ivh libtool-ltdl-devel-1.5.22-6.1.i386.rpm

? rpm -ivh mysql-devel-5.0.45-7.el5.i386.rpm ? rpm -ivh openldap-servers-2.3.43-3.el5.i386.rpm ? rpm -ivh openldap-servers-sql-2.3.43-3.el5.i386.rpm

? rpm -ivh pcre-6.6-2.el5_1.7.i386.rpm

? rpm -ivh pcre-devel-6.6-2.el5_1.7.i386.rpm

(2) 关闭SEliux。

修改/etc/selinux/config文件中的SELINUX=\为 disabled ,然后重启,如果不想重 启系统,使用命令setenforce 0。注:setenforce 1 设置SELinux 成为enforcing模式 setenforce 0 设置SELinux 成为permissive模式。

在lilo或者grub的启动参数中增加:selinux=0,也可以关闭selinux 查看selinux状态:

[root@Mail postfix]# /usr/sbin/sestatus -v SELinux status: disabled 或者

setsebool httpd_disable_trans=1 setsebool mysqld_disable_trans=1

最好全关闭Selinux 并且重启机器

================================================== 2. 安装MySQL数据库。 (可以通过在安装系统时选择安装MySQL组件,或者用源码编译,也可以用rpm方式来进行安装)。

2

(精)搭建postfix+dovecot+ courier-authlib+sasl2+mysql邮件系统

同时需要安装的组件还有:

[root@mail ~]# rpm -qa | grep mysql

? dovecot-mysql-2.0-0.10.beta6.20100630.el6.i686 ? mysql-server-5.1.47-4.el6.i686 ? mysql-devel-5.1.47-4.el6.i686 ? mysql-libs-5.1.47-4.el6.i686 ? mysql-5.1.47-4.el6.i686

? mysql-connector-odbc-5.1.5r1144-7.el6.i686 ? php-mysql-5.3.2-6.el6.i686

其中dovecot-mysql- 是我们稍候要安装的dovecot软件连接mysql数据库的必备 库,而mysql-server、mysql-devel、mysql-libs则是进行mysql相关开发的类库,而php-mysql则是php来连接mysql的必备库。 安装完成后必须搞清楚两个问题:

◆数据库库文件路径, 及众多的so文件, 一般在/usr/lib/mysql, 众多的头文件在/usr/include/mysql 中。

◆数据库运行时的数据目录,及众多的数据文件所在的目录。 /var/lib/mysql 安装完成后,要尝试着测试一下数据是否成功运行。

================================================== 3. 安装或配置postfix所需要的DNS服务器.

Postfix 寄信和收信必须依赖于DNS的正解和反解功能,postfix的smtp MDA必须要能够取得MX与A记录(由DNS解析服务器的正解操作得到),才决定收信主机的名称与ip地址,也就是说postfix至少要进行两次dns查询,第一次是为了取得MX主机名称,另一次是取得该主机名称对应的IP地址。由于postfix使用操作系统的resolver来访问DNS 服务器,因此运行postfix系统至少要能够访问一台DNS server, 且这台server能够解析你所在的域。

一般而言,我们可以通过修改/etc/hosts来修改主机名称,改后可用hostname来查本邮件服务器的主机名,其格式如下:

127.0.0.1 mail.yt.cmm localhost 192.168.137.30 mail.yt.cmm mail

然后我们可以通过修改/etc/resolver文件来修改dns服务器,可以修改为如下 nameserver 192.168.137.30 nameserver 61.139.2.69

我们可以使用三个命令行工具来查看我们的DNS配置是否有问题,分别是nslookup、dig以及host , 个人认为nslookup最好用,因为我们只需要在其中输入主机名,就可得到ip地址,输入IP地址就可得到对应的主机名。如: #nslookup

3

(精)搭建postfix+dovecot+ courier-authlib+sasl2+mysql邮件系统

>mail.yt.cmm 192.168.137.30 >192.168.137.30 www.yt.cmm mail.yt.cmm >exit

如果我们的网络结构中已经有DNS服务器了,我们可以在上面注册我们的邮件主机,如果我们的域中还没有DNS服务器,我们就可以按下面的方式来创建DNS服务器 : (1) 安装dns服务器rpm包,可从系统光盘中获取. ? bind-chroot-9.7.0-5.P2.el6.i686 ? bind-9.7.0-5.P2.el6.i686 ? rpcbind-0.2.0-8.el6.i686 ? bind-utils-9.7.0-5.P2.el6.i686 ? bind-libs-9.7.0-5.P2.el6.i68

(2) 修改bind的配置文件,加入对我们邮件主机的支持(正解和反解)。

[root@mail ~]# cat /etc/named.conf // // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { any; }; listen-on-v6 port 53 { ::1; }; directory \ dump-file \ statistics-file \ memstatistics-file \ allow-query { any; }; recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file \}; 4


[精]搭建postfix+dovecot+ courier-authlib+sasl.doc 将本文的Word文档下载到电脑
搜索更多关于: [精]搭建postfix+dovecot+ courier- 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219