在 Client 端使用 pop3 之类的 MUA 软件来收信是目前一般使用者最常见的信件收受模式。不过,这种模式由于是直接将信件下载到客户端的个人计算机上,事实上, 很容易遭受不明病毒的影响,并且,如果信件内容大部分是广告信件的话,由主机传送到个人计算机这过程中的传送行为, 将会平白的让使用者损失一定程度的网络频宽。由于电子邮件对于现代人来说,应该已经是不可或缺的使用工具,所以虽然使用 pop3 有一定程度的风险,大家还是得继续使用啊~难道没有解决的方法吗?呵呵!是有的,那就是使用网页接口 (Web) 的邮件功能啦,也就是 WebMail 。其实 WebMail 并不是一个邮件服务器,而只是透过主机提供的 Web 接口让使用者登入,并且直接在主机上面进行邮件的收发而已。因此,事实上,您也可以将 webmail 视为一个 MUA 啦!底下我们就来说一说这一个由台湾人发明的 OpenWebMail 吧! |
Server 端
Client
-------------------------
|
Apache/Webmail<---|<---- Mozilla/IE(浏览器)
|
| |
|<---SMTP-----|
|
|
| |
| /var/spool/mail/accout
|
`-------------------------'
也就是说,当 Client 端以浏览器登入主机后,主机透过 webmail 提供的服务,让登入的使用者可以读取该主机内自己的邮件,并且,也可以透过主机的
smtp 协议来进行邮件的寄发!
# 0. 先确定所有的套件都已经安装了,主要有:
postfix-2.0.16-1 cyrus-sasl-2.1.15-6 cyrus-sasl-md5-2.1.15-6 cyrus-sasl-devel-2.1.15-6 cyrus-sasl-plain-2.1.15-6 如果还有忘记写上去的,还请继续的安装啊!并且,请移除底下的套件 sendmail fetchmail mutt # 1. 先确定一下
/usr/lib/sasl2/smtpd.conf 存在,且内容为:
# 2. 确定一下
/etc/sysconfig/saslauthd 内容为:
# 3. 确定一下
main.cf 里面有:
# 4. 然后启动 saslauth 及 postfix 应该就可以啦! |
1. 安装 openwebmail
:
[root@test root]# rpm -ivh perl* # 假设所有的RPM都放在 /root 底下。 [root@test root]# yum update # 这个动作仅只是要升级刚刚的套件而已; [root@test root]# rpm -ivh openwebmail-2.40-1.i386.rpm # 注意:在预设的情况下, openwebmail 会将档案资料安装至与 apache 有关的路径 # 也就是 /var/www/data 与 /var/www/cgi-bin 底下,所以,如果您已经将 apache # 以 tarball 方式安装,导致拥有不同的 WWW Root 路径时,最好使用 tarball # 来安装您的 openwebmail 啊! 2. 初始化设定: [root@test root]# cd /var/www/cgi-bin/openwebmail [root@test openwebmail]# ./openwebmail-tool.pl --init # 因为 openwebmail 支持相当多种认证机制,因此,我们必须在使用 opewebmail # 之前,先将 openwebmail 的相关设定做好!上面 openwebmail-tool.pl --init # 就是在达成这样的目标。此外,这个步骤会进行蛮长的一段时间喔!请耐心等候! [root@test openwebmail]# cd etc [root@test etc]# vi dbm.conf # 找到并修改成底下几行: dbm_ext .db dbmopen_ext .db dbmopen_haslock yes [root@test etc]# cd .. [root@test openwebmail]# ./openwebmail-tool.pl --init Welcome to the Open WebMail! This program
is going to send a short message back to the developer,
OS: Linux 2.4.22-1.2199.nptl
i686
Send the site
report?(Y/n)
Thank you.
|
[root@test
root]# vi /etc/httpd/conf/httpd.conf
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <Directory "/var/www/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> AddHandler cgi-script .cgi .pl |
[root@test
root]# cd /var/www/cgi-bin/openwebmail/auth
[root@test auth]# vi auth_unix.pl # 找到底下: my $passwdfile_plaintext = $conf{'passwdfile_plaintext'} || '/etc/passwd'; my $passwdfile_encrypted = $conf{'passwdfile_encrypted'} || '/etc/master.passwd'; # 改成这样: my $unix_passwdfile_plaintext="/etc/passwd"; my $unix_passwdfile_encrypted="/etc/shadow"; |
# 0. 先确定一下底下这些套件都已经安装了(使用
rpm 的方式来安装的)
[root@test root]# rpm -qa | egrep '(sasl|postfix|imap)'|sort cyrus-sasl-2.1.15-10mdk imap-2002d-8mdk libpostfix1-2.1.1-0.1.100mdk libsasl2-2.1.15-10mdk libsasl2-devel-2.1.15-10mdk libsasl2-plug-anonymous-2.1.15-10mdk libsasl2-plug-login-2.1.15-10mdk libsasl2-plug-plain-2.1.15-10mdk postfix-2.1.1-0.1.100mdk # 若没有安装任何一个套件,请使用 urpmi 来安装喔! # 1. 建立 saslauthd 认证机制与 smtp 认证档案: [root@test root]# vi /etc/sysconfig/saslauthd #SASL_AUTHMECH=pam SASL_AUTHMECH=shadow # 事实上,就是将认证机制修订成为 shadow 就是了。 [root@test root]# mkdir /etc/postfix/sasl [root@test root]# vi /etc/postfix/sasl/smtpd.conf pwcheck_method: saslauthd mech_list: plain login # 这一版的 postfix 比较奇怪,他的认证档案预设就是放置在这里喔! # 2. 修订 postfix
的设定档 master.cf:
# 3. 修订 postfix
的设定档 main.cf:
# 4. 其它相关的档案:
# 5. 开始启动:
|
# 0. 利用 urpmi
来安装所需要的所有的套件!
[root@test root]# urpmi apache2 php MySQL Preparing... ########################################### 1:libmysql12 ########################################### 2:libapr0 ########################################### 3:apache-conf ########################################### 4:apache2-common ########################################### 5:perl-Data-ShowTable ########################################### 6:perl-Mysql ########################################### 7:apache2-modules ########################################### 8:apache2 ########################################### 9:libphp_common432 ########################################### 10:perl-CGI ########################################### 11:MySQL-client ########################################### 12:MySQL-common ########################################### 13:php-ini ########################################### 14:apache2-mod_php ########################################### 15:MySQL ########################################### # 因为我再最早安装时,并没有选择 WWW ,所以要安装的数据就很多! # 另外,请您做好 urpmi 的设定才行! # 1. 开始启动
httpd 啰!
# 2. 让 MySQL
在开机时不会自动启动, httpd 则会自动启动!
|
# 0. 将 openwebmail
解压缩,并且移动到适当的目录下:
[root@test root]# cd /usr/local/src [root@test src]# tar -zxvf /disk1/software/openwebmail-2.40.tar.gz [root@test src]# cd cgi-bin/ [root@test cgi-bin]# mv openwebmail/ /var/www/cgi-bin/ [root@test cgi-bin]# cd .. [root@test src]# rmdir cgi-bin [root@test src]# mv data/openwebmail /var/www/html/openwebmail_data [root@test src]# rmdir data # 同时请注意,您的主机上面必须要有 perl 模块的存在了才行! # 我的 perl 模块有底下这么多: perl-MailTools-1.59-2mdk perl-Crypt-SSLeay-0.51-3mdk perl-Term-Readline-Gnu-1.14-5mdk perl-Digest-SHA1-2.04-1mdk perl-Mysql-1.22_19-9mdk perl-MDK-Common-1.1.11-2mdk perl-HTML-Parser-3.35-2mdk perl-File-Slurp-2002.1031-3mdk perl-Tk-800.024-4mdk perl-SGMLSpm-1.03ii-6mdk perl-SDL-1.20.0-8mdk perl-ldap-0.31-2mdk perl-Glib-1.021-3mdk perl-Gtk2-1.023-3mdk perl-IO-Tty-1.02-9mdk perl-Gtk2-TrayIcon-0.03-3mdk perl-Authen-SASL-2.04-2mdk perl-Locale-gettext-1.01-11mdk perl-TimeDate-1.16-3mdk perl-HTML-Tagset-3.03-7mdk perl-URI-1.25-1mdk perl-Gnome2-Vte-0.02-1mdk perl-devel-5.8.3-5mdk perl-XML-SAX-0.12-3mdk perl-Convert-ASN1-0.16-4mdk perl-Data-ShowTable-3.3-9mdk perl-5.8.3-5mdk perl-DBI-1.40-2mdk perl-Libconf-0.33-2.1.100mdk perl-XML-Parser-2.34-1mdk perl-CGI-3.00-2mdk perl-URPM-0.94-11mdk perl-Expect-1.15-6mdk perl-Digest-HMAC-1.01-11mdk perl-base-5.8.3-5mdk perl-libwww-perl-5.76-3mdk perl-XML-NamespaceSupport-1.08-3mdk # 另外,也需要加入两个必要的模块,您可以使用 FC1 的相关档案,下载点: # http://turtle.ee.ncku.edu.tw/openwebmail/download/redhat/rpm/packages/fc1/ # rpm -ivh perl-Text-Iconv-1.2-fc1.i386.rpm perl-Compress-Zlib-1.16-12.i386.rpm # 两个就可以啦! # 1. 初始化设定:
creating db
/var/www/cgi-bin/openwebmail/etc/maps/b2g ...done.
This program
is going to send a short message back to the developer,
OS: Linux 2.6.3-14mdk
i686
Send the site
report?(Y/n) y
Thank you. # 2. 修订认证机制:
|
除了既有的设定之外,如果您想要其它的设定时,这里提供几个简单的设定:
# 1. 网络硬盘:
如果不想提供网络硬盘的话,可以在底下的档案:
/var/www/cgi-bin/openwebmail/etc/opewebmail.conf
加入这行:
enable_webdisk no# 2. 提供 ssh 联机:
如果不想提供网络联机的话,可以在底下的档案:
/var/www/cgi-bin/openwebmail/etc/opewebmail.conf
加入这行:
enable_sshterm no# 3. 让登入更简单:
如果不想在网址列输入长长的一段文字,可以修改成为:
vi httpd.conf (请依照您的系统来修订!)
ScriptAlias /webmail /var/www/cgi-bin/openwebmail/openwebmail.pl
or
ScriptAlias /webmail.pl /var/www/cgi-bin/openwebmail/openwebmail.pl
然后重新启动 apache ,如此一来,您可以在网址列输入:
http://hostname/webmail or http://hostname/webmail.pl
就可以进入 openwebmail 啰!