搭建Postfix邮件系统

 

centos/redhat 上安装邮件系统 (extmail) V0.1

一、简介:


本文以最简单,最方便的方法在centos 5.2 上安装一个全功能的邮件系统,此文适合REDHAT 所有系列,在文中,能用RPM 安装的,我们将采用rpm 安装,如果rpm 没有的,我们将创建自己的rpm 。部分软件简介:
1
AMP ---apacheweb 服务) 、mysql (数据库)、php (非必需)的简称
2
postfix --mta 邮件系统核心
3
courier-authlib --一个为courier-imapmaildropsasl2 提供用户信息的后台进程序
4
courier-imap --提供pop3,pop3s,imap,imaps 服务的程序
5
amavisd-new --提供内容过滤
6
clamav -- 著名的杀毒软件
7
extmail --一个著名的webmail 程序
8
extman --与extmail 集成的后台管理程序
9
slockd --一个基于smtp 阶段的反垃圾邮件程序
10
vhmgr --由本文作者编写,用于管理apacheftpmysql 的虚拟主机管理程序。

安装环境:
centos 5.2
域名机器名:mail.byeid.org
域名:byeid.org

二、安装系统

安装系统时,选择“customize software selection” (自定义安装),在package group selection 对话框里选择:

[*]base

[*]devlopment libraries

[*]development tools

[*]editors

[*]text-base internet

其它不选择。
setup agnet (或进入系统后运行setup) 里选择firewall configuration security level SELinux 改为disabled ,目的是为了避免在安装调试时产生不必要的麻烦,在系统安装完成后,可以自己去调试安全部分,在这里将不作详细介绍。
配置yum ,在本文中使用的是网通线路,所以选择了http://mirrors.ta139.com/ 作为安装镜像。

[root@localhost ~]# cd /etc/yum.repos.d/

[root@localhost yum.repos.d]# wget http://mirrors.ta139.com/CentOS-Base.repo.ta139

[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak

[root@localhost yum.repos.d]# mv CentOS-Base.repo.ta139 CentOS-Base.repo

 

三、安装软件

 

1 、安装AMP

 

  [root@localhost ~]# yum -y install httpd httpd-devel mysql mysql-devel mysql-server php php-xml php-cli php-pdo php-mbstring php-mcrypt php-gd php-common php-devel php-mysql

修改启动配置并启动

[root@localhost ~]# chkconfig --level 345  mysqld on

[root@localhost ~]# chkconfig --level 345  httpd on

[root@localhost ~]# service mysqld start

[root@localhost ~]# service httpd start

2 、安装phpmyadmin( 可要可不要)

注意:可以选择自己需要的版本

[root@localhost ~]# wget http://nchc.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.11.9-all-languages-utf-8-only.tar.bz2

[root@localhost ~]# tar xjf phpMyAdmin-2.11.9-all-languages-utf-8-only.tar.bz2

[root@localhost ~]# mv phpMyAdmin-2.11.9-all-languages-utf-8-only /var/www/html/phpmyadmin

[root@localhost phpmyadmin]# cp config.sample.inc.php config.inc.php

编辑config.inc.php 改为下面, 字符串是任意的。

$cfg['blowfish_secret'] = 'skssiwksksie'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

进入phpmyadmin 请马上修改mysql root 用户的密码。

3 、导入extman 后台数据库

extmail/extman/slockd 上传到服务器,可以使用ftp/winscp 上传

[root@localhost ~]# tar zxf extman-0.2.5b1.tar.gz

[root@localhost ~]# cd extman-0.2.5b1/docs/

[root@localhost docs]# mysql -uroot -p <extmail.sql

Enter password:

[root@localhost docs]# mysql -uroot -p <init.sql

Enter password:

[root@localhost ~]# /usr/bin/mysqladmin -u root password 'admin'

[root@localhost ~]# /usr/bin/mysql -u root –p

Enter password:

mysql> grant all privileges on extmail.* to extmail identified by "extmail";

如何使用了phpmyadmin 改了root 密码,记得输入密码,如果密码为空,请按回车。

4 RPM 简介

下面我们将采用rpm 的方式安装软件
/usr/src/redhat/SPEC spec
文件夹,通常是rpm 文件夹
/usr/src/redhat/RPMS
是生成rpm 的文件,下面还有i368,i486 等子文件夹,一般我们用i386 架构
/usr/src/redhat/SOURCE
源文件文件夹
为了安装时切换目录的方便,我们将目录存放到一个shell 变量里。

[root@localhost ~]# export RPMS=/usr/src/redhat/RPMS

[root@localhost ~]# export SOURCE=/usr/src/redhat/SOURCES

[root@localhost ~]# export SPEC=/usr/src/redhat/SPECS

在下面安装过程中,大家要记住cd $RPMS cd /usr/src/redhat/RPMS 的目的是一样的,只是shell 变量的替换。

5 、安装authlib

A 、安装依懒的包

[root@localhost ~]# yum -y install postgresql-devel expect libtool-ltdl-devel

[root@localhost ~]# wget http://prdownloads.sourceforge.net/courier/courier-authlib-0.61.0.tar.bz2

[root@localhost ~]# tar xjf courier-authlib-0.61.0.tar.bz2

[root@localhost ~]# cd courier-authlib-0.61.0

[root@localhost courier-authlib-0.61.0]# cp courier-authlib.spec $SPEC

[root@localhost courier-authlib-0.61.0]# cd ..

[root@localhost ~]# cp courier-authlib-0.61.0.tar.bz2 $SOURCE

[root@localhost ~]# cd $SPEC

[root@localhost SPECS]# rpmbuild -bb courier-authlib.spec (创建rpm 文件)

B 、安装生成的rpm

[root@localhost SPECS]# cd $RPMS/i386

[root@localhost i386]# rpm -ivh courier-authlib-0.61.0-1.i386.rpm

[root@localhost i386]# rpm -ivh courier-authlib-devel-0.61.0-1.i386.rpm

[root@localhost i386]# rpm -ivh courier-authlib-mysql-0.61.0-1.i386.rpm

C 、配置authlibdaemon

[root@localhost i386]# cd /etc/authlib/

[root@localhost authlib]# mv authdaemonrc authdaemonrc.bak

[root@localhost authlib]# vim authdaemonrc

输入下面的内容:

authmodulelist="authmysql"

authmodulelistorig="authmysql"

daemons=10

authdaemonvar=/var/spool/authdaemon

DEBUG_LOGIN=2

DEFAULTOPTIONS="wbnodsn=1"

LOGGEROPTS=""

D 、配置authmysqlrc

[root@localhost authlib]# mv authmysqlrc authmysqlrc.bak

[root@localhost authlib]# vim authmysqlrc

输入下面的内容:

MYSQL_SERVER    localhost

MYSQL_USERNAME  extmail

MYSQL_PASSWORD  extmail

MYSQL_PORT      0

MYSQL_SOCKET    /var/lib/mysql/mysql.sock

MYSQL_OPT       0

MYSQL_DATABASE  extmail

 

MYSQL_SELECT_CLAUSE     SELECT username,password,"",uidnumber,gidnumber,/

                         CONCAT('/home/data/domains/',homedir),               /

                        CONCAT('/home/data/domains/',maildir),               /

                        quota,                                          /

                        name                                             /

                        FROM mailbox                                    /

                        WHERE username = '$(local_part)@$(domain)'

 

 

E 、启动authlib

[root@localhost ~]# service courier-authlib start

Starting Courier authentication services: authdaemond

[root@localhost ~]# chmod 777 /var/spool/authdaemon/

6 、安装courier-imap

由于courier-imap 不能用root 身份生成rpm 那么我们新建一个普通用户,并创建一个rpm 环境

[root@localhost ~]# useradd biokee

软件包依懒需要安装openldap-serverrpm 创建完成后可以删除

[root@localhost ~]# yum -y install openldap-servers

[root@localhost ~]# su – biokee

[yiyou@localhost ~]$ mkdir -p rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

[yiyou@localhost ~]$ vim  ~/.rpmmacros

输入内容:

%_topdir /home/biokee/rpm

[yiyou@localhost ~]$ wget http://prdownloads.sourceforge.net/courier/courier-imap-4.4.1.tar.bz2

[yiyou@localhost ~]$ cp courier-imap-4.4.1.tar.bz2 rpm/SOURCES/

[yiyou@localhost ~]$ tar xjf courier-imap-4.4.1.tar.bz2

[yiyou@localhost ~]$ cd courier-imap-4.4.1

[yiyou@localhost courier-imap-4.4.1]$ cp courier-imap.spec ../rpm/SPECS/

[yiyou@localhost courier-imap-4.4.1]$ cd ../rpm/SPECS/

编辑courier-imap.spec 将下面的内容:

%if %suse_version

BuildPreReq: rpm >= 3.0.5 /usr/bin/sed openldap2 openldap2-devel %([ %{suse_version} -gt 819 ] && echo /usr/include/fam.h)

%else

BuildPreReq: rpm >= 4.0.2 sed /usr/include/fam.h openldap-devel openldap-servers

%endif

改为:

%if %suse_version

BuildPreReq: rpm >= 3.0.5 /usr/bin/sed openldap2 openldap2-devel

%else

BuildPreReq: rpm >= 4.0.2 sed openldap-devel openldap-servers

%endif

创建rpm

[yiyou@localhost SPECS]$ rpmbuild -bb courier-imap.spec

完成rpm 后,输入exit 退出当前用户。

[root@localhost ~]# rpm -ivh /home/biokee/rpm/RPMS/i386/courier-imap-4.4.1-1.i386.rpm

[root@localhost ~]# service courier-imap start

7 、安装cyrus-sasl

A 、安装SRPM

[root@localhost ~]# wget ftp://194.199.20.114/linux/fedora/updates/8/SRPMS/cyrus-sasl-2.1.22-8.fc8.src.rpm

[root@localhost ~]# rpm -ivh cyrus-sasl-2.1.22-8.fc8.src.rpm

[root@localhost ~]# cd $SPEC

编辑cyrus-sasl.spec 将下面:

# Bundling copy of Berkeley DB, for sasldb support.

topdir=`pwd`

pushd db-%{db_version}/build_unix

../dist/configure /

        --with-mutex=UNIX/fcntl --disable-shared --enable-static --with-pic /

        --with-uniquename=_cyrus_sasl_sasldb_rh /

        --prefix=${topdir}/db-instroot /

        --includedir=${topdir}/db-instroot/include /

        --libdir=${topdir}/db-instroot/lib

改为:

# Bundling copy of Berkeley DB, for sasldb support.

topdir=`pwd`

pushd db-%{db_version}/build_unix

../dist/configure /

        --with-mutex=UNIX/fcntl --disable-shared --enable-static --with-pic /

        --with-uniquename=_cyrus_sasl_sasldb_rh /

        --prefix=${topdir}/db-instroot /

        --includedir=${topdir}/db-instroot/include /

        --libdir=${topdir}/db-instroot/lib /

        --with-authdaemond=/var/spool/authdaemon

B 、生成rpm

[root@localhost SPECS]# rpmbuild -bb cyrus-sasl.spec

[root@localhost RPMS]# cd $RPMS/i386

[root@localhost i386]# rpm -e --nodeps cyrus-sasl-devel cyrus-sasl-plain cyrus-sasl cyrus-sasl-lib (如果这些包存在)

[root@localhost i386]# rpm -ihv cyrus-sasl-lib-2.1.22-8.i386.rpm

[root@localhost i386]# rpm -ihv cyrus-sasl-2.1.22-8.i386.rpm

[root@localhost i386]# rpm -ihv cyrus-sasl-plain-2.1.22-8.i386.rpm

[root@localhost i386]# rpm -ihv cyrus-sasl-devel-2.1.22-8.i386.rpm

C 、配置sasl2

创建/usr/lib/sasl2/smtpd.conf 文件,输入下面的内容:

pwcheck_method:authdaemond

log_level:3

mech_list:PLAIN LOGIN

authdaemond_path:/var/spool/authdaemon/socket

8 、安装postfix

A 、下载软件包

[root@localhost i386]# cd

[root@localhost ~]# wget http://ftp.wl0.org/official/2.5/SRPMS/postfix-2.5.4-2.src.rpm

[root@localhost ~]# rpm -ivh postfix-2.5.4-2.src.rpm

[root@localhost ~]# cd $SPEC

编辑postfix.spec 修改下面的选项

%define distribution rhel-5.0

%define with_mysql_redhat 1

%define with_sasl         2

%define with_vda          1

B 、创建rpm

[root@localhost SPECS]# rpmbuild -bb postfix.spec

[root@localhost RPMS]# cd $RPMS/i386

[root@localhost i386]# rpm -ivh postfix-2.5.4-2.rhel4.i386.rpm

C 、切换mta

[root@localhost i386]# alternatives --config mta (选择2postfix

[root@localhost i386]# rpm -e sendmail

[root@localhost i386]# cd /usr/sbin/

[root@localhost sbin]# mv sendmail sendmail.bak

[root@localhost sbin]# newaliases

[root@localhost sbin]# ln -s sendmail.postfix sendmail

D 、配置postfix

[root@localhost ~]# cd /etc/postfix/

[root@localhost postfix]# mv main.cf main.cf.bak

[root@localhost postfix]# vim main.cf

输入下面的内容:

queue_directory = /var/spool/postfix

command_directory = /usr/sbin

daemon_directory = /usr/libexec/postfix

data_directory = /var/lib/postfix

mail_owner = postfix

unknown_local_recipient_reject_code = 550

debug_peer_level = 2

debugger_command =

         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin

         ddd $daemon_directory/$process_name $process_id & sleep 5

 

sendmail_path = /usr/sbin/sendmail.postfix

newaliases_path = /usr/bin/newaliases.postfix

mailq_path = /usr/bin/mailq.postfix

setgid_group = postdrop

html_directory = /usr/share/doc/postfix-2.5.2-documentation/html

manpage_directory = /usr/share/man

sample_directory = /etc/postfix

readme_directory = /usr/share/doc/postfix-2.5.2-documentation/readme

alias_database = hash:/etc/postfix/aliases

alias_maps = hash:/etc/postfix/aliases

myhostname = mail.byeid.org

mydomain = byeid.org

mydestination = $myhostname

smtpd_banner = byeid.org ESMTP Mail System

message_size_limit = 14680064

virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf

virtual_mailbox_base = /home/data/domains

virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf

virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_limit_maps.cf

virtual_transport = maildrop:

maildrop_destination_recipient_limit = 1

 

#sasl

smtpd_sasl_auth_enable = yes

smtpd_sasl2_auth_enable = yes

smtpd_sasl_security_options = noanonymous

broken_sasl_auth_clients = yes

 

smtpd_recipient_restrictions =

  permit_mynetworks,

  permit_sasl_authenticated,

  reject_unauth_destination,

  reject_unauth_pipelining,

  reject_invalid_hostname

复制extman/docs 目录的cf 文件到/etc/postfix

[root@localhost postfix]# cp /root/extman-0.2.5b1/docs/mysql_virtual_* .

因为配置文件的用户、密码与数据库时一样,所以不用修改。

[root@localhost postfix]# service postfix start

9 、安装maildrop

A 、下载生成RPM

[root@localhost postfix]# cd

[root@localhost ~]# wget http://prdownloads.sourceforge.net/courier/maildrop-2.0.4.tar.bz2

[root@localhost ~]# cp maildrop-2.0.4.tar.bz2 $SOURCE

[root@localhost ~]# tar xjf maildrop-2.0.4.tar.bz2

[root@localhost ~]# cd maildrop-2.0.4

[root@localhost maildrop-2.0.4]# cp maildrop.spec $SPEC

[root@localhost maildrop-2.0.4]# cd $SPEC

编辑maildrop.spec 把下面:

BuildRequires: /usr/include/fam.h gdbm-devel pcre-devel

改为:

BuildRequires:  gdbm-devel pcre-devel

把下面:

%configure --with-devel --enable-userdb --enable-maildirquota  /

--enable-syslog=1 --enable-trusted-users='root mail daemon postmaster qmaild mmdf' /

--enable-restrict-trusted=0 /

--enable-sendmail=/usr/sbin/sendmail

改为:

%configure --with-devel --enable-userdb --enable-maildirquota /

--enable-syslog=1 --enable-trusted-users='root mail daemon postmaster qmaild mmdf' /

--enable-restrict-trusted=0 --enable-sendmail=/usr/sbin/sendmail /

--enable-authlib

B 、创建安装maildrop rpm

[root@localhost SPECS]# yum -y install pcre-devel

[root@localhost SPECS]# rpmbuild -bb maildrop.spec

[root@localhost SPECS]# cd $RPMS/i386

[root@localhost i386]# rpm -ivh maildrop-2.0.4-1.i386.rpm

C 、添加虚似用户及创建目录

[root@localhost i386]# cd

[root@localhost ~]# groupadd -g 1000 vgroup

[root@localhost ~]# useradd -g 1000 -u 1000 -s /sbin/nologin -d /dev/null vuser

编辑/etc/postfix/master.cf ,加入下面的内容:

maildrop unix -     n      n     -     -     pipe

  flags=DRhu user=vuser argv=/usr/bin/maildrop -d ${user}@${nexthop} ${recipient} ${user} ${extension} ${nexthop}

D 、创建邮件存储目录

[root@localhost ~]# mkdir -p /home/data/domains/extmail.org/postmaster

[root@localhost ~]# maildirmake /home/data/domains/extmail.org/postmaster/Maildir

[root@localhost ~]# chown -R vuser:vgroup /home/data/domains/   

E 、测试maildrop

[root@localhost ~]# echo "test" | maildrop -V 10 -d postmaster@extmail.org

maildrop: authlib: groupid=1000

maildrop: authlib: userid=1000

maildrop: authlib: logname=postmaster@extmail.org, home=/home/data/domains/extmail.org/postmaster, mail=/home/data/domains/extmail.org/postmaster/Maildir/

maildrop: Changing to /home/data/domains/extmail.org/postmaster

Message start at 0 bytes, envelope sender=postmaster@extmail.org

maildrop: Attempting .mailfilter

maildrop: Delivery complete.

出现上以信息说明authlibmaildrop 工作正常

F 、测试pop3

[root@localhost ~]# telnet localhost 110

Trying 127.0.0.1...

Connected to localhost.localdomain (127.0.0.1).

Escape character is '^]'.

+OK Hello there.

user postmaster@extmail.org

+OK Password required.

pass extmail

+OK logged in.

list

+OK POP3 clients that break here, they violate STD53.

1 6

.

retr 1

+OK 6 octets follow.

test

.

quit

+OK Bye-bye.

Connection closed by foreign host.

G 、测试postfix

[root@localhost ~]# perl -MMIME::Base64 -e 'print encode_base64("postmaster/@extmail.org");'

cG9zdG1hc3RlckBleHRtYWlsLm9yZw==

[root@localhost ~]# perl -MMIME::Base64 -e 'print encode_base64("extmail");'               

ZXh0bWFpbA==

[root@localhost ~]# service postfix restart (重启一下)

[root@localhost ~]# telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.localdomain (127.0.0.1).

Escape character is '^]'.

220 byeid.org ESMTP Mail System

ehlo test.com

250-mail.byeid.org

250-PIPELINING

250-SIZE 14680064

250-VRFY

250-ETRN

250-AUTH LOGIN PLAIN

250-AUTH=LOGIN PLAIN

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

auth login

334 VXNlcm5hbWU6

cG9zdG1hc3RlckBleHRtYWlsLm9yZw==

334 UGFzc3dvcmQ6

ZXh0bWFpbA==

235 2.7.0 Authentication successful

quit

221 2.0.0 Bye

Connection closed by foreign host

10 、安装amavisd-new

编辑/etc/yum.repos.d/CentOS-Base.repo 加入下面的内容:

[dag]

name=Dag RPM Repostory for Red Hat Enterprise Linux

baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag

gpgcheck=1

enabled=1

gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

[root@localhost ~]# yum -y install clamav clamav-db clamd clamav-devel amavisd-new

编辑/etc/amavisd.conf ,修改下面的内容

$mydomain = 'byeid.com';   # a convenient default for other settings

$myhostname = 'mail.byeid.com';  # must be a fully-qualified domain name!

把下面内容去掉注释,并修改为下面

  ['ClamAV-clamd',

   /&ask_daemon, ["CONTSCAN {}/n", "/tmp/clamd.socket"],

   qr//bOK$/, qr//bFOUND$/,

   qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],

[root@localhost ~]# usermod -G amavis clamav

[root@localhost ~] #   /usr/sbin/amavisd debug

[root@localhost ~] #  /usr/sbin/amavisd stop

[root@localhost ~]# service clamd start

/etc/postfix/master.cf 增加下面的内容:

smtp-amavis  unix    -    -    n    -    4    smtp

        -o smtp_data_done_timeout=1200

        -o smtp_send_xforward_command=yes

        -o disable_dns_lookups=yes

 

127.0.0.1:10025 inet    n    -    n    -    -    smtpd

        -o content_filter=

        -o local_recipient_maps=

        -o relay_recipient_maps=

        -o smtpd_restriction_classes=

        -o smtpd_helo_restrictions=

        -o smtpd_sender_restrictions=

        -o smtpd_recipient_restrictions=permit_mynetworks,reject

        -o mynetworks=127.0.0.0/8

        -o strict_rfc821_envelopes=yes

        -o smtpd_error_sleep_time=0

        -o smtpd_soft_error_limit=1001

        -o smtpd_hard_error_limit=1000

        -o receive_override_options=no_header_body_checks

/etc/postfix/main.cf 加入下面的内容

content_filter = smtp-amavis:[localhost]:10024

[root@localhost ~]# service postfix reload

11 、安装extman/extmail

A 、配置apache

修改/etc/httpd/conf/httpd.conf ,将下面的选项改为:

User vuser

Group vgroup

[root@localhost ~]# cd /etc/httpd/conf.d/

[root@localhost conf.d]# vim extmail.conf

输入下面的内容:

Alias /extman/cgi/ /var/www/extsuite/extman/cgi/

Alias /extman /var/www/extsuite/extman/html/

 

 

<Location "/extman/cgi">

SetHandler cgi-script

Options +ExecCGI

</Location>

 

# config for ExtMail

Alias /extmail/cgi/ /var/www/extsuite/extmail/cgi/

Alias /extmail /var/www/extsuite/extmail/html/

 

<Location "/extmail/cgi">

SetHandler cgi-script

Options +ExecCGI

</Location>

[root@localhost ~]# mkdir /var/www/extsuite

[root@localhost ~]# tar zxf extmail-1.0.5b1.tar.gz

[root@localhost ~]# cp -r extmail-1.0.5b1 /var/www/extsuite/extmail

[root@localhost ~]# cp -r extman-0.2.5b1 /var/www/extsuite/extman

B 、配置extmail 参数

[root@localhost ~]# cd /var/www/extsuite/extmail/

[root@localhost extmail]# cp webmail.cf.default webmail.cf

修改webmail.cf 下面的选项        

SYS_SESS_DIR = /tmp/extmail

SYS_MAILDIR_BASE = /home/data/domains

SYS_MYSQL_USER = extmail

SYS_MYSQL_PASS = extmail

C 、配置extman 参数

[root@localhost extmail]# cd /var/www/extsuite/extman/

修改webman.cf 下面的选项:

SYS_MAILDIR_BASE = /home/data/domains

D 、创建session 目录

[root@localhost extman]# mkdir /tmp/{extman,extmail}

[root@localhost extman]# chown vuser:vgroup /tmp/ext*

E 、配置后台日志分析工具

[root@localhost addon]# cd /var/www/extsuite/extman/addon/

[root@localhost addon]# cp -r mailgraph_ext /usr/local/

将下面的内容加入/etc/rc.local

/usr/local/mailgraph_ext/mailgraph-init start

/usr/local/mailgraph_ext/qmonitor-init start

安装所依懒的软件包

[root@localhost mailgraph_ext]# yum -y install rrdtool perl-rrdtool perl-GD perl-File-Tail

F 、启动后台进程

[root@localhost mailgraph_ext]# /usr/local/mailgraph_ext/qmonitor-init start

Starting queue statistics grapher: qmonitor

[root@localhost mailgraph_ext]# /usr/local/mailgraph_ext/mailgraph-init start

Starting mail statistics grapher: mailgraph_ext

G 、访问extmail/extman

打开浏览器,输入http://your_ip_address/extmail 注意:your_ip_address 为你实际的ip ( 前端用户登录界面)
第一个测试用户为:postmaster 密码:extmail 域:extmail.org

打开浏览器,输入http://your_ip_address/extman   ( 管理后台地址)
extman root
用户为:root@extmail.org 密码为:extmail*123*

注意:进入系统后要修改密码及找回密码的提示问题、答案。

但这,可以正常发送邮件,如果收不到邮件,可以查看日志,可能会看到 Command output: pipe: fatal: pipe_command: execvp /usr/local/bin/maildrop: No such file or directory ,如果这样,就是 maildrop 路径出问题了,可以复制 maildrop 文件到  /usr/local/bin/ 下面,之后应该就可以正常收发邮件了。

如果出现 Unix::Syslog not found, please install it first! (in cleanup) Undefined subroutine &Ext::Logger::do_closelog called at /var/www/extsuite/extmail/libs/Ext/Logger.pm line 86. ,则是没有安装 perl-Unix-Syslog ,只需要用:

[root@BIOKEE ~]# yum -y install perl-Unix-Syslog

 

说明:创建的虚拟用户和虚拟域在服务器上的 /home/data/domains 下面,所有的域在 domains 下,而用户则在对应的域名下面。

如果要用 foxmail 或者 outlook 接收邮件,则需要在 pop3 邮件帐号那写全程,例如:默认情况下写的是 zhouy ,这样是不行的,需要写全 zhouy@.byeid.com ,因为是虚拟域和虚拟帐号。

 

创建虚拟主机:

编辑 /etc/httpd/conf/httpd.conf ,在最后面添加下面的东西

<VirtualHost *:80>

     ServerAdmin admin@byeid.com

     DocumentRoot /var/www/extsuite/extmail/html/    

     ServerName mail.byeid.com

     ErrorLog /var/log/mail/ErrorLog                      

  CustomLog /var/log/mail/CustomLog   common    

</VirtualHost>

 

 

 

 

 

 

 

 

 


说明:

DocumentRoot /var/www/extsuite/extmail/html/     邮件服务器的路径

ErrorLog /var/log/mail/ErrorLog                  错误日志存放地,必须存在

CustomLog /var/log/mail/CustomLog   common    真确日志存放地,必须存在

12 、安装slockd

slockd 是一个基于策略的垃圾邮件软件,很多用户反映使用后,反垃圾效果非常明显,但是有部分用户由于对该软件的使用,特性不了解,而产生了很多麻烦。
所在在此建议,如果你对该软件不了解,或者系统里的垃圾邮件少,可以暂时不安装。

[root@localhost ~]# tar zxf slockd-0.2.tar.gz

[root@localhost ~]# cp -r slockd-0.2 /usr/local/slockd

[root@localhost ~]# cd /usr/local/slockd

将下面的内容加入/etc/rc.local

/usr/local/slockd/slockd-init start

[root@localhost slockd]# vim config/main.cf (编辑slockd/config/main.cf )修改下面的内容

setsid          1  (去掉注释,让程序成为后台进程)

修改/etc/postfix/main.cf 将原先的内容:

smtpd_recipient_restrictions =

  permit_mynetworks,

  permit_sasl_authenticated,

  reject_unauth_destination,

  reject_unauth_pipelining,

  reject_invalid_hostname

改为:

smtpd_recipient_restrictions =

  permit_mynetworks,

  permit_sasl_authenticated,

  reject_unauth_destination,

  reject_unauth_pipelining,

  reject_invalid_hostname,

  check_policy_service inet:127.0.0.1:10030

重载postfix 配置文件

[root@localhost slockd]# service postfix reload

13 、安装vhmgr

vhostmgr 是一款虚似主机管理软件,可以对apachepure-ftpmysql 进行管理,是管理员的好帮手。
vhostmgr
有如下特点:
a
、只需要安装一个apacheftp
b
apache 不需要以root 运行。用普通用户身份运行就行了。
c
、可以通过web 进行重读配置文件,系统关机,等操作
d
、采用apache+cgi 方式运行,容易配置,安装、使用文档详细。
e
、如果你是一个管理员,每为一个用户添加主机而麻烦,使用该软件将为你节省大量时间。
f
、开通apache,ftp,mysql 都是即时生效。
更多功能,更多方便,使用后才知道!!!
g
、支持freebsd ,linux 等多种系统

vhmgr
还有一个重要特点:开源并完全免费使用。

软件地址

为了不重复劳功,将不再次叙述。

apache
改变运行id 后,php session 功能将会出现问题,因为session 的存储目录权限没有跟着改变为新的,只要执行下面的命令即可解决问题。

[root@localhost slockd]# chown -R vuser:vgroup /var/lib/php/session/

 

14 邮件的备份

先创建一个备份邮件的用户, 例如 bkup@byeid.com ,然后在编辑 /etc/postfix/main.cf 文件,添加一行 always_bcc = bkup@byeid.com ,记得这里 always_bcc 一定要仅挨最左边,不要留空格,这样一来, 每个进入邮件系统的邮件都会在 bkup@byeid.com 邮箱内存跟。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值