在apache 下建立高可扩展的web邮件系统实例
发布:smiling 来源: PHP粉丝网 添加日期:2014-01-21 11:17:40 浏览: 评论:0
1.2 要求
该文档提到了三种服务器:web服务器,imap服务器和LDAP服务器。这些服务器可以位于独立的主机上,或若干个独立的机 器上(例如:23个web服务器,5个LDAP服务器和10个IMAP服务器),或单台服务器上。同时需要具有在 Linux环境下从源代码安装软件的基本知识
1.3 使用的软件
1.4 特别注释
2. 安装软件 2.1 Web服务器的安装
2.2 LDAP服务器的安装
2.3 IMAP服务器的安装
3. 如何配置服务器协同工作 3.1 LDAP服务器 的配置
同样,需要选择一个用户拥有cyrus管理权限。只有需要在imap服务器上配置cyrus时,才会需要考虑管理问题。另外,最好不要给一个已经 存在的用户添加管理权限,这样做可能导致安全问题或者导致该用户不能查看自己的信件的问题。
3.2 imap服务器的配置
3.3 web服务器
例如,你可以将700,000个用户分配到各个服务器上,平均每台服务 器10000个用户。邮件目的地址是user1@dom.ain的邮件将接入到某台WEB服务器,而该邮件将根据maildrop属性 被转发到地址,而发网user657的邮件将被转发给user657@mail34。而且,maildrop属性同时可以被用作转发地 址,如给user302的信件被转发给someuser@somewhereelse.com。
对IMP的培配置一般将根据软件文档,配置结束以后,需要做如下修 改: 在config/defaults.php教程3增添如下内容:
- /* LDAP/IMAP Server Default */ $default->LDAP_server = 'ldap.dom.ain'; $default->LDAP_dn = 'o=someorg,c=US'; $default->LDAP_search_field = 'uid'; $default->ldap_choose_server = true;
- to mailbox.php3 apply the following patch:
- Index: mailbox.php3 =================================================================== RCS file: /home/cvs/imp/mailbox.php3,v retrieving revision 2.29 diff -c -r2.29 mailbox.php3 *** mailbox.php3 1999/07/29 07:20:00 2.29 --- mailbox.php3 1999/08/04 18:04:10 *************** *** 29,34 **** --- 29,51 ---- require './lib/mimetypes.lib'; require './config/defaults.php3'; + /************LDAP**************/ + + if ($default->ldap_choose_server) { + $ldapconnect = ldap_connect($default->LDAP_server); + if ($ldapconnect) { + print("YES! "); + $ldapbind = ldap_bind($ldapconnect); + $ldaps教程earch = ldap_search($ldapconnect, $default->LDAP_dn, $default->LDAP_search_field."=".$imapuser, array("maildrop")); + $ldapget = ldap_get_entries($ldapconnect, $ldapsearch); + $ldapspl = explode("@", $ldapget[0]["maildrop"][0]); + $server = $ldapspl[1]; + $port = $default->port; + } + }
- + /**********end ldap************/ + + /* Html styles configuration */ require './config/html.php3'; /* Mailbox configuration */
全部配置结束以后,将具有一个高可扩展性的web邮件系统。
注:1999年8月,IMP的新版本已经包含了这些补丁的内容,所以如果使 用新版本的话,就不需添加这些内容。
4. Miscellaneous 4.1 Adding Users
这里是一小段向LDAP服务器中增添用户的代码,并且同时向cyrus增添一个邮件用户。这是针对 IMAP服务器设计的,但是你可以修改其适应别的环境。
- <?php
- $ldapconn = ldap_connect("ldap.dom.ain");
- $machine = "mail01";
- if ($ldapconn)
- {
- $ldhb = ldap_bind($ldapconn, "cn=cyrusadmin, o=someorg,c=US","password");
- $dn = "uid=". $username .", o=someorg, c=US";
- $info["uid"]=$username;
- $info["userpassword"] = $password;
- $info["objectclass"] = "account";
- $info["maildrop"] = $username ."@" .$machine .".dom.ain";
- $info["mailacceptinggeneralid"] = $username;
- $ldhb = ldap_add($ldapconn, $dn, $info);
- ldap_close($ldapconn);
- }
- $imapconn = imap_open("{" .$machine .".dom.ain:143}", "cyrusadmin","password");
- if ($imapopen)
- {
- imap_createmailbox($imapconn, "{" .$machine ."dom.ain:143}user.".$username );
- imap_close($imapconn);
- }
- ?>
Tags: apache 扩展 web邮件 系统实例
- 上一篇:phpmailer 发送邮件实例代码
- 下一篇:phpmailer发送邮件代码
相关文章
- ·CentOS系统下Apache环境安装GBK编码程序网页乱码问题(2013-11-30)
- ·hp在IIS下和apache下urlrewrite返回不同的REQUEST_URI解决办法(2013-12-06)
- ·php伪静态的写法,apache伪静态规则(2014-07-08)
- ·iis和apache及PHP页面设置301重定向跳转方法(2014-07-11)
- ·隐藏PHP版本与apache版本方法总结(2014-08-22)
- ·php破解apache,nginx,iis防盗链图片(2014-09-22)
- ·php伪静态之APACHE篇(2021-01-31)
- ·PHP+shell脚本操作Memcached和Apache Status的实例分享(2021-07-14)
- ·php apache开启跨域模式过程详解(2021-12-02)
- ·PHP+Apache实现二级域名之间共享cookie的方法(2021-12-07)
- ·php memcached 扩展 timeout 问题(2013-12-06)
- ·PHP加密扩展库Mcrypt安装与应用实例(2014-08-22)
- ·php学习笔记之PHP扩展开发教程(2014-08-27)
- ·PHP中zlib扩展实现GZIP压缩输出各种方法总结(2014-08-28)
- ·php mssql扩展SQL查询中文字段名解决方法(2014-09-10)
- ·基于微信公众平台开发SDK(demo)扩展例子(2014-09-22)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)