Linux下基于web的邮件服务IMP的简介与安装

上传人:ji****72 文档编号:37520741 上传时间:2018-04-17 格式:DOC 页数:6 大小:31.50KB
返回 下载 相关 举报
Linux下基于web的邮件服务IMP的简介与安装_第1页
第1页 / 共6页
Linux下基于web的邮件服务IMP的简介与安装_第2页
第2页 / 共6页
Linux下基于web的邮件服务IMP的简介与安装_第3页
第3页 / 共6页
Linux下基于web的邮件服务IMP的简介与安装_第4页
第4页 / 共6页
Linux下基于web的邮件服务IMP的简介与安装_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《Linux下基于web的邮件服务IMP的简介与安装》由会员分享,可在线阅读,更多相关《Linux下基于web的邮件服务IMP的简介与安装(6页珍藏版)》请在金锄头文库上搜索。

1、Linux 下基于下基于 web 的邮件服务的邮件服务 IMP 的简介与安装的简介与安装 1. 介绍 很感谢几个新的 web mail 产品(比如像 IMP),使得 web 设计者可以通过这些产品来在他们 的网站上提供基于 web 的邮件服务尽管采用采用这些产品来实现 web 方式邮件服务的解 决方案已经越来越流行,但是邮件服务可扩展性这个问题已经被提出来很多 web mail 系 统(包括免费的)都是设计在单个 mail 和 web 服务器上,所有的限制都取决于一台服务器上 面在这种情况下再扩展几千个用户是简单但不容易实现,这就是我为什么开始设计一个 在实际应用中可以无限扩展而且实现简单的系

2、统 1.1 背景 基于 Web 的电子邮件系统就像野花一样迷人,以至于像 hotmail 和 bigfoot 这样的站点变得 如此流行,其他的站点看来也是把提供基于 web 的邮件服务添加到了他们的服务项目表 中事实上,很多像 EmuMail 和 IMP 这样地产品已经被开发出来以帮助人们向他们的客 户提供这项服务不管怎么样,基于这些产品之上的站点变得流行起来,同时也在加重了 网络和机器的资源负担如果没有一个可定制的解决方案,就像 Hotmail 一样,很多使用 了 off-the-shelf(我想可能是没有自己开发或者定制性差那种意思,就靠各位去理解了) webmail 系统的站点已经开始感

3、到发展期的困难了正以为如此,找到一个能够相对简单 地实现而且可以扩展到数千甚至是数百万用户的解决方案的需求变的越来越紧迫 我是 DigitalNation 的一名开发人员,现在在为 Worldcities 工程工作. Worldcities 不仅提供 世界各地的本地新闻和信息,而且还提供基于 web 的邮件服务因为很多非美国的 ISP 没 有给他们的客户提供电子邮件服务,Webmail 在美国以外的地区是很流行的正因为 Worldcities 不是以美国为中心,所以我们很快意识到邮件服务的可扩展性是很必要的 我们以前的邮件服务系统是采用两种服务器,一种是运行 Sendmail 和 UW IMA

4、P,另外一种 是运行 IMP, 它是一个使用 PHP 编写的开放代码的 webmail 系统(应该说是最好的,我认 为)这种邮件服务系统很容易实现而且工作得很好但是,经过两三个月后,发现我们的 邮件系统明显负载过重,所以我们必须要很快找到一个新的解决方案而且我们有很多正 在使用本系统的用户,新的方案不能够遗失他们已经存在的电子邮件 以前我们选择 IMP 是因为它是免费的(比如说我可以在它的基础上进行一些必要的修改), 选择 Sendmail 和 UW IMAP 是因为它们是标准的工具很明显,Sendmail 和 UW IMAP 对 我们的用户来说是太慢了,因此我开始研究其他的 MATs 和 I

5、MAP 服务器软件 我最后决定采用 postfix 作为 MTA, 因为它至少比 Sendmail 要快三倍, 采用 cyrus 是因为它 既不需要主机的系统帐号也不需要像 UW IMAP 那样消耗很多系统资源我们保留了 IMP,因为它不单是免费的,而且很容易配置我们也不想用户受制于新的界面. 在研究的 过程中我发现 postfix 能够使用 LDAP 目录服务来作为它的别名数据库(使用 maildrop 和 mailacceptinggeneralid 属性),而且有一个补丁程序可以让 Cyrus 使用 LDAP 来进行用户认 证配合 DNS 循环解析(译者注:DNS 循环解析是为同一个名字

6、分配多个 IP 地址,它在 Yahoo 等相当大的站点应用,实际效果相当不错),把 web 请求和发送进来的邮件分散给不 同的服务器进行处理,这样做就是一个具备了高可扩展性的解决方案剩下的问题是怎么 把这些功能集成在一起来 这个方案的可扩展性主要是 postfix 能够根据 LDAP 中对应用户目录项的 maildrop 属性值来 把邮件转发到其他的用户信箱或者别的邮件服务器上我们要做的只是赋给属性 maildrop 一个完整有效的邮件地址作为它的属性值例如,如果 DNS 的 MX 记录指定了一组邮件 服务器并且从 LDAP 中检索的结果是把发送给 userdom.ain 的邮件转到 user

7、machine44.dom.ain,postfix 就会把发送给该用户的邮件转发到 machine44 这台邮件服 务器上有了这个功能,你就可以在你的域内设置无限个邮件帐号 我想最棘手的就是通过 IMP 从后台邮件服务器中读取邮件既然 IMP 已经支持把 web 服 务器和 mail 服务器分开,现在要做的就是用从 LDAP 中检索邮件服务器名来取代在配置文 件中指定邮件服务器的方式,在配置文件中只能够指定在一台邮件服务器上收发邮件这 样就使得设置邮件服务器变得很简单,只需要在一个文件中添加几行代码和在 IMP 的默认 配置文件中添加一个新的配置参数就行了现在我们可以使用 postfix 来转

8、发邮件、通过 IMP 从多个邮件服务器中检索邮件 但是,UW IMAP 依然是个问题有下面几个理由:1、使用平面文件格式2、对大量的 邮件信息不具有可扩展性3、需要使用主机系统的认证方式和系统帐号,用户每次登录都 要读取一次/etc/passwd 文件4、比我们所期望的速度要慢所以我们决定采用 Cyrus, 一 个没有上面那些限制的 imap 服务器更值得可喜的是,有了 Clayton Donely 的 LDAP patch for Cyrus,我们就可以利用 postfix 所使用的 LDAP 目录服务来进行用户认证这样 就使得我们的整个 mail 系统除了可扩展性好外,还有轻便性,因为不需

9、要做多份 password 的拷贝毕竟这也是 LDAP 的设计目的之一 最后,我们需要的是一个采用 DNS 循环解析的 web/mail 系统结构在 LDAP 目录服务的 基础上进行邮件的转发和从相应的后台邮件服务器上检索邮件,同时也利用 LDAP 目录服 务进行用户认证 由于 LDAP 的可复制性,在这个系统结构中,我们就可以利用多台 LDAP 来进行互相备份(假设这些服务器间都是高速连接的),如果系统结构中一台或者某几 台 LDAP 服务器 down 掉后,其他的 LDAP 服务器能够及时提供后备服务,不影响整个 mail 系统的正常运行 1.2 假设 这份文档中提到了三种服务器:web

10、服务器、imap 服务器和 LDAP 服务器这些服务可以 安装在不同的机器上(比如,23 台 web 服务器,5 台 LDAP 服务器,10 台 imap 服务器), 或者是单台机器上假设你了解在 Unix 或者 Linux 环境下进行源代码软件安装的知识 1.3 需要用到的软件 下面是在这份文档中要用到的软件列表 Apache 1.3.6 PHP 3.0.12 (需要把 IMAP 和 LDAP 编译进去) OpenLDAP 1.2 Cyrus 1.5.19 (注意: 不要用 1.6 版本) postfix 19990627 pwcheck_ldap patch for cyrus 1.5 I

11、MP (2.0.4, 2.0.10, 2.1.3-dev 也测试过) UW IMAP (提供 c-client 库) 注意: cyrys 1.6 使用了一种新的认证方式,名为 SASLpwcheck_ldap 这个补丁没有针对这 种认证方式进行开发有人说一个针对 SASL 的 LDAP 补丁程序已经在开发了,但那个补 丁什么时候能够应用,现在讨论这个问题是没有意义的 1.4 特别注意 这份文档中提出的解决方案中有一点还没有能够做到高可扩展性,那就是 SQL serverIMP 使用 SQL server 来保存 session 数据、邮箱配置和地址簿IMP 的作者现在在 设计一种让 SQL S

12、erver 也能够做到容易扩展的方法 2. 软件安装 2.1 Web 服务 在 web 服务器上,你需要安装 Apache, PHP, postfix, OpenLDAP, UW IMAP, 和 IMP. 安装 Apache 和 PHP 是很快的,安装的具体步骤在 PHP 的安装文档中有说明你必须把 LDAP 和 IMAP 的支持模块编译到 PHP 中 按照 postfix 附带的文档来安装 postfix,特别是 LDAP_README 这个说明文件 2.2 LDAP 服务 在 LDAP 服务器上,你需要安装 OpenLDAP,而且需要确定一个 root dn(比如: cn=root,dc=

13、rayesmail,dc=com)并且把它添加到 LDAP 的目录中(译者注:在 slapd.conf 中 指定) 2.3 IMAP 服务 在 IMAP 服务器上,你需要安装 LDAP, postfix, Cyrus, 和专为 cyrus 开发的 pwcheck_ldap 补丁程序. 按照 postfix 的文档安装支持 LDAP 的 postfix. 按照 Cyrus 的文档来安装 Cyrus 和按照 pwcheck_ldap 的文档来添加 pwdcheck_ldap.c不要忘记了要更改 pwcheck_ldap.c 文 件中的设置使得与你的 LDAP 目录服务器主机和 base dn(译者

14、注:目录的一部分,比如说 是 o=mailgroup,dc=rayesmail,dc=com)相符最后,需要在 pwcheck_ldap.c 中添加下面的一 行: #include 如果你是使用 Linux 来作为 IMAP 服务器,你可能需要在 pwcheck_ldap.c 中做一些语法更 正(我现在忘记了哪是正确的),以保证正常编译使用下面的命令来配置 cyrus: ./configure -with-login=unix_pwcheck -with-pwcheck=ldap 在 pwcheck_ldap 的文档中漏掉了-with-login 这个配置参数编译,然后按照 cyrus 的文档

15、 来安装 3. 服务配置 3.1 LDAP 服务 除了你用到的其他属性,每一个 mail 用户在 LDAP 目录中的目录项必须要有下面的属性 (假设你的 basedn 是 o=someorg,c=US): dn: uid=someuser, o=someorg, c=us uid: someuser userpassword: somepassword maildrop: fulladdressmachine.dom.ain mailacceptinggeneralid: someuser (你也可以使用别名,如下所示) mailacceptinggeneralid: somealias 同时

16、,你需要为 cyrus 指定一个具有管理员权限的帐号除非你在 imap 服务器上配置 cyrus,否则你没有必要担心这个问题但是你心里要清楚这一点另外一点就是不要指定 一个已经存在的帐号来作为管理员,问题可能会 出现安全漏洞或者造成该用户无法收邮 件 3.2 imap 服务 配置 imap 服务器上的 postfix,使得它使用 LDAP 目录来作为它的别名映射配置的说明 可以在 postfix 文档中的 LDAP_README 文件中找到Cyrus 的安装说明已经包含在它的 软件包里面同时,不要忘了使 pwcheck 生效和在 imap.conf 中添加你的管理员帐号 3.3 web 服务 在这一步中,要把 web 服务器配置成收发邮件的终端配置 postfix,使得它使用 LDAP 目 录来作为它的别名数据库postfix 所做的工作就是在 LDAP 目录中检索对应邮件用户目录

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号