◆安装和配置postfixadmin

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

现在postfixadmin的目录是/var/www/postfixadmin,为了能够让它按照我们的意愿工作,需要用命令 chown -R vmail:vmail /var/www/postfixadmin 更改属主。这样,postfixadmin的安装就算完成了。接着我们来配置它,这个过程要复杂一点,我在这里分几步进行。

1)修改相关的配置文件。Postfixadmin第一个需要修改配置文件是config.inc.php,但事实上却没有这个文件,不要紧,把config.inc.php.sample搬过来就是了cp config.inc.php.sample config.ini.php),再来看一下目录结构:

[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

在上面的目录输出中,我将要处理的文件或目录用了粗字体来标识了,先从config.ini.php动手吧。

[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

这里有一个疑惑:为什么在不同的目录下有相同的文件呢?这是出于安全方面的原因。Postfixadmin把管理员分成2种:超级邮件系统管理员和一般邮件系统管理员,在admin目录里的是超级管理员的目录,而普通的邮件系统管理员在/mail/www/postfixadmin这个目录。在上述过程中,我们使用了2个shell脚本/usr/sbin/maildirdel.sh及/usr/sbin/maildirmake.sh,这些脚本的内容和作用将在后面安装配置maildrop时一并给出。

(2) 在mysql中创建postfix所需的数据库。

[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

默认情况下,很有可能没有安装pcrePerl Compatible Regular Expressions)这个软件包。这个包是必须的,如果没有这个包,安装courier-maildrop将不能正常进行,关于pcre的安装,我们把它放到maildrop安装这一部分。


相关内容