Postfixadmin是postfix邮件系统的web管理工具,有了这个工具,管理和维护用户帐号就方便多了。假如不用工具,就需要手动修改数据库,谁愿意这样做?安装postfixadmin比较简单,解压包postfix-2.2.11.tar.gz,然后把它移动到某个目录下,其过程如下:
cd /root
tar zxvf postfixadmin-2.2.11.tar.gz
mv postfixadmin-2.2.11 /var/www/postfixadmin |
[root@mailserv2 postfixadmin]# pwd
/mail/www/postfixadmin
[root@mailserv2 postfixadmin]ll
total 236
drwxr-xr-x 2 vmail vmail 4096 Sep 16 16:06 ADDITIONS
drwxr-xr-x 2 vmail vmail 4096 Sep 16 19:31 admin
-rw-r--r-- 1 vmail vmail 1195 Sep 16 16:06 BACKUP_MX.TXT
-rw-r--r-- 1 vmail vmail 10155 Sep 16 16:06 CHANGELOG.TXT
-rw-r----- 1 vmail vmail 4700 Sep 16 16:14 config.inc.php
-rw-r--r-- 1 vmail vmail 4694 Sep 16 16:06 config.inc.php.sample
-rw-r----- 1 vmail vmail 3774 Sep 16 16:06 create-alias.php
-rw-r----- 1 vmail vmail 7379 Sep 16 19:24 create-mailbox.php
-rw-r--r-- 1 vmail vmail 4910 Sep 16 16:06 DATABASE_MYSQL.TXT
-rw-r--r-- 1 vmail vmail 4955 Sep 16 16:06 DATABASE_PGSQL.TXT
-rw-r----- 1 vmail vmail 2497 Sep 16 19:30 delete.php
-rw-r----- 1 vmail vmail 1727 Sep 16 16:06 edit-active.php
-rw-r----- 1 vmail vmail 3013 Sep 16 16:06 edit-alias.php
-rw-r----- 1 vmail vmail 4026 Sep 16 16:06 edit-mailbox.php
-rw-r----- 1 vmail vmail 25031 Sep 16 16:06 functions.inc.php
drwxr-xr-x 2 vmail vmail 4096 Sep 16 16:06 images
-rw-r----- 1 vmail vmail 3994 Sep 16 16:06 index.php
-rw-r--r-- 1 vmail vmail 2655 Sep 16 16:06 INSTALL.TXT
drwxr-xr-x 2 vmail vmail 4096 Sep 16 16:06 languages
-rw-r--r-- 1 vmail vmail 1651 Sep 16 16:06 LANGUAGE.TXT
-rw-r--r-- 1 vmail vmail 5375 Sep 16 16:06 LICENSE.TXT
-rw-r----- 1 vmail vmail 1743 Sep 16 16:06 login.php
-rw-r----- 1 vmail vmail 494 Sep 16 16:06 logout.php
-rw-r----- 1 vmail vmail 869 Sep 16 16:06 main.php
-rw-r--r-- 1 vmail vmail 981 Sep 16 16:06 motd-admin.txt.orig
-rw-r--r-- 1 vmail vmail 262 Sep 16 16:06 motd.txt
-rw-r--r-- 1 vmail vmail 262 Sep 16 16:06 motd-users.txt
-rw-r----- 1 vmail vmail 4827 Sep 16 16:06 overview.php
-rw-r----- 1 vmail vmail 2314 Sep 16 16:06 password.php
-rwxr-xr-x 1 vmail vmail 392 Sep 16 16:08 postfix_chmod.sh
-rw-r----- 1 vmail vmail 3233 Sep 16 16:06 search.php
-rw-r----- 1 vmail vmail 2119 Sep 16 16:06 sendmail.php
-rw-r----- 1 vmail vmail 5506 Sep 16 16:06 setup.php
-rw-r----- 1 vmail vmail 4204 Sep 16 16:06 stylesheet.css
-rw-r--r-- 1 vmail vmail 456 Sep 16 16:06 TABLE_BACKUP_MX.TXT
-rw-r--r-- 1 vmail vmail 3737 Sep 16 16:06 TABLE_CHANGES.TXT
drwxr-xr-x 2 vmail vmail 4096 Sep 16 16:06 templates
-rw-r--r-- 1 vmail vmail 2303 Sep 16 16:06 UPGRADE.TXT
drwxr-xr-x 2 vmail vmail 4096 Sep 16 16:06 users
-rw-r----- 1 vmail vmail 1949 Sep 16 16:06 variables.inc.php
-rw-r----- 1 vmail vmail 1965 Sep 16 16:06 viewlog.php
drwxr-xr-x 2 vmail vmail 4096 Sep 16 16:06 VIRTUAL_VACATION |
[root@mailserv2 postfixadmin]# more config.inc.php
//
// Postfix Admin
// by Mischa Peters
// Copyright (c) 2002 - 2005 High5!
// License Info: http://www.postfixadmin.com/?file=LICENSE.TXT
//
// File: config.inc.php
//
if (ereg ("config.inc.php", $_SERVER[‘PHP_SELF‘]))
{
header ("Location: login.php");
exit;
}
// Postfix Admin Path
// Set the location to your Postfix Admin installation here.
$CONF[‘postfix_admin_url‘] = ‘‘;
$CONF[‘postfix_admin_path‘] = ‘‘;
// Language config
// Language files are located in ‘./languages‘.
$CONF[‘default_language‘] = ‘cn‘;
// Database Config
// mysql = MySQL 3.23 and 4.0
// mysqli = MySQL 4.1
// pgsql = PostgreSQL
$CONF[‘database_type‘] = ‘mysql‘;
$CONF[‘database_host‘] = ‘localhost‘;
$CONF[‘database_user‘] = ‘postfixadmin‘;
$CONF[‘database_password‘] = ‘postfixadmin‘;
$CONF[‘database_name‘] = ‘postfix‘;
$CONF[‘database_prefix‘] = ‘‘;
…………………………省略若干……………………………………….
// Mailboxes
// If you want to store the mailboxes per domain set this to ‘YES‘.
// Example: /usr/local/virtual/domain.tld/username@domain.tld
$CONF[‘domain_path‘] = ‘YES‘;
// If you don‘t want to have the domain in your mailbox set this to ‘NO‘.
// Example: /usr/local/virtual/domain.tld/username
$CONF[‘domain_in_mailbox‘] = ‘NO‘;
…………………………省略若干……………………………………….
// Default Domain Values
// Specify your default values below. Quota in MB.
$CONF[‘aliases‘] = ‘1000‘;
$CONF[‘mailboxes‘] = ‘1000‘;
$CONF[‘maxquota‘] = ‘1000‘;
…………………………省略若干……………………………………….
// Quota
// When you want to enforce quota for your mailbox users set this to ‘YES‘.
$CONF[‘quota‘] = ‘NO‘;
// You can either use ‘1024000‘ or ‘1048576‘
$CONF[‘quota_multiplier‘] = ‘1024000‘;
…………………………省略若干……………………………………….
?> |
被改动过的内容用红色粗体标记出来了,这些值可根据实际情况作修改。下一个需要修改的文件是create-mailbox.php:
[root@mailserv2 postfixadmin]# more create-mailbox.php
//
// Postfix Admin
// by Mischa Peters
// Copyright (c) 2002 - 2005 High5!
// License Info: http://www.postfixadmin.com/?file=LICENSE.TXT
……………………………………省略若干…………………………………….
$tQuota = $CONF[‘maxquota‘];
system("sudo /usr/sbin/maildirmake.sh $fDomain ".$_POST[‘fUsername‘]);
if ($fMail == "on")
……………………………………省略若干…………………………………….
?> |
红色字体那行是需要插入的,它的位置在210行,不要把位置放错了,因为文件中有2行是"$tQuota = $CONF[‘maxquota‘];"一定要把它放在第209行的那个"$tQuota = $CONF[‘maxquota‘];"的后面才会有作用。在这里,很有必要解释一下插入这行的作用--在php脚本中执行系统的shell脚本--直接的后果就是创建用户的邮箱目录,这与执行在linux下执行命令行sudo /usr/sbin/maildirmake.sh sery.com sey相当。接下来我们修改文件delete.php:
[root@mailserv2 postfixadmin]# vi delete.php
……………………………………….省略很多………………………………
require ("./variables.inc.php");
require ("./config.inc.php");
require ("./functions.inc.php");
include ("./languages/" . check_language () . ".lang");
$SESSID_USERNAME = check_session();
……………………………………….省略很多……………………………… $result = db_query ("SELECT * FROM mailbox WHERE username=‘$fDelete‘ AND domain=‘$fDomain‘");
$userarray=explode("@",$fDelete);
$user=$userarray[0];
$domain=$userarray[1];
system("sudo /usr/sbin/maildirdel.sh $domain $user");
……………………………………….省略很多………………………………
?> |
红色字体标示的那4行是需要插入的,位置也是至关重要的,不能弄错。到了这一步,还是没有完成,还需要进目录admin里修改2个同名文件admin/create-mailbox.php和admin/delete.php,修改的方法是一样的,只是插入位置的行号不同(如admin/create-mail在200行的位置插入),见下面的截图:
![]() |
图 5 |
[root@mailserv2 ~] # cd /var/www/postfixadmin [root@mailserv2 ~] # mysql -u root < DATABASE_MYSQL.TXT |
(3) 测试postfixadmin。先修改apache的配置文件/usr/local/apache/conf/httpd.conf,加入如下内容:
Alias /postfixadmin /var/www/postfixadmin
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
AuthType Basic
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "sery.mail Access"
AuthUserFile /usr/local/apache/conf/htpasswd
Require valid-user
|
保存后重起apache服务(/usr/local/apache/bin/apachectl restart),然后在别的机器的浏览器输入邮件服务器的url如:http://mail.sery.com/postfixadmin
![]() |
图 6 |
点击链接 setup,如果出现的都是ok,则表明postfixadmin配置正确。
![]() |
图 7 |