================================================
准备DNS
1. 添加域名的MX记录解析
2. 添加postfixadmin的二级域名A记录解析,部署postfixadmin用于邮件用户管理(添加、删除、禁用用户、修改用户密码等);
3. 添加webmail的二级域名A记录解析,部署roundcute作为Web mail界面
================================================
更改hostname为解析地址为当前服务器IP的域名
方法:
step1(重启有效).
vi /etc/sysconfig/network
改:HOSTNAME=你的域名
step2(立即生效)
hostname 你的域名
==================================================
安装php
yum install php*
php需要的扩展等根据安装过程中的需要安装即可
安装mysql
yum install mysql
yum install mysql-server
yum install mysql-devel
service mysqld start
mysql_secure_installation(用于初始化密码等一系列安全设置)
安装apache
yum install httpd
==================================================
安装postfix
yum install postfix
查看postfix是否支持dovecot和mysql
postconf -a
找到结果中的dovecot
postconf -m
找到结果中的mysql
=================================================
安装dovecot
yum install dovecot
yum install dovecot-mysql
=================================================
为安装Postfixadmin准备数据库
mysql -uroot -p
mysql>CREATE DATABASE postfix;
mysql>CREATE USER ‘postfix’@’localhost’ IDENTIFIED BY ‘postfixadmin’;
mysql>GRANT ALL PRIVILEGES ON `postfix` . * TO ‘postfix’@’localhost’;
mysql>FLUSH PRIVILEGES;
mysql>quit
==================================================
安装postfixadmin
wget http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.3.6/postfixadmin-2.3.6.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpostfixadmin%2Ffiles%2Fpostfixadmin%2Fpostfixadmin-2.3.6%2F&ts=1374647407&use_mirror=nchc
ar xzf postfixadmin-2.3.6.tar.gz -C /var/www
mv mv /var/www/postfixadmin-2.3.6 /var/www/postfixadmin
修改postfixadmin配置文件
vi config.inc.php
根据上一步创建的数据库修改一下参数:
$CONF[‘configured’] = true;
$CONF[‘default_language’] = ‘cn’;
$CONF[‘database_type’] = ‘mysql’;
$CONF[‘database_host’] = ‘localhost’;
$CONF[‘database_user’] = ‘postfix’;
$CONF[‘database_password’] = ‘postfixadmin’;
$CONF[‘database_name’] = ‘postfix’;
$CONF[‘used_quotas’] = ‘YES’;
$CONF[‘quota’] = ‘YES’;
修改/etc/httpd/conf/httpd.conf
增加ServerName为上面设置的postfixadmin二级域名的虚拟主机;重启httpd服务;
浏览器输入postfixadmin.域名/setup.php,自动创建需要的表结构;
在页面下方两个输入框输入两遍Setup password,点击“Generate password hash”,
把生成的一个配置项$CONF[‘setup_password’] = …… 添加到config.inc.php中;
在页面下方的表单中输入刚才的Setup password,管理员邮件地址(如:master@域名)和管理员密码;
点击“新增”,看到提示新增成功后,即可转入”postfixadmin.域名”,用管理员邮箱地址和密码登录;
点击域名清单菜单下“新建域”,输入域名描述等信息后点击“新增”;看到提示新增成功。
===================================================================
配置 Postfix
/etc/postfix/main.cf的内容如下:
smtpd_banner = $myhostname ESMTP $mail_name
biff = no
# appending .domain is the MUA’s job.
append_dot_mydomain = no
readme_directory = no
#Enabling SMTP for authenticated users, and handing off authentication to Dovecot
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
myhostname = 域名
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost
relayhost =
mynetworks = 127.0.0.1(在这里把服务器的所有IP地址列出来,用空格分开)
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#Handing off local delivery to Dovecot’s LMTP, and telling it where to store mail
virtual_transport = lmtp:unix:private/dovecot-lmtp
#Virtual domains, users, and aliases
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
========================
/etc/postfix/mysql-virtual-alias-maps.cf文件内容如下:
user = postfix
password = postfixadmin
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address=’%s’ AND active = ‘1’
========================
/etc/postfix/mysql-virtual-mailbox-domains.cf文件内容如下:
user = postfix
password = postfixadmin
hosts = localhost
dbname = postfix
query = SELECT 1 FROM domain WHERE domain=’%s’ AND active = ‘1’
========================
/etc/postfix/mysql-virtual-mailbox-maps.cf文件内容如下:
user = postfix
password = postfixadmin
hosts = localhost
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username=’%s’ AND active = ‘1’
==================================================================================
配置Dovecot
/etc/dovecot/dovecot.conf内容如下:
==================================
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap pop3 lmtp
dict {
#quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
#expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}
!include conf.d/*.conf
!include_try local.conf
==================================
/etc/dovecot/dovecot-sql.conf内容如下:
=====================================
driver=mysql
connect = host=localhost dbname=postfix user=postfix password=postfixadmin
default_pass_scheme = MD5
password_query = SELECT username as user, password FROM mailbox WHERE username = ‘%u’ and active=’1′
=====================
/etc/dovecot/conf.d/10-master.conf内容:
service imap-login {
inet_listener imap {
}
inet_listener imaps {
}
}
service pop3-login {
inet_listener pop3 {
}
inet_listener pop3s {
}
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
service imap {
}
service pop3 {
}
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
unix_listener auth-userdb {
mode = 0600
user = vmail
#group = vmail
}
# Auth process is run as this user.
user = dovecot
}
service auth-worker {
user = vmail
}
service dict {
unix_listener dict {
}
}
====================
/etc/dovecot/conf.d/auth-sql.conf.ext
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}
====================
/etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth=no
auth_mechanisms = plain login
!include auth-sql.conf.ext
===========================
/etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:/var/mail/vhosts/%d/%n
mail_privileged_group = mail
注释掉10-ssl.conf文件中的全部内容
==============================
创建邮件域所需的文件夹并设置权限
mkdir -p /var/mail/vhosts/域名
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /var/mail
chown -R vmail:vmail /var/mail
chown -R vmail:vmail /var/mail/vhosts
========================================
重启postfix和dovecot
登录postfixadmin,添加虚拟邮件用户
至此已经可以用outlook或Foxmail之类的MUA访问邮箱了。
========================================
安装Roundcube Webmail
下载
wget http://downloads.sourceforge.net/project/roundcubemail/roundcubemail/0.9.2/roundcubemail-0.9.2.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Froundcubemail%2Ffiles%2Froundcubemail%2F0.9.2%2F&ts=1374656368&use_mirror=garr
tar zxvf roundcubemail-0.9.2.tar.gz -C /var/www
cd /var/www
mv roundcubemail-0.9.2 webmail
chmod -R root:root webmail
在/etc/httpd/conf/httpd.conf中配置指向roundcubemail的虚拟主机mail.域名,重启httpd服务。
浏览器打开:mail.域名/installer/开始安装配置;
$rcmail_config[‘default_host’]设置缺省域名后,登录界面不需要输入域名。
$rcmail_config[‘username_domain’]设置域名后,登录界面的用户名处不需要输入@及其后的域名(输入完整邮箱地址同样可以登录)。
缺少的php扩展需要安装,可以到http://rpm.pbone.net/下载。
intl可以用yum install php-intl安装;
mcrypt扩展需要下载php源码,whereis php-config命令找到php-config路径,然后:
进入mcrypt扩展源码目录:
./configure –with-php-config=/usr/bin/php-config
make
make install
然后在php.ini中增加一行
extension=mcrypt.so
另外,PHP.ini需要指明时区
date.timezone = Asia/Shanghai
重启httpd服务。
==================
配置Roundcube插件
password:更改密码插件
在config/main.inc.php中配置:
$rcmail_config[‘plugins’] = array(‘password’);
复制plugins/password目录中的config.inc.php.dist为config.inc.php
修改两行内容:
$rcmail_config[‘password_db_dsn’] = ‘mysql://postfix:postfixadmin@localhost/postfix’;
$rcmail_config[‘password_query’] = ‘UPDATE `mailbox` SET `password` = %c, modified=now() WHERE `username` = %u LIMIT 1’;
保存即可。