基于Linux的Webmail实现 荐
基于Linux的Webmail实现
关键字信息载入中...
广告载入中...
基于Linux的Webmail实现
四川省冕宁县 魏星 王舒晟
免费Webmail是目前ISP普遍提供的一项服务,它最大的优点就是方便,用户只需要通过浏览器就能够完成邮箱申请、发送邮件、接收邮件等功能;同样,由于Webmail的出现,大大提高了ISP的站点访问数量,提高了站点的知名度,所以是一个两全其美的好东西。不过,大容量的Webmail服务器由于其系统的复杂性和可靠性要求,价格比较昂贵,不太适合Intranet环境的需要。
Linux作为一个优秀的网络操作系统,它的发行版本中集成了大量的网络应用软件,如Web服务器(apache)、Ftp服务器(wu-ftp)、邮件服务器(sendmail+imap4)、SQL数据库(postgresql)等,可以快速的构建Intranet环境,并且也有精致的邮件收发程序(metamail)和强大的Web服务器端开发工具(PHP3)。当你配置好sendmail并激活imapd后,你的Linux用户都可以使用Outlook等客户端软件进行邮件收发,所以,通过将它们集中进行应用,便可以实现一个简单的Webmail服务器的功能。
一、Webmail的主要功能和我们使用的方法
1邮箱申请:使用PHP3中的exec以root身份执行useradd和edquota命令建立系统用户并设置用户的磁盘限额,并将用户保存到postgresql的用户表中,申请到的邮件地址将是username@domain形式。如果你只希望提供用户通过Web申请邮箱的功能,让他们使用Outlook之类的邮件客户程序进行邮件处理,那么目的就已经达到了。
2编辑邮件:使用HTML的form构建编辑域,并利用IE4和Netscape 3支持的“file”类型,提供邮件附件的上传功能。
3发送邮件:使用PHP3中的exec执行metasend提供的发送功能,实现对邮件的编码和发送。
4接收邮件:使用PHP3中提供的强大的imap支持函数集实现邮件数据的接收和解码工作以及收件箱的管理,并将邮件的附件拆分成临时文件放入ftpd的匿名访问目录中,并利用附件的描述信息生成超链,方便客户端的下载。
5帐号管理:使用PHP3中的exec执行passwd和deluser命令实现用户的口令更改和邮箱的删除功能。
二、实现上述功能的具体方法和注意事项
1、支持imap和postgresql的PHP3模块的编译
我们使用的RedHat 5.1中没有包含PHP3支持,并且一般的PHP3执行包都没有预先编译imap支持,要充分使用这优秀的Web服务器端开发工具,最好到www.php.net上下载源程序,实际上它非常精致总共不到2M,作为一个具有150,000个网站用户使用认可的(PHP3帮助文档中的统计数据)并在Linux世界中获奖的软件,它的源代码应该被所有的发行商所选择。由于,PHP3的imap支持需要c-client库和相关的头文件,所以应先解开imap4的源程序包进行编译。注意编译imap4时使用make lnx生成的Makefile文件中可能不能发现crypt,你只需要在连接库的选项中加上lcrypt即可。一般在按照源程序的说明文件编译时出错,多是因为Makefile文件的include或是lib的目录与本地的目录不匹配。
2、upload支持
附件(attachment)是邮件的一个重要组成部分,要把客户端的文件上载到服务器端进行处理,需要客户端的浏览器和服务器端都具有支持。在PHP3的帮助文档中有关于upload处理的说明和例子,并且IE4和Netscape都已经很好的支持这一功能,可惜我们没有在任何关于HTML的书籍中看到类似的介绍。
3、metasend简介
Linux环境下一般使用的邮件收发程序是mail,但它不支持MIME编码,并且不能设置发送地址,不适合Webmail的需要。metasend是一个支持MIME标准的邮件发送程序,并且可以设置发送端的用户地址和
文章录入:lwyx 责任编辑:lwyx

