由于对ilohamail的界面和功能还有一些不满意,在进行邮件服务器迁移的时候换了Tmail 3.0(igenus for postfix)做webmail,在网上搜索好久,似乎Tmail已经失传很久了,所有下载链接均无效,还好以前曾经保留过一个,下面是安装过程中需要说明的地方。
一. 下载安装Tmail:
安装步骤基本同《Debian上PostFix的配置(二)》,不安装ilohamail,配置从先webmail开始,因为tmail的数据库生成脚本决定了postfix,courier,pam,sasl如何连接mysql。
1. 从以下地址下载Tmail:
解压tmail30.tgz到/home/webmail(与apache中DocumentRoot一致),创建完数据库postifx及相关帐号后,执行SQL目录下Tmail.sql创建相关的数据表及默认管理员:
mysql -p postfix < Tmail.sql
|
2. 因为管理后台webadmin登录时需要验证码,所以要安装php5-gd,并修改php.ini文件把extension=gd.so行的注释符去掉。另外Tmail是基于php4开发的,有一些类的操作方法在php5中报错:
Fatal error: Using $this when not in object context...
|
上面的tmail包已经做过了修正,可以在php5上正常使用。
3. 修改config/config_inc.php文件,填写正确的数据库连接帐号,根据文件中
$CFG_BASEPATH = "/home/webmail/igenus";
$CFG_NETDISK_PATH = "/home/postfix/netdisk";
$CFG_NETDISK_DEFAULT_QUOTA = 100; //MB
|
值创建目录,并在其下创建temp目录。
4. 修改webadmin/include/config_inc.php,填写正确的数据库连接帐号,并根据文件中
define(DOMAINSDIR,"/home/postfix");
|
值创建postfix的主目录。由于tmail(igenus)是直接通过php程序访问Maildir目录的,速度非常快,前提是apache要有权限直接访问,经过几轮测试,很不情愿地用postfix帐号来运行apache了。
5. 以上操作完成后就可以通过
http://mail.xxx.com/webadmin以admin登录创建域名了。再以域名为用户名重新登录,可以对该域进行管理。
二. 配置postfix
1. 相关配置文件如下:
mail:/# cat /etc/postfix/main.cf
# Set your hostname
myhostname = mail.test.ddmdd.com
mynetworks = 127.0.0.0/8
smtpd_banner = $myhostname ESMTP ready
alias_maps = hash:/etc/aliases
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:108
virtual_mailbox_base = / # 在数据库是绝对路径,但这里不能为空
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 512000000
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_transport = virtual
virtual_uid_maps = static:103
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_overquota_bounce = yes
disable_vrfy_command = yes
smtpd_helo_required = yes
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unknown_recipient_domain,
reject_non_fqdn_recipient
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname,
permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
max_use = 10
mail:/# cat /etc/postfix/mysql_virtual_domains_maps.cf
user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
table = domaininfo
select_field = des
where_field = domain
additional_conditions = and domain != 'admin' and active = '1'
mail:/# cat /etc/postfix/mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
table = userinfo
select_field = maildir
where_field = userid
additional_conditions = and active = '1'
mail:/# cat /etc/postfix/mysql_virtual_mailbox_limit_maps.cf
user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
table = userinfo
select_field = quota
where_field = address
additional_conditions = and active = '1'
|
2. 修改/etc/default/saslauthd中 "START=yes", OPTIONS中加入 "-r"。
3. 创建文件/etc/postfix/smtpd.conf
pwcheck_method: saslauthd
saslauthd_path: /var/run/saslauthd/mux
mech_list: PLAIN LOGIN
|
4. 创建文件/etc/pam.d/smtp
auth required pam_permit.so
auth required pam_mysql.so user=postfix passwd=postfix db=postfix table=userinfo usercolumn=address passwdcolumn=passwd crypt=1 sqllog=1
account sufficient pam_mysql.so user=postfix passwd=postfix db=postfix table=userinfo usercolumn=address passwdcolumn=passwd crypt=1 sqllog=1
|
5. 重启postfix,按第二篇的方法验证。
三. 配置pop3和imap
1. 修改/etc/courier/authdaemonrc文件中下行:
authmodulelist="authmysql"
|
2. 修改/etc/courier/authmysqlrc文件如下:
MYSQL_SERVER localhost
MYSQL_USERNAME postfix
MYSQL_PASSWORD postfix
MYSQL_PORT 0
MYSQL_OPT 0
MYSQL_DATABASE postfix
MYSQL_USER_TABLE userinfo
MYSQL_CRYPT_PWFIELD passwd
MYSQL_UID_FIELD 103
MYSQL_GID_FIELD 108
MYSQL_LOGIN_FIELD address
MYSQL_HOME_FIELD homedir
MYSQL_NAME_FIELD userid
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD quota
|
3. 重启courier各服务,使用第二篇的方法验证。
[
本帖最后由 如是 于 2008-5-22 01:05 编辑 ]