◆安装和配置postfixadmin
       1、安装postfixadmin
         Postfixadmin是 postfix邮件系统的web管理工具,有了这个工具,管理和维护用户帐号就方便多了。假如不用工具,就需要手动修改数据库,谁愿意这样做?安装postfixadmin比较简单,解压包postfixadmin-2.2.11.tar.gz,然后把它移动到某个目录下,其过程如下:
[root@mail1 ~]# cd /root
[root@mail1 ~]# tar zxvf postfixadmin-2.2.11.tar.gz
[root@mail1 ~]# mv postfixadmin-2.2.11 /var/www/postfixadmin
[root@mail1 ~]# chown -R vmail:vmail /var/www/postfixadmin

 

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

[root@mail1 postfixadmin]# cp config.inc.php.sample config.ini.php

[root@mail1 ~]# cd /var/www/postfixadmin/
[root@mail1 postfixadmin]# ll
total 220
drwxr-xr-x 2 vmail vmail  4096 Jan  7  2005 ADDITIONS
drwxr-xr-x 2 vmail vmail  4096 Feb 19 05:04 admin
-rw-r--r-- 1 vmail vmail  1195 Jan  7  2005 BACKUP_MX.TXT
-rw-r--r-- 1 vmail vmail 10155 Jan  7  2005 CHANGELOG.TXT
-rw-r--r-- 1 vmail vmail  4733 Feb 20 06:14 config.inc.php
-rw-r--r-- 1 vmail vmail  4694 Jan  7  2005 config.inc.php.sample
-rw-r--r-- 1 vmail vmail  3774 Jan  7  2005 create-alias.php
-rw-r--r-- 1 vmail vmail  7379 Feb 19 05:04 create-mailbox.php
-rw-r--r-- 1 vmail vmail  4910 Jan  7  2005 DATABASE_MYSQL.TXT
-rw-r--r-- 1 vmail vmail  4955 Jan  7  2005 DATABASE_PGSQL.TXT

[root@mail1 postfixadmin]# more config.inc.php

$CONF['postfix_admin_url'] = '';

$CONF['postfix_admin_path'] = '';

$CONF['default_language'] = 'cn';

$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'postfixadmin';
$CONF['database_name'] = 'postfix';
$CONF['database_prefix'] = '';

$CONF['admin_email'] = 'postmaster@change-this-to-your.domain.tld';

$CONF['smtp_server'] = 'localhost';
$CONF['smtp_port'] = '25';

$CONF['encrypt'] = 'md5crypt';      

注:与courier-authlib的配置文件authmysqlrc以及Webmail(Extmail)的文件Webmail.cf都有关联,这三者一定要一致。

$CONF['page_size'] = '10';

$CONF['domain_path'] = 'YES';                ------这样修改后postfixadmin添加用户时生成的目录 为/var/mailbox/mail.sery.com/benly

$CONF['domain_in_mailbox'] = 'NO';

$CONF['aliases'] = '1000';
$CONF['mailboxes'] = '1000';
$CONF['maxquota'] = '1000';

$CONF['quota_multiplier'] = '1024000';

$CONF['transport'] = 'NO';

$CONF['vacation'] = 'NO';

$CONF['vacation_domain'] = 'autoreply.change-this-to-your.domain.tld';

$CONF['alias_control'] = 'NO';

$CONF['special_alias_control'] = 'YES';

$CONF['logging'] = 'YES';

$CONF['show_header_text'] = 'NO';
$CONF['header_text'] = ':: Postfix Admin ::';

$CONF['show_footer_text'] = 'YES';
$CONF['footer_text'] = 'Return to change-this-to-your.domain.tld';
$CONF['footer_link'] = 'http://change-this-to-your.domain.tld';

$CONF['welcome_text'] = <<<EOM
Hi,

Welcome to your new account.
EOM;

 

 

 

         被改动过的内容用红色粗体标记出来了,这些值可根据实际情况作修改。下一个需要修改的文件是 create-mailbox.php:

[root@mailserv2 postfixadmin]# more  create-mailbox.php
//
// Postfix Admin
// by Mischa Peters
// Copyright (c) 2002 - 2005 High5!
// License Info: [url]http://www.postfixadmin.com/?file=LICENSE.TXT[/url]
…………………………………… 省略若干…………………………………… .
$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行的位置插入),见下面:
 
   $tQuota = $CONF['maxquota'];
        system("sudo /usr/sbin/maildirmake.sh $fDomain ".$_POST['fUsername']);
         if ($fMail == "on")
         {
 
       这里有一个疑惑 :为什么在不同的目录下有相同的文件呢?这是出于安全方面的原因。Postfixadmin把管理员分成2种:超级邮件系统管理员和一般邮件系统管理员,在admin目录里的是超级管理员的目录,
      而普通的邮件系统管理员在/var/www/postfixadmin这个目录。在上述过程中,
      我们使用了 2个shell脚本/usr/sbin/maildirdel.sh及/usr/sbin/maildirmake.sh,这些脚本的内容和作用将在后面安装配置maildrop时一并给出。
(2) 在mysql中创建postfix所需的数据库。
 
[root@mailserv2 ~] # cd /var/www/postfixadmin 
 

[root@mail1 postfixadmin]# mysql -u root -p password < DATABASE_MYSQL.TXT                   


              
(3) 测试postfixadmin。先修改 apache的配置文件/usr/local/apache/conf/httpd.conf,加入如下内容:
<IfModule dir_module>
    DirectoryIndex index.html index.php index.cgi
</IfModule>

Alias /postfixadmin /var/www/postfixadmin
<Directory /var/www/postfixadmin>
     Options Indexes FollowSymLinks
     AllowOverride None
     Order allow,deny
     Allow from all
</Directory>
 
<Directory "/var/www/postfixadmin/admin">
    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
</Directory>
保存后重起 apache服务(/usr/local/apache/bin/apachectl restart),然后在别的机器的浏览器输入邮件服务器的url如:http://192.168.20.206/postfixadmin