爱心技术专栏专题

email-CNGNUPostfix邮件系统系列指南之一0.52

摘录:linux 来源:linux 加入时间:2007年04月23日
摘要:
email-CNGNUPostfix邮件系统系列指南之一0.52

CNGNU Postfix邮件系统系列指南之一0.52
2006-03-08 15:18 pm
来自:Linux文档
现载:www.51dibs.com
linux

email-CNGNUPostfix邮件系统系列指南之一0.52

站点:爱心种子小博士 关键字: email-CNGNUPostfix邮

email-CNGNUPostfix邮件系统系列指南之一0.52
CNGNU Postfix邮件系统系列指南之一0.52

2006-03-08 15:18 pm
来自:Linux文档
现载:www.51dibs.com
linux

Postfix + Cyrus-IMAP + Cyrus-SASL + MySQL + IMP完全指南

CNGNU Postfix邮件系统系列指南之一

Postfix + Cyrus-IMAP + Cyrus-SASL + MySQL + IMP
完全指南


 

作者:王兴宇 <[email protected]>

版本:0.52

版权:GPL

发布日期:2003-12-02

 

目录

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服务器、Cyrus-IMAP做POP3/IMAP4服务器、通过Cyrus-SASL对存储在MySQL数据库中的用户进行验证和授权,并且使用IMP来提供一个完善的WEBMAIL界面。

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

  本文的最新版本可以在这里找到:。

  有关本文所涉及的技术问题,请到的mail版讨论,我会尽快回复的,请勿就技术问题给我发邮件。

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

1.2.  更新历史

  • 2002-05-21 第一次发布,版本0.20。
  • 2002-08-13 修正一些错误,版本0.21。
  • 2002-08-23 修正一些错误,版本0.22。
  • 2002-09-12 在RedHat Linux Advance Server V2.1上进行了测试,修正了一些错误,版本0.30。
  • 2002-12-12 修正了一些错误,添加了IMP部分的内容,版本0.31。
  • 2003-01-30 修正了一些错误,添加了非明文密码部分的内容,版本0.32。
  • 2003-02-05 修正了一些错误,版本0.33
  • 2003-03-26 使用了SASL V2和Cyrus-IMAP 2,支持使用db4的新的Linux发行版,如RedHat 8.0和Mandrake 9.0,并以RedHat 8.0为示范平台。修正了一些错误,版本0.40。
  • 2003-03-28 修正了一些错误,特别感谢bjchenxu,版本0.41。
  • 2003-09-24 添加了虚拟域功能,修正了一些笔误,版本0.50。
  • 2003-10-13 修正了虚拟域的错误,版本0.51。
  • 2003-12-02 修正了部分错误,版本0.52。如果没有其它的输入错误问题,本文将不再更新。

1.3.  TODO

  • 增加邮件列表功能
  • 增加SSL部分的内容
  • 翻译:希望有能力的朋友可以翻译这篇文章为英文,这样国外的朋友也可以看到

1.4.  鸣谢

  谢谢lesson.ward、Yunping Zhu、Temp、bjchenxu的指正。

 

  参考文档:。在这篇文章撰写之初,参考过该文章,目前该文章也在不断更新,大家也可以看看。

2.  系统功能

  系统逻辑结构:


+---------------------------------------------------+
|                                                   |
|  25/25    25/25     110/993  143/995    80/443    |
| Incoming Outgoing     POP3     IMAP    WEB-MAIL   |
|    /\       /\         /\       /\        /\      |
|    ||       ||         ||       ||        ||      |
|    \/       \/         \/       \/        \/      |
+-------------------+---------------+---------------+
|    Postfix        |               |      IMP      |
|                   |               +---------------+
|                   |      Cyrus-IMAP               |
|       +-----------+-------------------------------+
|       |                  Cyrus-SASL               |
|       +-------------------------------------------+
|       |                  saslauthd                |
|       +-------------------------------------------+
|       |                     PAM                   |
|       +-------------------------------------------+
|       |                  pam_mysql                |
+-------+-------------------------------------------+
|                      MySQL                        |
+---------------------------------------------------+

  整个系统对外的界面包括几个部分,用来发信的SMTP、用来收信的POP3和IMAP、以及一个WEB界面的邮件使用系统。这里没有提供WEB界面的管理工具,需要大家自行依据实际需要开发。

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

  认证流程比较繁琐。整个认证是通过Cyrus-SASL来做的,通过运行一个守护进程saslauthd来监听认证需求。saslauthd这里使用了pam认证方式通过pam_mysql插件对MySQL数据库进行查找。

  系统为了支持虚拟域,所有的用户验证都用用户的邮件全称作为用户名,其实际的邮箱由于Postfix的限制,使用将邮件地址中@换成~的邮箱名。

3.  系统基本前提

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

  这里以RedHat Linux V 8.0为说明平台。

  该说明平台除了基本的操作系统部分外,系统中还安装了如下的RPM:

  一、gcc:

    1.  gcc-3.2-7

    2.  gcc-c++-3.2-7

  二、db3:

    1.  db4-devel-4.0.14-14

    2.  db4-4.0.14-14

    3.  db4-utils-4.0.14-14

  三、pam:

    1.  pam-0.75-40

    2.  pam-devel-0.75-40

  四、mysql:

    1.  mysql-3.23.52-3

    2.  mysql-server-3.23.52-3

    3.  mysql-devel-3.23.52-3

  五、IMP相关:

    1. httpd-2.0.40-8

    2. httpd-devel-2.0.40-8

    2. gettext-0.11.4-3

    3. imap-devel-2001a-15

    4. krb5-libs-1.2.5-6

    5. krb5-devel-1.2.5-6

    6. openssl-0.9.6b-29

    7. openssl-devel-0.9.6b-29

  如果系统中没有,请自行安装RPM包或编译安装。除此之外,其他需要的部分将以源码方式编译。

4.  配置MySQL

4.1.  运行

  启动命令如下:

[root@mail root]# /etc/init.d/mysqld start 转载:转载请保留本信息,本文来自http://www.51dibs.com/lp07/la/a8/l_a_7a574683fe7afd20.html