中小企业电子邮局完整解决方案

发表于:2007-07-04来源:作者:点击数: 标签:
目前基于 LINUX 操作系统有不少新推出的web邮件产品(如IMP)的出现使web设计者能利用这些产品很容易的实现基于web的邮件系统。然而随着使用这些产品的web邮件系统 解决方案 日趋流行。现在我们在一台普通的装有LINUX操作系统的计算机上都非常容易的实现一个完

  目前基于LINUX操作系统有不少新推出的web邮件产品(如IMP)的出现使web设计者能利用这些产品很容易的实现基于web的邮件系统。然而随着使用这些产品的web邮件系统解决方案日趋流行。现在我们在一台普通的装有LINUX操作系统的计算机上都非常容易的实现一个完整,安全可靠的电子邮局。
  
  很多小型商务网站和个人主页系统管理员都会利用LINUX本身自带的SENDMAIL和POP3,IAMP来构造一个非常稳定的免费的电子邮局系统,以便为自己或者内部工作人员提供免费电子信箱。不过,对大多数小型网络和INTRANET来说,利用LINUX服务器提供开放式WEB电子邮局和POP3组合的电子邮件服务系统则更好些。这样不但可以为单位自身提供电子邮局,而且还可以对外提供有友好界面的WEB免费电子信箱。
  
  Open WebMail 是由 Neomail 1.14 改写而来的一套 WebMail具有良好的使用介面以及与Outllook接近的多媒体信件显示能力,支援多信件夹, 通讯录, POP3 外部邮件, 邮件规则, 全文检索, 读信回条等功能。1.04 版改进如下:
  
  1. 降低处理大型信件时, 读信/新增附件/寄信 所耗用的记忆体;
  
  2. 修正原本全文检索永远 cache miss 的情形。
  
  Open WebMail对系统需求并不高,适用于多种开放式操作系统,任何一台普通的WEB服务器都可以方便的加挂上Open WebMail作为基于WEB的免费电子邮局。
  
  Open WebMail系统需求:Unix OS、Web Server with CGI support、Perl 5.005 或以上
  
  因为Open WebMail是基于著名的Neomail 1.24 WEB电子邮局的一种开放式WEB 电子邮局,所以Open WebMail多少在性能和运作方式上和Neomail 1.24有很多相似的地方,下面就是Neomail 1.24 的简单介绍。需要详细Neomail 1.24资料和介绍的朋友可以访问Neomai的官方网站http://neomail.sourceforge.net
  
  Neomail是由Ernie Mill用perl编写的一套webmail,支持中文,可以方便地用在sendmail/qmail系统上面的电子邮局系统,是一个可以让你方便的架设一个WebMail在线电子邮件服务器,可以让使用者上在面读信,写信,收发e-mail.可以读取Html邮件,包夹附件,图片等,也可以让使用者导入Outlook的CSV格式通讯文件。Neomail的用户界面简洁友好,安装简单,功能和也不见得比其他网站的免费电子邮件逊色。最重要的是Neomail支持多种语言,当然也包括了简体中文。并且Neomail是免费的软件,功能上没有限制。
  
  目前Neomail已经推出到了Neomail 1.24,和以前的版本相比,Neomail 1.24有了相当大的改进,安全性得到了提高,加入了几个相当不错的功能。安装Neomail需要的硬件要求不是很高,一般来说,能安装LINUX服务器的计算机都可以使用Neomail。当然,Neomail需要有CGI和 MD5, Perl 模块的支持。
  
  Open WebMail安装全过程
  Open WebMail的目标就是高效利用计算机内存处理大型邮件文件。Open WebMail同时也提供了多种开放式软件特有的新特性:
  1. 快速文件夹访问技术
  2. 直接信息发送技术
  3. 高效内存利用技术
  4. 方便的文件夹和信息管理技术
  5. 友好的用户界面
  6. 支持虚拟主机和帐号别名
  7. 支持PAM
  8. 支持邮件全文搜索,全内容搜索
  9. 更优化的MIME信息显示
  10. 提供邮件垃圾箱
  11. 提供拼写错误检查技术
  12. 支持POP3
  13. 提供垃圾邮件过滤器技术
  14. 支持邮件信息预览功能
  15. 支持简/繁体(BIG5/GB)中文转化
  
  安装Open WebMail的系统需求:
  支持多种LINUX操作系统,FREEBSD, UNIX OS,系统中需要安装Apache web 服务器,Perl 5.005或者更高版本,并且系统中需要激活CGI。
  推荐安装的文件及其版本:
  CGI.pm-2.74.tar.gz
  MIME-Base64-2.12.tar.gz
  Authen-PAM-0.12.tar.gz
  ispell-3.1.20.tar.gz
  hc-30.tar.gz
  
  正式安装:
  首先,我们需要到http://turtle.ee.ncku.edu.tw/openwebmail/ 网站下载一个最新版本的Open WebMail安装文件包。如果您使用的是带有pkg_add的FreeBSD操作系统,那么请您先对如下文件进行修改,注意,为了保持原来安装手册的完整性,作者只是做了一些重要步骤地中文注解,一般有过安装LINUX下的应用软件的朋友应该可以看明白,另外,由于Open WebMail支持很多种新功能和新技术,有些技术并不是Open WebMail自带的,所以在安装完Open WebMail软件包以后,一些技术的模块,如用户认证技术,简繁体编码转化技术模块等等都需要用户自行安装。这些另外安装的技术都有相应的软件包在互联网上提供下载。由于篇幅有限,所以在本文章并不能把所有的模块的安装详细的进行介绍,这些模块的安装大都在它们的软件包里的README, FAQ ,INSTALL文件中都有详细的安装步骤介绍。英文比较好的朋友我想在安装这些软件模块的时候应该能够很顺利的完成。
  Open WebMail整个系统的安装是非常复杂,特别是Open WebMail的调试过程更是需要我们注意一些实际问题。不过Open WebMail开放式WEB电子邮局系统的功能强大,也可以说是达到了商业级别的免费电子邮局了。
  1. cd /usr/local/www
  tar -zxvBpf openwebmail-X.XX.tgz (解压安装文件包)
  2. 根据系统实际需要修改文件: /usr/local/www/cgi-bin/openwebmail/etc/openwebmail.conf
  3. 在sendmail.cf配置文件中的'Trusted users'片断处加入'Tnobody'
  
  如果您使用的是带有apache WEB服务器的RedHat 6.2/CLE 0.9p1或者其他的版本的LINUX操作系统。那么可以进行如下操作。
  1.
  cd /home/httpd
  tar -zxvBpf openwebmail-X.XX.tgz
  mv data/openwebmail html/
  rmdir data
  
  (进入/home/httpd目录,解压安装文件包,把相应的文件移动到html/目录中)
  2. cd /home/httpd/cgi-bin/openwebmail 进入目录接着找到以下3个文件并进行相应
  修改 openwebmail.pl, openwebmail-prefs.pl, spellcheck.pl 和 checkmail.pl这3个文件
  修改a. change all '/usr/local/www/cgi-bin/openwebmail'
  to '/home/httpd/cgi-bin/openwebmail'
  修改 auth_unix.pl
  a. set variable $unix_passwdfile to '/etc/shadow'
  b set variable $unix_passwdmkdb to 'none'
  
  3. 修改 /home/httpd/cgi-bin/openwebmail/etc/openwebmail.conf
  a. set mailspooldir to '/var/spool/mail'
  b. set ow_htmldir to '/home/httpd/html/openwebmail'
  set ow_cgidir to '/home/httpd/cgi-bin/openwebmail'
  c. set spellcheck to '/usr/bin/ispell'
  d. change default_signature for your need
  e. other changes you want (根据实际起狂修改您所需要修改其他的文件)
  
  4. 在/etc/sendmail.cf文件中的'Trusted users'片断中加入'Tnobody'
  5. 继续修改加入如下内容
  /var/log/openwebmail.log {
  postrotate
  /usr/bin/killall -HUP syslogd
  endscript
  }
  to /etc/logrotate.d/syslog to enable logrotate on openwebmail.log
  
  ps: 如果您使用的是RedHat 7.1, 请您使用 /var/www 代替 /home/httpd
  
  如果您使用的是带有apache UNIX系统,那么请您根据下面步骤安装:
  首先要找到UNIX系统中的cgi-bin目录
  例如: /usr/local/apache/share, 然后
  1. cd /usr/local/apache/share
  tar -zxvBpf openwebmail-X.XX.tgz
  mv data/openwebmail htdocs/
  rmdir data
  2. 修改 /usr/local/apache/share/cgi-bin/openwebmail/etc/openwebmail.conf
  a. set mailspooldir to where your system mail spool is (在系统的mail spool中设定mailspooldir)
  b. set ow_htmldir to '/usr/local/apache/share/htdocs'
  set ow_cgidir to '/usr/local/apache/share/cgi-bin'
  c. set spellcheck to '/usr/local/bin/ispell'
  d. change default_signature for your need (设定您的邮件系统的默认签名)
  e. other changes you want (根据实际起狂修改您所需要修改其他的文件)
  3. cd /usr/local/apache/share/cgi-bin/openwebmail
  修改如下文件 openwebmail.pl, openwebmail-prefs.pl, spellcheck.pl 以及 checkmail.pl
  a. change the #!/usr/bin/perl to the location where your perl is.(根据PERL所在位置定位#!/usr/bin/per)
  b. change all '/usr/local/www/cgi-bin/openwebmail'
  to '/usr/local/apache/share/cgi-bin/openwebmail'
  修改auth_unix.pl
  a. set variable $unix_passwdfile to '/etc/shadow' (shadow密码设置)
  b set variable $unix_passwdmkdb to 'none' (设置$unix_passwdmkdb t为空)
  4. add 'Tnobody' to the 'Trusted users' session in your sendmail.cf
  (在sendmail.cf配置文件中的'Trusted users'片断处加入'Tnobody')
  
  检查CGI模块的版本:
  在Open Webmail上载和发送邮件附件的时候会调用到CGI模块,Open Webmail的作者推荐我们使用CGI version 2.74或者更高的版本。
  检查CGI模块的版本可以按照如下步骤。
  perldoc -m CGI.pm | grep CGI::VERSION
  安装最新版本的CGI模块
  1. 下载最新版本的 CGI 模块 (CGI.pm-2.74.tar.gz)
  2.
  cd /tmp
  tar -zxvf CGI.pm-2.74.tar.gz
  cd CGI.pm-2.74
  perl Makefile.PL
  make
  make install
  
  拼写错误检查技术模块的安装:
  openwebmail提供了拼写错误检查技术,我们可以通过安装拼写错误检查技术软件包来在openwebmail中实现该技术。在一般的电子邮局系统中没有提供该技术,openwebmail可谓技高一筹。
  
  安装步骤:
  1. 下载ispell-3.1.20.tar.gz 软件包 并安装,很简单
  http://www.cs.ucla.edu/ficus-members/geoff/ispell.html
  
  注意: 如果你想自己编译该软件,可以下载该软件的源代码进行重编译
  a. 可以到这个网站下载源代码包 http://turtle.ee.ncku.edu.tw/openwebmail/download/contrib/words.gz
  b. gzip -d words.gz
  c. mkdir /usr/dict; cp words /usr/dict/words
  d. 根据README文件进行启动或者更高级修改
  
  2. 检查 openwebmail.conf 这个文件看看 spellcheck 是否指向ispell binary
  
  PAM技术支持:
  PAM (Pluggable Authentication Modules)提供了一套灵活的系统用户认证机制。在http://www.kernel.org/pub/linux/libs/pam/ 中有很详细的介绍,在这里只介绍PAM的安装和调试。在Solaris 2.6, Linux 和 FreeBSD 3.1系统中是支持PAM的,为了使得Open WebMail也支持该技术,我们可以进行如下操作。
  1. 在http://www.cs.kuleuven.ac.be/~pelov/pam/网站下载 Perl Authen::PAM 模块 (Authen-PAM-0.12.tar.gz)
  
  2.
  cd /tmp
  tar -zxvf Authen-PAM-0.12.tar.gz
  cd Authen-PAM-0.12
  perl Makefile.PL
  make
  make install
  
  ps: 在安装结束后请用'make test'命令进行测试。如果出现测试ERRO提示必须重装
  
  3. 在/etc/pam.conf 文件中加入下面两行参数
  ( FreeBSD系统)
  openwebmail auth required pam_unix.so try_first_pass
  openwebmail aclearcase/" target="_blank" >ccount required pam_unix.so try_first_pass
  
  ( Linux系统)
  openwebmail auth required /lib/security/pam_unix.so
  openwebmail account required /lib/security/pam_unix.so
  
  (在 Linux /etc/pam.conf,文件的LINUX系统中) 如果系统中有/etc/pam.conf 但是没有 /etc/pam.d/,这个目录,可以创建/etc/pam.d/openwebmail这个目录来解决
  auth required /lib/security/pam_unix.so
  account required /lib/security/pam_unix.so
  
  4.
  change auth_module to 'auth_pam.pl' in the openwebmail.conf 
  
  5.
  check auth_pam.pl for further modification required for your system.
  
  PS:更详细的修改配置问题请参阅README文件
  
  在OPENWEBMAIL上添加用户认证:
  在实际操作中我们会发现 auth_unix.pl 和auth_pam.pl 这两个文件并不很适合我们的系统和实际需要, 但是我们可以自己给系统编写新的认证文件
  为了给openwebmail系统编写新的认证文件,我们可以进行如下操作: y
  1. 首先给认证文件取一个缩写的文件名,比如 xyz
  2. 然后用文字编辑器给auth_xyz.pl,这个文件定义以下的参数,直接写入该文件保存即可,用户可根据实际作相应的修改。
  ($realname, $uid, $gid, $homedir)=get_userinfo($user);
  @userlist=get_userlist($user);
  $retcode=check_userpassword($user, $password);
  $retcode=change_userpassword($user, $oldpassword, $newpassword);
  $retcode 解释为:
  -1 : 不支持该功能
  -2 : 参数格式错误
  -3 : 认证系统内在错误
  -4 : 口令错误
  接着启动 auth_unix.pl 或者 auth_pam.pl
  3.修改 openwebmail.conf中的 auth_module 模块,使之和 auth_xyz.pl参数一致
  4. 测试你新编写的认证模块。
  
  BIG5<->GB 简繁体编码转化
  Openwebmail 支持 BIG5<->GB 简繁体编码转化技术,这样使得香港,台湾地区和大陆之间的电子邮件用户可以方便的阅读不同编码的电子邮件,很是方便。
  
  1. 下载 Hanzi Converter (hc-30.tar.gz) 软件包,软件编写
  作者为 Ricky Yeung(Ricky.Yeung@eng.sun.com) 和
  Fung F. Lee (lee@umunhum.stanford.edu).
  2.
  tar -zxvf hc-30.tar.gz
  cd hc-30
  make
  
  3. 拷贝 'hc' 和 'hc.tab' 到 cgi-bin/openwebmail 或者 /usr/local/bin目录中
  4. 分别修改 openwebmail.conf g2b_converter 和 b2g_converter.
  
  多种语言支持技术
  要openwebmail实现多种语言支持的技术非常简单
  
  1. 首先编写一个新文件,给您想要加入的新语言取一个缩写名字,如: xy
  ps: 关于缩写名字的取法必须包含下列URL
  http://i18n.kde.org/stats/gui/i18n-table-KDE_2_2_BRANCH.html
  http://babel.alis.com/langues/iso639.en.htm
  http://www.unicode.org/unicode/onlinedat/languages.html
  2.
  cd cgi-bin/openwebmail/etc.
  cp lang/en lang/xy
  cp -R templates/en templates/xy
  3. 把 lang/xy 和 templates/xy/* 这两个文件里面的英文翻译成自己的语言
  4. add your language to %languagenames in openwebmail-shared.pl,
  then you can set default_language to 'xy' in openwebmail.conf
  
  最后的测试
  1. chdir to openwebmail cgi dir (eg: /usr/local/www/cgi-bin/openwebmail)
  检查一些文件的属性,组的属性和参数是否合下面的标准属性一致,如果不一致可以再进行相应修改。 ~/openwebmail.pl - owner=root, group=mail, mode=4755
  ~/openwebmail-prefs.pl - owner=root, group=mail, mode=4755
  ~/spellcheck.pl - owner=root, group=mail, mode=4755
  ~/checkmail.pl - owner=root, group=mail, mode=4755
  ~/vacation.pl - owner=root, group=mail, mode=0755
  ~/etc - owner=root, group=mail, mode=755
  ~/etc/sessions - owner=root, group=mail, mode=770
  ~/etc/users - owner=root, group=mail, mode=770
  /var/log/openwebmail.log - owner=root, group=mail, mode=660
  
  2.在浏览器中测试你的 webmail ,使用这个地址http://your_server/cgi-bin/openwebmail/openwebmail.pl
  或者 :http://YOU-IP/cgi-bin/openwebmail/openwebmail.pl

原文转自:http://www.ltesting.net