设为首页 加入收藏 网站搜索 繁體中文 中国建站网 — 站长资源平台

Postfix + Courier-IMAP + Cyrus-SASL + MySQL + IMP完全指南(新版)

来源本站整理 作者:佚名 时间:2007-10-9 17:12:17 该文得分0

作者:王兴宇

版本:0.20

版权:GPL

发布日期:2004-01-29

目录

1. 概述

1.1. 目的

1.2. 更新历史

1.3. TODO

1.4. 鸣谢

2. 系统功能

3. 系统基本前提

4. 配置MySQL

4.1. 运行

4.2. 测试

4.3. 配置

5. 安装pam_mysql

5.1. 下载

5.2. 编译与安装

5.3. 配置

6. 安装Cyrus-SASL

6.1. 下载

6.2. 编译与安装

6.3. 配置

6.4. 运行

7. 安装Postfix

7.1. 下载

7.2. 编译与安装

7.3. 配置

7.4. 运行

7.5. 测试

8. 安装Cyrus-IMAP

8.1. 下载

8.2. 编译与安装

8.3. 配置

8.4. 运行

8.5. 测试

9. 安装IMP

9.1. 下载

9.2. 配置Apache/PHP

9.3. 配置Horde

9.4. 配置Imp

9.5. 配置Turba

9.6. 测试IMP

10. 其它

10.1. 启动脚本

10.2. 整体测试


1. 概述

1.1. 目的

本文试图介绍如何在一个Linux平台上安装一套功能完整的邮件系统。这里我们以Postfix做SMTP服务器、Courier-IMAP做POP3/IMAP4服务器、通过Cyrus-SASL对存储在MySQL数据库中的用户进行验证和授权,并且使用IMP来提供一个完善的WEBMAIL界面。

这个邮件系统的设计目标是提供一个可扩充的、具备大多数功能的邮件系统。

如果希望使用Cyrus-IMAP做为POP3/IMAP4服务器,可以参阅本文的姊妹篇:http://www.cngnu.org/technology/Postfix_I.html

本文的最新版本可以在这里找到:http://www.cngnu.org/technology/Postfix_II.html

有关本文所涉及的技术问题,请到http://www.anti-spam.org.cn/forums/的mail版讨论,我会尽快回复的,请勿就技术问题给我发邮件。

本文的版权遵循GPL,可以在不删除版权信息和注明修改的情况下任意传播。

1.2. 更新历史

1.3. TODO

1.4. 鸣谢

2. 系统功能

系统逻辑结构:

+--------------------------------------------------------------+|                                                              ||  25/25    25/25                110/993  143/995    80/443    || Incoming Outgoing                POP3     IMAP    WEB-MAIL   ||    /\       /\                    /\       /\        /\      ||    ||       ||                    ||       ||        ||      ||    \/       \/                    \/       \/        \/      |+---------------------------------+----------------+-----------+|                  Postfix        |                |    IMP    ||              +------------------+                +-----------+|              |    Cyrus-SASL    |        Courier-IMAP        |+----------+   +------------------+--------------+             || MailDrop |   |authdaemond.mysql |(authmysqlrc) |             |+----------+---+------------------+--------------+-------------+| MailDir/ |                   MySQL             |   MailDir/  |+----------+-------------------------------------+-------------+

整个系统对外的界面包括几个部分,用来发信的SMTP、用来收信的POP3和IMAP、以及一个WEB界面的邮件使用系统。这里没有提供WEB界面的管理工具,需要大家自行依据实际需要开发。如果需要商业应用,可以购买CEM产品(http://cngnu.net/products/cem/),其中包括了完善的管理界面和优化的邮件服务器环境。

MySQL作为系统中存储数据的核心,它存储了用户的信息。这个信息不但用于POP3/IMAP和SMTP AUTH的认证需要,而且也为Postfix提供了本地接收者列表、邮件转发功能和过滤功能开关。

认证分为两种类型,Postfix中的发信认证是通过SASL对MySQL进行查询进行的;Courier-IMAP的收信认证是通过Courier-IMAP的MySQL支持进行的。

用户的信件是存储在标准的(Qmail格式)MailDir/中的。Postfix接收到信件后通过MailDrop投递到用户的MailDir/中。Courier-IMAP通过认证后访问MailDir/来读取信件。

3. 系统基本前提

本文以Linux系统为目标平台,支持多数的Linux平台如RedHat 7.x/8.x/9.x/AS2.1/AS3、Mandrake 8.x/9.x等,理论上也会支持其他的Linux发行版,甚至其他的UNIX系统。

这里以RedHat Linux Advance Server Enterprise V 3.0 (以下简称AS3)为说明平台。我采用了最基本的AS3安装,只选择了“Web Server”、“Dns Name Server”、“MySQL Database Server”、“Development Tools”和“Kernel Development”等软件包组(“Core”和“Base”组是默认必选的软件包)。

  除此外,还需要额外安装以下RPM:

  1、php-mysql-4.3.2-8.ent.i386.rpm(在CD3)

4. 安装MySQL

4.1. 下载

  AS3默认是只包含MySQL除了服务器程序外的部分的,所以需要从RPMFIND下载MySQL的源RPM重建(最好使用源码包,采用MySQL.com提供的RPM和BIN包都可能在其它使用mysql的部分编译时候出现错误)。

[root@mail root]# cd /usr/src

[root@mail src]# wget ftp://rpmfind.net/linux/redhat/enterprise/3/en/os/i386/SRPMS/mysql-3.23.58-1.src.rpm

4.2. 编译与安装

[root@mail src]# rpmbuild -bb mysql-3.23.58-1.src.rpm

[root@mail src]# cd redhat/RPMS/i386

[root@mail i386]# rpm -ivh mysql-server-3.23.58-1.i386.rpm

  为提高MySQL的安全性,使之只监听在本地打环端口,修改/etc/my.cnf:

[root@mail i386]# cd

[root@mail root]# vi /etc/my.cnf

  在[mysqld]小节里面添加:

bind-address=127.0.0.1

  并设置其开机时候自动运行:

[root@mail root]# chkconfig --level 0123456 mysqld on

4.3. 运行

启动命令如下:

[root@mail i386]# /etc/init.d/mysqld start

4.4. 测试

启动MySQL后,首先检查日志/var/log/messages有无错误信息,然后检查进程,应该有如下进程存在:

[root@mail root]# pstree | grep mysqld

|-safe_mysqld---mysqld

接着检查端口,应该有如下端口打开:

[root@mail root]# netstat -an | grep LISTEN

tcp00 127.0.0.1:33060.0.0.0:*LISTEN

4.5. 建立数据库

MySQL安装配置好以后,创建如下SQL脚本mail.sql:

CREATE DATABASE mail;

GRANT ALL ON mail.* TO mail@localhost

IDENTIFIED BY "secret";

FLUSH PRIVILEGES;

USE mail;

CREATE TABLE USER (
ID int(10) unsigned NOT NULL auto_increment,
USERNAME varchar(128) NOT NULL default '',
PASSWORD varchar(40) NOT NULL default '',
CLEAR_PASSWORD varchar(40) NOT NULL default '',
FORWARD varchar(128) NOT NULL default '',
DOMAIN varchar(64) NOT NULL default '',
HOMEDIR varchar(128) NOT NULL default '',
MAILDIR varchar(128) NOT NULL default '',
MAIL varchar(64) NOT NULL default '',
GID int(11) NOT NULL default 450,
UID int(11) NOT NULL default 450,
FILTER varchar(64) NOT NULL default 'OK',
QUOTA int(11) NOT NULL default '10485760',
STATUS tinyint(4) NOT NULL default '1',
PRIMARY KEY (ID),
UNIQUE KEY USERNAME (USERNAME),
UNIQUE KEY MAIL (MAIL)
) TYPE=MyISAM;

INSERT INTO USER (USERNAME,PASSWORD,CLEAR_PASSWORD,
FORWARD,DOMAIN,HOMEDIR,MAILDIR,MAIL)

VALUES ('trueuser','$1$pi.WVgBx$a3dUCzBnbY76jnZlqWQCQ/','testpw',

'trueuser','cngnu.org','/data/mail/trueuser','/data/mail/trueuser/Maildir',

'trueuser@cngnu.org'),
('virtualuser@cngnu.org','$1$pi.WVgBx$a3dUCzBnbY76jnZlqWQCQ/','testpw',

'virtualuser@cngnu.org','cngnu.org','/data/mail/cngnu.org/virtualuser',
'/data/mail/cngnu.org/virtualuser/Maildir','virtualuser@cngnu.org');

[1] [2] [3] [4] [5] [6]  下一页

相关文章
广告赞助
网友评论

共有 0 位网友发表了评论,平均得分: 0 查看完整内容

用户名:

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

(注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码