yum install gcc-c++
/* pcre 需要 c++ */
tar -zxvf pcre-7.9.tar.gz
cd pcre-7.9
./configure --prefix=/usr/local/pcre-7.9 --libdir=/usr/local/lib/pcre --includedir=/usr/local/include/pcre --build=i686-pc-linux-gnu
make
make install
vim /etc/ld.so.conf
写入 /usr/local/lib/pcre
然后运行ldconfig
yum install mysql mysql-server mysql-devel db4-devel openssl gcc libxml2 libxml2-devel
/* 不装的话postfix编译出错 */
yum install pcre-devel
/* 建用户 */
groupadd -g 2001 postfix
useradd -g postfix -u 1001 -s /sbin/nologin -M postfix
groupadd -g 2002 postdrop
useradd -g postdrop -u 2002 -s /bin/false -M postdrop
/* 装postfix */
tar -zxvf postfix-2.5.6.tar.gz
cd postfix-2.5.6
make makefiles CCARGS='-DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\" \
-DHAS_PCRE -DHAS_MYSQL \
-I/usr/include/ -I/usr/local/include -I/usr/include/mysql/' \
AUXLIBS='-L/usr/local/lib -L/usr/lib/mysql -lmysqlclient -lpcre'
make
make install (make install的提问全部回车默认)
/* 启动mysql */
service mysqld start
/* 导入初始化extmail (可以改下密码)*/
tar -zxvf extman-1\[1\]\[1\].0.0.tar.gz
cd extman-1.0.0/docs/
mysql -u root -p < extmail.sql
mysql -u root -p < init.sql
cp mysql_*.cf /etc/postfix/
/* 装dovecot */
tar -zxvf dovecot-1.1.14.tar.gz
cd dovecot-1.1.14
./configure --prefix=/usr/local/dovecot --sysconfdir=/etc/dovecot --with-sql --with-sql-drivers --with-mysql --with-ssl=openssl
make
make install
/* 配置dovecot */
cd /etc/dovecot
cp dovecot-example.conf dovecot.conf
vi dovecot.conf
base_dir=/var/run/dovecot
protocols=imap imaps pop3 pop3s
listen=*
disable_plaintext_auth = no
ssl_disable = yes
mail_location = maildir:/var/vmail/%d/%n/Maildir
pop3_uidl_format=%08Xu%08Xv
auth default {
...
mechanisms = plain login digest-md5 cram-md5
# 去掉注释
passdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
...
# 去掉注释
userdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
...
socket listen {
...
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
# 注释掉
#passdb pam {
...
#}
/* 配置dovecot-sql.conf(extmail.sql导入了数据) */
cp dovecot-sql-example.conf dovecot-sql.conf
vi dovecot-sql.conf
driver = mysql
connect = host=localhost dbname=extmail user=extmail password=extmail
# MD5-CRYPT是与extmail兼容的密码保存方式
default_pass_scheme = MD5-CRYPT
# dovecot为SASL和POP3等服务提供密码验证的SQL语句
password_query = SELECT username AS user, password AS password \
FROM mailbox WHERE username = '%u' AND active = '1'
# dovecot提供POP3/IMAP服务需要的SQL语句
user_query = \
SELECT maildir as home,1001 as uid ,2001 as gid \
FROM mailbox WHERE username='%u' and active='1'
/* 创建符号链接 */
ln -s /usr/local/dovecot/sbin/dovecot /usr/bin/dovecot
/* 建dovecot用户 */
useradd -s /bin/false -d /dev/null dovecot
/* 配置 postfix */
mv /etc/aliases /etc/aliases.old
ln -s /etc/postfix/aliases /etc/aliases
/usr/bin/newaliases
vim /etc/postfix/main.cf
myhostname = mail.luilai.cn
mydomain = luilai.cn
myorigin = $mydomain
mydestination = $myhostname localhost localhost.$mydomain
mynetworks = 192.168.1.0/24 127.0.0.0/8
inet_interfaces = all
#注意这个,表示主机系统用户的邮件投递至用户目录下mbox文件(mailbox格式)
home_mailbox = mbox
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/local/man
sample_directory = /etc/postfix
#=====================Vritual Mailbox settings=========================
virtual_mailbox_base = /var/vmail/
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_uid_maps = static:1001
virtual_gid_maps = static:2001
virtual_transport = virtual
#====================QUOTA========================
message_size_limit = 52428800
mailbox_size_limit = 209715200
virtual_mailbox_limit = 209715200
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_overquota_bounce = yes
#====================SASL ESMTP Authenticat=================
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
#smtpd_sasl_path 注意这个是dovecot的sasl路径,与 dovecot.conf 里的对应
smtpd_sasl_path = private/auth
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_unknown_sender_domain,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_pipelining,
reject_unauth_destination
readme_directory = no
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
queue_directory = /var/spool/postfix
mail_owner = postfix
data_directory = /var/lib/postfix
/* 加入启动 */
vim /etc/rc.d/rc.local
/etc/rc.d/init.d/mysqld start
/usr/bin/newaliases
/usr/local/dovecot/sbin/dovecot
/usr/sbin/postfix start
yum install libpng libxslt libxslt-devel freetype freetype-devel gd gd-devel libmcrypt libmcrypt-devel
/* 安装apache */
mkdir /var/www/webroot
cd httpd-2.2.11
./configure --prefix=/usr/local/apache --enable-modules=so --enable-rewrite --enable-suexec --with-suexec-docroot=/var/www/ --with-suexec-caller=daemon
make ; make install
/* 看下是否正确安装了suexec */
/usr/local/apache/bin/suexec -V
/* 配置apache */
vim /usr/local/apache/conf/httpd.conf
ServerName http://www.example.com/
ServerAdmin abinxm@gmail.com
DocumentRoot "/var/www/webroot"
#Deny from all
allow from all
<Directory "/var/www/webroot">
DirectoryIndex index.html index.php index.htm
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
/* 安装php */
cd php-5.2.9
./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/lib/mysql/ --enable-ftp --with-libxml-dir=/usr/lib/ --with-expat-dir=/usr/lib --with-xsl=/usr/lib/ --enable-xslt --with-gd=/usr/ --with-jpeg-dir=/usr/lib/ --with-zlib-dir=/usr/lib/ --with-png --with-freetype-dir=/usr/lib/ --enable-mbstring --with-mcrypt=/usr/lib/
make ; make install
cd /usr/local/apache/modules/
chmod -R 755 .
chcon -t texrel_shlib_t /usr/local/apache/modules/libphp5.so
/* 防火墙设置 */
vim /etc/sysconfig/iptables
开 25 110 143 端口
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
/etc/rc.d/init.d/iptables restart
/* 安装phpmyadmin */
unzip phpMyAdmin-3.1.3-all-languages.zip
cd phpmyadmin
cp config.sample.inc.php config.inc.php
vim config.inc.php
$cfg['blowfish_secret'] = 'liulaiabinxm';
/* 改mysql密码 */
mysqladmin -u root -p password '新密码'
/* extmail 相关需要的包 */
tar -zxvf Time-HiRes-1.9719.tar.gz
cd Time-HiRes-1.9719
perl Makefile.PL
make
make test
make install
tar -zxvf File-Tail-0.99.3.tar.gz
cd File-Tail-0.99.3
perl Makefile.PL
make
make test
make install
yum install libart_lgpl-devel
yum install tcl-devel
tar -zxvf rrdtool-1.2.30.tar.tar
cd rrdtool-1.2.30
./configure --prefix=/usr/local/rrdtool
make ; make install
make site-perl-install
tar -zxvf GD-2.41.tar.gz
cd GD-2.41
perl Makefile.PL
make
make test
make install
tar -zxvf libart_lgpl-2.3.20.tar.gz
cd libart_lgpl-2.3.20
./configure
make ; make install
tar -zxvf Unix-Syslog-1.1.tar.gz
cd Unix-Syslog-1.1
perl Makefile.PL
make
make test
make install
/* 启动图形日志 */
cp -r /var/www/extsuite/extman/addon/mailgraph_ext/ /usr/local/mailgraph_ext/
ln -sv /usr/local/rrdtool/lib/perl/5.8.8/i386-linux-thread-multi/RRDs.pm /usr/lib/perl5/5.8.8
ln -sv /usr/local/rrdtool/lib/perl/5.8.8/i386-linux-thread-multi/auto/RRDs/RRDs.so /usr/lib/perl5/5.8.8/i386-linux-thread-multi/
/usr/local/mailgraph_ext/mailgraph-init start
/usr/local/mailgraph_ext/qmonitor-init start
/* 加入启动 */
vim /etc/rc.d/rc.local
/usr/local/mailgraph_ext/mailgraph-init start
/usr/local/mailgraph_ext/qmonitor-init start
mkdir /tmp/extman
chown -R postfix.postfix /tmp/extman/
cd /var/www
chown -R postfix.postfix .
/* 设置apache */
vim /usr/local/apache/conf/httpd.conf
NameVirtualHost *:80
<VirtualHost *:80>
#ServerName mail.example.com
ServerName mail.luilai.cn
DocumentRoot /var/www/webroot/
ScriptAlias /extman/cgi /var/www/extman/cgi
Alias /extman /var/www/extman/html
ScriptAlias /extmail/cgi /var/www/extmail/cgi
# dispatch.fcgi
Alias /extmail /var/www/extmail/html
Alias /phpmyadmin /var/www/webroot/phpmyadmin/
SuexecUserGroup postfix postfix
</VirtualHost>
mkdir /var/vmail
chown -R postfix.postfix /var/vmail/
改webman.cf及webmail.cf
配置路径位置 SYS_CONFIG SYS_LANGDIR SYS_TEMPLDIR
SYS_MAILDIR_BASE = /var/vmail/ 同postfix位置一致
vim /var/www/extman/webman.cf
# 验证码
#SYS_CAPTCHA_ON = 1
SYS_CAPTCHA_ON = 0
vim /var/www/extmail/webmail.cf
------------------------------------------------
之后加入maildrop来替换原有MDA~GOOGLE一下很多方式
之后extmail就可以有过滤功能,自动回复,黑白名单等。
maildrop有自己的语法结构,例如 xfilter "php -f a.php" 等来调用外部程序,写在.mailfilter文件中,控制收到邮件时调用某些程序,或者进行邮件的过滤,回复等等,当然MDA也有其他的替代方案
服务器搭建过程中权限设置很重要,否则经常会有错误出现,经常出现一些问题是因为缺少某模块引起
maildrop持久层访问要用到courier-authlib