当前位置: 主页 > 服务器技术 > Mail服务器 > Postfix电子邮件系统完整安装教程

Postfix电子邮件系统完整安装教程

时间:2009-11-17来源:互联网 点击:
◆安装和配置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

默认情况下,很有可能没有安装pcre(Perl Compatible Regular Expressions)这个软件包。这个包是必须的,如果没有这个包,安装courier-maildrop将不能正常进行,关于pcre的安装,我们把它放到maildrop安装这一部分。
站长资讯网
.
分页: [1] [2] [3] [4] [5] [6] [7] [8] [9]
TAG: POSTFIX 电子邮件 教程 系统
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言