首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

邮件服务器

技术前沿 | Qmail | IMail | MDaemon | Exchange | Domino | 其它 | Foxmail | James | Kerio | JavaMail | WinMail | Sendmail | Postfix | Winwebmail | Merak | CMailServer | 邮件与开发 | 金笛 |
首页 > 邮件服务器 > Qmail > 基于Linux的Webmail实现 > 正文

基于Linux的Webmail实现

出处:WWW.CPCW.COM 作者:WWW.CPCW.COM 时间:2004-11-10 22:10:00

摘要:本文的目的是通过应用Linux系统集成的网络服务和应用软件,快速实现基于Web的电 子邮件系统。作者只是普通的Linux的爱好者,尝试将所学到的一点Linux知识进行综合应用,希望对大家有所启发。   

免费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服务器端开发工具,最好到wwwphp.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标准的邮件发送程序,并且可以设置发送端的用户地址和编码方式,非常适合做shell命令,它包含在 metamail包中,只有15K。直接使用它作为后端的邮件发送程序,实现MIME编码可有效的降低程序的复杂度。由于PHP3可以快速处理form数据并利用exec调用系统的外部程序,所以,有效的利用Linux提供的大量应用软件配合灵活的输入输出重定向作为CGI程序,不失为一种简便方法,并且这也是Linux系统中大量字符界面或是命令行处理程 序的强项。   
4、邮件附件的下载由于浏览器限制了对本地文件系统的写入功能,要下载文件最自然的方法便是通过浏览器直接使用FTP的匿名访问。由于Linux系统集成了wu-ftpd,所以把邮件的附件以临时文件的方式放入ftpd的匿名访问的子目录中,并只允许nobody进行写,而服务器端在显示邮件信息时利用邮件头中附件描述信息生成超链,能够简单而自然的解决这一问题。   
5、PHP3中的imap和postgresql支持简介PHP3实际是Web服务器和大量C库函数的中介层,并且对处理form提交的数据能力进行了扩充,另外,还具有和C相似的风格,所以能够简捷高效的实现多种复杂功能。PHP3含有38个对imap提供相关支持的函数,而这些函数是建立在对imap4协议的标准客户开发库的支持的基础上,其功能和效率是完全可以信赖和保证的,利用这些函数可以快速地连接imapd、验证地址、接收邮件、拆分邮件、解码邮件、管理邮箱等。   
我们把postgresql数据库主要用于验证用户和跟踪用户产生的临时文件上,功能比较简单,但由于有了基于SQL的数据库在处理并发访问上便不用担心冲突。PHP3支持许多数据库系统,当然需要有它们的基于Linux的C开发库和头文件,postgresql作为集成在发行包中的面向对象的SQL数据库并且其psql客户程序非常友好自然成为首选。PHP3提供的32个postgresql支持函数,且有丰富的文档和例子,要实现Web数据库不是难事,主要注意在每个表中对nobody进行授权。PHP3采用的数据库存取方式几乎没有使用ODBC,而是直接利用各数据库提供的开发库,不过它使用了相近的函数调用格式,同样比较方便。PHP3的文档中有些地方出现返回值类型错的问题,只要在使用前稍微测试以下就可以避免。
6、sendmail配置sendmail是广泛使用的邮件传输系统,其历史悠久、功能强大,但是配置比较复杂。不过,可以利用linuxconf启动其基本的功能。注意,在多邮件服务器的情况下,DNS 的MX记录起非常关键的作用,注意在你的DNS中为每个域都指定一个明确的MX记录。在使用linuxconf配置sendmail时选择不立即传送邮件和较短的队列处理时间,以减小客户端由于输入错误的邮件地址而出现的等待,另外,直接编辑/etc/rc.d/init.d/sendmail 设置较短的超时时间有利于提高Intranet环境下的效率。实际上,深入的了解sendmail 提供的功能是建立强大邮件系统的好办法。
7、安全考虑   
由于我们的Webmail系统的用户是Linux的系统用户,为确保安全,不能赋予其直接登录的权限,即指定一个不存在的shell。由于在创建用户、修改口令、删除帐号时都使用了root帐号,所以对其口令文件需要隐藏,最好取消telnet 服务或者设置信任主机的范围。对于系统原有的帐号,可以不作为webmail的 用户帐号,避免由于Webmail出错导致关键信息丢失。   
由于邮件系统是面向多用户,所以必须提供磁盘限额控制,并缩短超限的时间, 在上传文件时注意设置其文件传输的最大长度。同时,为了防止用户中途退出, 而不能删除生成的临时文件,可以为root设置cron任务对过期的临时文件进行 处理。   
禁用nobody和ftp帐号(缺省)   
8、性能优化   
如果发现你的Webmail处于重载的情况,你可以把集成的数据库服务 (postgresql)、域名服务器(named)与Web服务器分离,它们都是可以通过网络进行访问的。   
同样,你可以把用户分散到多个邮件服务器上满足用户的需要,毕竟,Linux是一个要求较低且非常廉价的系统。   另外,你可以打开metasend的源程序,参考直接用PHP3实现邮件的直接发送,避免调用SHELL程序,应该能够提高性能。同样,可以使用Mysql替换postgresql。   

以上简单的介绍了我们的Webmail实现方法和注意事项,这仅仅是我们在对Linux系统了解得非常肤浅的情况下的简单解决方案,并没有从系统性能的角度进行周密考虑,并不能代表Linux作为一个优秀的网络系统的真正实力,我们只是从简捷和方便性上进行了思考,因为我们感觉到快速实现其基本功能,有利于我们更好的学习和使用Linux。不过,我们还是深深地体会到Linux系统和它集成的大量软件的魅力和实力,同样深深地体会到它给我们自己在思考和解决问题时带来的变化,它给了我们更多选择的机会。的确,它给我们的已经远远超过了我们所期望的

,
相关文章 热门文章
  • 263新版webmail定义“专业”企业邮箱网页邮箱新标准
  • 263企业邮箱Webmail全新升级,誓做网上的移动办公桌
  • 263企业邮箱重磅推出融资融券定制化Webmail产品
  • 263企业邮箱持续发力,新版Webmail全新上线
  • RoundCube Webmail DNS预读域名信息泄露漏洞
  • RHEL5.2 sendmail和openwebmail 、dpvecpt 配置总结
  • WinWebmail新版本3.8.0.1发布 业内首次将聚类分析算法反垃圾邮件
  • Horde IMP Webmail客户端跨站脚本和HTML注入漏洞
  • 开源邮件系统:apache james mailserver+claros inTouch webmail
  • Apache james mailserver + Claros inTouch webmail
  • Kerio MailServer WebMail多个跨站脚本漏洞
  • WinWebMail 3.7.7.1 版正式发布
  • Linux邮件服务器软件比较
  • 域名和邮件服务器FAQ
  • Qmail自动安装包Qmail_setup-v1.5.3发布
  • freebsd+qmail+mysql+vpopmail之完全ports安装
  • qmail+vpopmail+MySQL+igenus+RedHat 7下建立邮件系统
  • QMAIL终极安装指南
  • 配置你的第一台e-mail服务器
  • qmail+webmail on Linux9 安装全过程
  • 分布式的Qmail邮件系统
  • qmail+vpopmail+mysql+qmailadmin+ezmlm+igenus构建企..
  • qmail+webmail on Linux9 安装全过程
  • Qmail Server Howto
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号