CentOS-6.6大型企业 级邮件系统架设-postfix+dovecot+mysql+postfixadmin+roundcube+防病毒过滤
postfix(发件)+dovecot(收件)+mysql(数据库)+postfixadmin(帐号管理)+roundcube(WEB收发邮件) 为架设此邮件系统参考了很多资料,非常感谢各位大大的文章,文章大部分内容为大神们的内容集合 我的文库下载豆不够用了,请有需要下载的朋友,多多支持我,非常感谢
安装sasl的包,关闭selinux,建立软链接 ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
php修改php.ini里的配置文件以限制上传文件大小 如果使用了nginx,也需要更改nginx里的配置文件
先配好:samb dns 所需的文件还有以下所需的手动安装包放在: 链接:http://pan.http://www.wodefanwen.com//s/1gdIYPph 密码:x6bo
注意点: 1:关闭selinux
2:注意/var/lib/php/session的属组是不是vmail。默认为apache 3:注意安装sasl的所有包包括 python-saslwrapper,cyrus-sasl* 4:注意安装dovecot的包,不然可能提示不能找到mysql的驱动
5:如果他说管理邮箱不是有效的邮箱,可以更改main.cf里的email_check改成NO,后果未知 一.安装配置LAMP
②创建一个vmail用户,用作管理虚拟邮箱的文件夹 useradd -u 2000 -d /home/vmail -m -s /sbin/nologin vmail ③安装并配置LAMP环境
1 yum -y install httpd mysql mysql-devel mysql-server php php-pecl-Fileinfo php-mcrypt php-devel php-mysql php-common php-mbstring php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc pcre pcre-devel 2 整合Apache与PHP
[root@mail ~]# vi /etc/httpd/conf/httpd.conf
#增加下面现行
AddType application/x-httpd-php .php #apache解析php程序 PHPIniDir \指定php.ini配置文件路径 #修改这一行增加index.php
DirectoryIndex index.php index.html index.html.var #修改apache运行的用户和组,原来默认是apache User vmail Group vmail
增加ServerName localhost:80 vi /var/www/html/index.php
phpinfo(); ?>
启动httpd service httpd start 能看到php的info 二.安装配置postfixadmin 1 下载postfixadmin wget
http://nchc.dl.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.3.6/postfixadmin-2.3.6.tar.gz 解压缩并放入 /var/www/html里。改为postfixadmin 修改配置文件
root@mail html]# cd postfixadmin/ #修改前先备份一下配置文件
[root@mail postfixadmin]# cp config.inc.php config.inc.php.bak [root@mail postfixadmin]# cp setup.php setup.php.bak [root@mail postfixadmin]# vi config.inc.php #找到下面几行并修改 $CONF['configured'] = true;
$CONF['database_type'] = 'mysql'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'postfix'; $CONF['database_name'] = 'postfix';
$CONF['admin_email'] = 'jun@jungp.comm'; $CONF['encrypt'] = 'dovecot:CRAM-MD5';
$CONF['dovecotpw'] = \$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO'; $CONF['aliases'] = '1000'; $CONF['mailboxes'] = '1000'; $CONF['maxquota'] = '1000'; $CONF['fetchmail'] = 'NO'; $CONF['quota'] = 'YES';
$CONF['used_quotas'] = 'YES'; $CONF['new_quota_table'] = 'YES'; 为postfixadmin创建Mysql数据库与权限 service mysqld start
mysqladmin -u root password 'time-out' #给root用户增加密码 mysql -u root -p
mysql>create database postfix;
mysql>use postfix;选择数据
mysql>CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'postfix'; 切换到root
mysql>grant all on postfix.* to postfix@'localhost' identified by 'postfix'; mysql> flush privileges;
mysql>grant all on postfix.* to postfix@'%' identified by 'postfix';
mysql>SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;查看所有用户 mysql> revoke all on *.* from sss@localhost ; 取消sss用户的所有权限的功能
mysql>Delete from user where user = \ 彻底的删除用户 mysql>drop user 用户名; mysql>flush privileges ; 修改所有者与所有组
chown -R vmail.vmail postfixadmin/
注意/var/lib/php/session的属组是不是vmail。默认为apache 然后可以打开内部IP/postfixadmin/setup.php进行配置
如果提示can't encrypt password with dovecotpw, see error log for details 原因是因为postfixadmin中config.inc.php
// If you use the dovecot encryption method: where is the dovecotpw binary located? $CONF['dovecotpw'] = \如果提示 无法保存密码,没有加密,记得修改
$rcmail_config['password_dovecotpw'] = '/usr/bin/doveadm pw'; 已经变成了
$CONF['dovecotpw'] = \
然后增加管理员成功后,进入ip/postfixadmin/login.php用创建的账号登陆。 如果出现404,修改/var/lib/php/session目录的权限,改为vmail:vmail
三 配置postfix邮件发送代理
注:Postfix用CentOS6.4系统自带的,因为CentOS6.4里面的postfix包已经支持mysql 1.查看postfix版本 1 2
[root@mail postfixadmin]# rpm -qa | grep postfix postfix-2.6.6-2.2.el6_1.x86_64 2.配置postfix
[root@mail ~]# vi /etc/postfix/main.cf
#基本配置
myhostname = www.jungp.comm mydomain = jungp.comm myorigin = $mydomain inet_interfaces = all
mynetworks_style = host
mynetworks = 192.168.0.0/24, 127.0.0.0/8
#虚拟域名配置
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf # Additional for quota support 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_maildir_limit_message = Sorry, this user has exceeded their disk space quota, please try again later. virtual_overquota_bounce = yes
#Specify the user/group that owns the mail folders. I'm not sure if this is strictly necessary when using Dovecot's LDA.
virtual_uid_maps = static:2000 virtual_gid_maps = static:2000
#Specifies which tables proxymap can read: http://www.postfix.org/postconf.5.html#proxy_read_maps
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps
[root@mail ~]# postconf #检查配置文件是否有错误
3.创建Mysql脚本(注意用户名和密码、DBNAME,我这里全是postfix) (1).创建/etc/postfix/mysql_virtual_domains_maps.cf文件
[root@mail ~]# vi /etc/postfix/mysql_virtual_domains_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix