squirrelmail是一个用PHP写成的,基于IMAP协议的webmail邮件系统。当前版本的功能已经十分
完备,做个性化修改也很方便。
一、前提条件
postfix、dovecot服务的配置
LAMP环境搭建完毕
二、需要的软件
squirrelmail-1.4.0.tar.gz (http://www.squirrelmail.org)
三、squirrelmail的配置
squirrelmail不需要编译,但需要进行详细的配置。
tar zxf squirrelmail-1.4.0.tar.gz
cd squirrelmail-1.4.0
./configure (或 cd config; ./conf.pl)
会出现以下画面:
#########################################################
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books (LDAP)
7. Message of the Day (MOTD)
8. Plugins
9. Database
D. Set pre-defined settings for specific IMAP servers
C. Turn color on
S Save data
Q Quit
Command >>
#########################################################
1、选择1,进入组织设置
#########################################################
Organization Preferences
1. Organization Name : SquirrelMail 根据具体情况修改
2. Organization Logo : ../images/sm_logo.png 根据具体情况修改
3. Org. Logo Width/Height : (308/111)
4. Organization Title : SquirrelMail $version 根据具体情况修改
5. Signout Page : 根据具体情况修改
6. Default Language : en_US 改成zh_CN
7. Top Frame : _top
8. Provider link : http://www.squirrelmail.org/
9. Provider name : SquirrelMail
#########################################################
2、选择2,进入服务器选项
#########################################################
Server Settings
General
-------
1. Domain : mydomain.com 改成自己的域名
2. Invert Time : false
3. Sendmail or SMTP : SMTP 建议改成Sendmail
A. Update IMAP Settings : localhost:143 (cyrus) 改成(courier)
B. Update SMTP Settings : localhost:25
#########################################################
3、选择4,进入全局设置
#########################################################
General Options
1. Default Charset : iso-8859-1 改成gb2312
2. Data Directory : ../data/ 根据具体情况修改
3. Attachment Directory : $data_dir 最好和DATA目录分开
4. Directory Hash Level : 0 大用户量可改至4
5. Default Left Size : 150
6. Usernames in Lowercase : false 改成true
7. Allow use of priority : true
8. Hide SM attributions : false 改成true
9. Allow use of receipts : true
10. Allow editing of identity : true/true
11. Allow server thread sort : false
12. Allow server-side sorting : false
13. Allow server charset search : true 改成false
14. Enable UID support : true
15. PHP session name : SQMSESSID
#########################################################
4、改好后选择保存并退出。再检查config/config.php文件,如果$data_dir为空的话,再
把正确的值填入。这是它的一个BUG。
四、squirrelmail的部署
将整个目录拷贝到DocumentRoot下,将目录改名为webmail,拷贝webmail/data目录到$data_dir
设置的地方,再建立设置的Attachment目录,一起CHMOD 777 即可。
五、个性化修改和安装插件(plugin)
因为整个系统是由PHP写成,所以修改起来非常方便。
至于插件,源码包里自带了几个,其它的可以到主页上下载。我自认为最好用的有:
filters------------------制定邮件规则将邮件自动分发到指定的邮件夹
mail_fetch---------------收取其它POP3邮件服务器上帐户的邮件,存入指定的邮件夹
quota_usage--------------如果设定了磁盘限额,它可以显示出当前的使用量
安装插件的方法同三,选择8进入插件选项,输入插件名前面的数字就可以方便地增加或者
移除相应的插件了。
陶然
2003/05/15
使用技巧一:让长的邮件内容自动换行
用SquirrelMail显示长的邮件内容时有一个缺陷,就是不会自动换行。查看源文件后,发现
问题有两点:一是在显示邮件内容时使用的是“pre”标识,二是表格TD都是不定长的。
要让长的邮件内容能自动换行,需要做如下改动:
1、不再使用“pre”标识显示邮件内容:
vi functions/mime.php
-- $body = '<pre>' . implode("n", $body_ary) . '</pre>';
++ $body = implode("<BR>n",$body_ary);
2、找到显示“$messagebody”的TD语句,将TD改成定长:
vi src/read_body.php
老版本:
-- " <TR><TD BGCOLOR="$color[4]" WIDTH="100%">n"
++ " <TR><TD BGCOLOR="$color[4]" WIDTH="580">n"
新版本:
-- html_tag( 'td', '<br>'. $messagebody."n", 'left')
++ html_tag( 'td', '<br>'. $messagebody."n", 'left','','width=580')
--------------------------------------------------------------------------------------
About this article
SquerrilMail
安装 SquirrelMail
配置 SquirrelMail
SquirrelMail 为管理员提供了方便的配置工具(一个 Perl 脚本),运行之后显示的是这样的菜单:
# /var/www/htdocs/mail/config/conf.plSquirrelMail Configuration: Read:config.php(1.4.0)
---------------------------------------------------------
Main Menu--
1.OrganizationPreferences
2.ServerSettings
3.FolderDefaults
4.GeneralOptions
5.Themes
6.AddressBooks
7.Message ofthe Day(MOTD)
8.Plugins
9.Database
10.Languages
D.Setpre-definedsettings for specific IMAPservers
C Turn color on
S Save data
Q Quit
Command>>
输入菜单前的数字或字母即可进入对应的配置选项。
这里有几个参数需要修改:
NOTE: chrooted apache
因为 Apache 默认是被 chroot 在 /var/www/ 目录下,所以这里的 "DataDirectory" 和 "Attachment Directory" 目录的路径不能加/var/www/。
TIP: 检查配置
配置完成之后,可以使用 configtest.php 页面帮助检查设置是否正确:http://your_server_ip/mail/src/configtest.php如果没有错误的话,现在就可以登录 WebMail 了: http://your_server_ip/mail/ 。
Translations
刚才已经安装和配置好了 SquirrelMail,但是界面还只是英文的,需要安装 Translations以支持其它语言的界面显示。
从 SquirrelMail 下载页面 下载需要的 translation。这里使用all_locales-1.4.13-20071220.tar.gz,包含最多种语言的翻译,你也可以只下载单个语言的翻译包。
下载后将它解压,然后将解压出来的目录和文件复制到对应的目录即可:
# tar zxf all_locales-1.4.13-20071220.tar.gz解压后在当前目录有一个 'install' 脚本,它会复制所有需要的文件:
# sh installPleaseenter path to your squirrelmailinstallation:
在提示符下输入 SquirrelMail 的安装地址:
/var/www/htdocs/mail/到此,translations 的安装就完成了。再通过 SquirrelMail 的配置工具 'conf.pl'来设置默认语言和默认的字符集:
# /var/www/htdocs/mail/config/conf.pl选择 'Languages' 一项,再设置以下两个参数:
TIP: Default Charset
SquirrelMail 里的 'zh_CN' 默认使用 'gb2312' 字符集,而phpLDAPadmin 里所有属性的值都是用 'utf-8' 编码保存的,所以如果需要使用 LDAP 全局地址簿,则需要将SquirrelMail 的 translation 文件的编码给转换成 'utf-8' 编码,否则看到的 LDAP属性的值都将是乱码。
这里以 'zh_CN' 为例,介绍如何使用 'iconv' 工具来转换字符集。# cd /var/www/htdocs/mail/locale/zh_CN/LC_MESSAGES/
# cp squirrelmail.po squirrelmail.po.bak
# iconv -f gb2312 -t utf-8 squirrelmail.po.bak >squirrelmail.po
再编辑 /var/www/htdocs/mail/locale/zh_CN/setup.php文件,将文件里的 'gb2312' 改为 'utf-8':$languages['zh_CN']['CHARSET'] = 'utf-8';
$languages['zh_CN']['LOCALE'] = array('zh_CN.UTF8','zh_CN');
再编辑 /var/www/htdocs/mail/functions/i18n.php 文件,将文件里的'gb2312' 改为 'utf-8':$languages['zh_CN']['CHARSET'] = 'utf-8';这样就可以了。
别忘了用 'conf.pl' 配置工具在 'Languages'菜单里将一下参数改一下:
Plugins
SquirrelMail 有丰富的 Plugins,可以在 All Plugins 页面找到所有的 Plugins。
change_ldappass
change_ldappass 是提供给用户修改存储在 LDAP 里的邮箱密码的插件。
输入 'Plugins' 菜单项前的数字,然后可以看到所有已经安装的插件。输入 'change_ldappass'前的数字启用它。再输入 'S' 保存配置,输入 'Q' 退出配置工具。
将配置文件模板复制一份,再基于它进行修改:
# cd/var/www/htdocs/mail/plugins/change_ldappass/#cp config_sample.php config.php
在 config.php 文件中需要修改以下内容:
$ldap_server ='127.0.0.1';$ldap_protocol_version =3;
$ldap_password_field ='userPassword';
$ldap_user_field ='mail';
$ldap_base_dn ='o=domains,dc=openbsdonly,dc=org';
$ldap_filter ='(&(objectClass=qmailUser)(accountStatus=active))';
$query_dn ='cn=vmail,dc=openbsdonly,dc=org';
$query_pw ='vmailpasswd';
修改完成之后,用户就可以登录到 SquirrelMail 里,通过菜单 'Options -->Change Password' 来修改自己的邮箱密码了。
Compatibility
由于以下几个插件需要 Compatibility 插件的支持,所以我们需要先安装 Compatibility 插件:
这是一个用来保证其它一些插件可以 backward (and forward) compatible 的插件。插件的主页介绍如下:
This plugin allows any other plugin access to thefunctions and special variables needed to make it backward (andforward) compatible with most versions of SM in wide use. Thiseliminates the need for duplication of certain functions throughoutmany plugins. It also provides functionality that helps check thatplugins have been installed and set up correctly.
它的安装非常简单,只需要下载后解压到 SquirrelMail 的 'plugins/' 目录,再用 SquirrelMail提供的 'conf.pl' 配置工具启用它即可。
# tar zxfcompatibility-2.0.10-1.0.tar.gz# mvcompatibility /var/www/htdocs/mail/plugins/
# chown -R www:www/var/www/htdocs/mail/plugins/compatibility/
#chmod -R 755 /var/www/htdocs/mail/plugins/compatibility/
别忘了启用它:
# /var/www/htdocs/mail/config/conf.plCheckQuota
Check Quota 插件用于检查和显示用户的邮箱容量使用量。支持的 Quota类型有:
在这里我们使用的是 IMAP-based,配置非常的简单。
下载最新版本的源码,然后解压并配置。这里以 2.2-1.4.0 版本为例。
# tar zxfcheck_quota-2.2-1.4.0.tar.gz# mvcheck_quota/var/www/htdocs/mail/plugins/
#chown -R www:www/var/www/htdocs/mail/plugins/check_quota/
#chmod -R 755/var/www/htdocs/mail/plugins/check_quota/
# cd/var/www/htdocs/mail/plugins/check_quota/
#cp config.sample.php config.php
编辑配置文件 /var/www/htdocs/mail/plugins/check_quota/config.php,在第 28行,将 quota_type 的值改为 '1' 即可。
$settings['quota_type']= 1;使用 SquirrelMail 的 'conf.pl' 工具启用这个插件,然后重新登录SquirrelMail,即可在左上角看到 "Quota Usage" 的信息。
TIP:
如果用户邮箱为空,默认是不显示 "Quota Usage" 的。
Select Language
select_language 在用户的登录的时候提供一个下拉菜单,用户可以在此选择登录SquirrelMail 后使用的界面语言。
select_language 的安装非常简单,只需要解压后复制到正确的目录,再启用它即可。这里以 1.1-1.4.0版本为例。
# tar zxfselect_language-1.1-1.4.0.tar.gz#mv select_language /var/www/htdocs/mail/plugins/
# chown -R www:www/var/www/htdocs/mail/plugins/select_language/
#chmod -R 755 /var/www/htdocs/mail/plugins/select_language/
使用 SquirrelMail 的配置工具 'conf.pl' 启用它。
SquirrelMail补充:
### 一些错误
Error opening ../data/default_pref
Could not create initial preference file!
/var/local/squirrelmail/data/ should be writable by userapache
Please contact your system administrator and report thiserror.
那么新建该目录并改变权限
#mkdir /var/local/squirrelmail/data
#chown -R apache:apache data
就可以解决了
### 一些错误
把 INBOX.Sent 改成INBOX/Sent 其他类似
TrashFolder: INBOX/Trash
SentFolder: INBOX/Sent
DraftsFolder: INBOX/Drafts