Mail邮件服务的搭建方法
来源:互联网 发布:ubuntu启动snmp 编辑:程序博客网 时间:2024/05/14 09:05
LAMP+Postfix+Dovecot+Postfixadmin+Roundcube
发邮箱 收邮箱 管理后台邮箱web页面
搭建Webmail邮件系统
LAMP --是支持php的网站环境
Postfix --是邮件发信通信程序
Dovecot --是邮件收集通信程序
Postfixadmin --邮箱域以及邮箱用户管理后台
Roundcube --是前台用户登陆邮箱收信发信web界面
一、 安装准备
1、 关闭SELinux
#暂时关闭selinux
setenforce 0
2、 配置iptables防火墙
#关闭iptables
/etc/init.d/iptables stop
3、 配置hostname
#暂时绑定hosts
hostname mail.ali.com
#修改network文件
vim /etc/sysconfig/network
HOSTNAME=mail.ali.com
#添加本地hosts
vim /etc/hosts
112.74.28.201 mail.ali.com
4、 配置软件源.
#添加第三方软件源,epel源
rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -q epel-release
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
在[epel]最后添加priority=11,作用是设置yum查询源的优先级为先官方后epel
vi /etc/yum.repos.d/epel.repo
priority=:q!11
yum makecache --重建缓存
二、 环境配置
1、 配置LAMP环境
#添加用户,并用yum安装LAMP相关软件
useradd -u 2000 -d /var/vmail -m -s /sbin/nologin vmail
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
#修改配置文件
#vim /etc/httpd/conf/httpd.conf
#修改以下参数
DirectoryIndex index.php index.html index.html.var
User vmail
Group vmail
3、 测试php解析
#新建测试PHP文件
#vim /var/www/html/index.php
<?php
phpinfo();
?>
#重启Apache
/etc/init.d/httpd restart
注:打开浏览器,输入你的IP,看到PHP详细信息,LAMP环境OK.
三、 配置postfixadmin ,邮箱域,邮箱用户管理后台
1、 下载 postfixadmin
#下载并改名并解压postfixadmin
cd /var/www/html
wget http://nchc.dl.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.92/postfixadmin-2.92.tar.gz && tar xvf postfixadmin-2.92.tar.gz && mv postfixadmin-2.92 postfixadmin
#安装dovecot,配置postfixadmin需要用到
yum install -y dovecot dovecot-devel dovecot-mysql
2、 修改配置文件
#备份配置文件
cd /var/www/html/postfixadmin &
cp config.inc.php config.inc.php.bak
cp setup.php setup.php.bak
#修改配置文件中以下参数
vim 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'] = 'postmaster@qy.com';
$CONF['encrypt'] = 'dovecot:CRAM-MD5';
$CONF['dovecotpw'] = "/usr/bin/doveadm pw";
$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';
#Mysql中建库并授权,后面配置都需要于现在授权信息一致
/etc/init.d/mysqld start
mysql> create database postfix;
mysql> grant all on postfix.* to postfix@'localhost' identified by 'postfix';
mysql> flush privileges;
#测试能否登录
mysql -upostfix -ppostfix
#修改所有者和所有组
chown -R vmail.vmail /var/www/html/postfixadmin/
chown -R vmail.vmail /var/lib/php/session/ --这里必须改所属,不然会登录不成功
3、 配置Postfixadmin
打开http://邮件服务器IP/postfixadmin/setup.php
如有报错,请检查以下项目:
配置文件是否修改正确
posfixadmin目录权限
PHP版本是否不支持
Mysql 是否正确启动
在网页的最下面设置初始密码,产生MD5校验码:
再将产生的MD5校验码复制到文件参数里
vim /var/www/html/postfixadmin/config.inc.php
$CONF['setup_password'] = 'fd16d423a537fa766a501d089823c8be:a23d10bad95c883c98c817ea37afaeae1d186624';
增加管理用户:
填写蓝色方框中初,始密码、管理用户、邮箱密码等添加管理用户.
如果不能添加管理用户,请检查以下项目:
Dovecot 是否已经安装
Dovecot 是否已经启动
/var/www/html/postfixadmin/congfig.inc.php 是否配置正确
出现新增管理员成功这几个字才算成功
登录http://邮件服务器IP/postfixadmin/login.PHP
如出现登陆后自动跳转到postfixadmin登录界面问题
#修改session文件权限
chown -R vmail.vmail /var/lib/php/session/
登陆后界面
新建域
新建邮箱
到此后台配置完成。
接下来配置前面webmail界面,发信,收信界面
四、 配置Postfix,发信配置
1、 安装postfix
#yum安装postfix
yum remove -y sendmail && yum install postfix
2、 配置postfix
修改postfix配置文件
#vim /etc/postfix/main.cf
#修改以下参数
myhostname = mail.free.com --这里是域名解析的名称
mydomain = free.com --这里也是域名.com
myorigin = $mydomain
inet_interfaces = all --允许所有
mynetworks_style = host
mynetworks = 192.168.18/24, 127.0.0.0/8 --这里是允许扫描IP段链接,有多个网段用逗号隔开
#添加以下参数
#虚拟域名配置
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
#SASL SUPPORT FOR CLIENTS
# Turns on sasl authorization
smtpd_sasl_auth_enable = yes
#Use dovecot for authentication
smtpd_sasl_type = dovecot
# Path to UNIX socket for SASL
smtpd_sasl_path = /var/run/dovecot/auth-client
#Disable anonymous login. We don't want to run an open relay for spammers.
smtpd_sasl_security_options = noanonymous
#Adds support for email software that doesn't follow RFC 4954.
#This includes most versions of Microsoft Outlook before 2007.
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
# TRANSPORT MAP
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
#vim /etc/postfix/master.cf
#注意flags前面的空格
dovecot unix - n n - - pipe--中间都有空格隔开
flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/dovecot-lda -f ${sender} -d ${recipient}
创建MySQL脚本
请注意user password dbname 要和上面配置postfixadmin中授权的一致。
#vim /etc/postfix/mysql_virtual_domains_maps.cf --链接邮箱发信用的参数
user = postfix --这里对应的是上面设置的
password = postfix
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'--1为可用,0为不可用
#optional query to use when relaying for backup MX
#query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '0' AND active = '1'
# vim /etc/postfix/mysql_virtual_alias_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
#vim /etc/postfix/mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'
#vim /etc/postfix/mysql_virtual_mailbox_limit_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'
五、 配置Dovecot ,收集配置
1、 修改配置文件
以下配置都是在原文件基础上修改
#vim /etc/dovecot/dovecot.conf
protocols = imap pop3
listen = *
dict {
quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
!include conf.d/*.conf
#vim /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login cram-md5
!include auth-sql.conf.ext
#vim /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:%hMaildir
mbox_write_locks = fcntl
#vim /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 lmtp {
}
}
service imap {
}
service pop3 {
}
service auth {
unix_listener auth-userdb {
mode = 0600
user = vmail
group = vmail
}
#新加下面一段,为smtp做认证
unix_listener auth-client { --客户端的参数
mode = 0600 --用户的权限,只能读权限
user = postfix --这里必须指定postfix
group = postfix
}
}
service auth-worker {
}
service dict {
unix_listener dict {
mode = 0600
user = vmail
group = vmail
}
}
#vim /etc/dovecot/conf.d/15-lda.conf
protocol lda {
mail_plugins = quota
postmaster_address = postmaster@qy.com #管理员邮箱
}
#vim /etc/dovecot/conf.d/20-imap.conf
protocol imap {
mail_plugins = quota imap_quota
}
#vim /etc/dovecot/conf.d/20-pop3.conf
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
mail_plugins = quota
}
#vim /etc/dovecot/conf.d/90-quota.conf
plugin {
quota_rule = *:storage=1G --允许容量1个G
}
plugin {
}
plugin {
quota = dict:User quota::proxy::quota
}
plugin {
}
2、 添加配置文件
以下配置文件为新添加文件
#vim /etc/dovecot/dovecot-sql.conf.ext
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfix
default_pass_scheme = CRAM-MD5
user_query = SELECT CONCAT('/var/vmail/', maildir) AS home, 2000 AS uid, 2000 AS gid, CONCAT('*:bytes=', quota) as quota_rule FROM mailbox WHERE username = '%u' AND active='1'
password_query = SELECT username AS user, password, CONCAT('/var/vmail/', maildir) AS userdb_home, 2000 AS userdb_uid, 2000 AS userdb_gid, CONCAT('*:bytes=', quota) as userdb_quota_rule FROM mailbox WHERE username = '%u' AND active='1'
#vim /etc/dovecot/dovecot-dict-sql.conf.ext
connect = host=localhost dbname=postfix user=postfix password=postfix
map {
pattern = priv/quota/storage
table = quota2
username_field = username
value_field = bytes
}
map {
pattern = priv/quota/messages
table = quota2
username_field = username
value_field = messages
}
六、 测试SMTP和POP3服务(通信协义)
1、 新建域及用户
新建邮箱域名
新建邮箱用户
2、 测试SMTP协议
#service dovecot restart --重启服务
#service postfix restart
#telnet localhost smtp --先用telnet 测试本地 smtp通信协议是否成功
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.ali.com ESMTP Postfix
ehlo qy.com
250-mail.ali.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN CRAM-MD5
250-AUTH=PLAIN LOGIN CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
3、 测试POP3协议
#telnet localhost pop3 --测试pop3是否成功
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user test@qy.com
+OK
pass test123456
+OK Logged in.
quit
+OK Logging out.
Connection closed by foreign host.
出错退出方法 Ctrl+】 quit
七、 配置Roundcubemail,邮箱登陆操作的界面
1、 下载roundcubemail
# 下载解压并改名
cd /var/www/html
wget https://downloads.sourceforge.net/project/roundcubemail/roundcubemail/1.0.6/roundcubemail-1.0.6.tar.gz
tar xvf roundcubemail-1.0.6.tar.gz && mv roundcubemail-1.0.6/ webmail
--这里会报错,把那个参数加上
2、 配置roundcubemail
#更改时区
#vim /etc/php.ini
date.timezone = Asia/Shanghai --必须使用这个参数,不然识别不了
如果是别的时区,也必须更改同一个时区,不然会有时间差
#更改所有者所有组
chown vmail.vmail -R /var/www/html/webmail/
#重启Apache
/etc/init.d/httpd restart
# Mysql授权,稍后配置需要用到
# mysql
mysql> CREATE DATABASE roundcubemail;
mysql> GRANT ALL ON roundcubemail.* TO roundcube @localhost IDENTIFIED BY 'roundcubemail';
mysql> FLUSH PRIVILEGES;
http://邮件服务器IP/webmail/installer.php 进行配置 图文配置详情
登陆 http://服务器IP/webmail 使用邮件系统
安装环境检测
打开http://邮件服务器IP/webmail/installer/index.php
- Checking PHP.in 必须OK
- Checking databases MySQL 必须OK
- 其它项目可选
页标及数据库
--这下面统一的也是域 的name
前几步中Mysql授权的roundcubemail相关信息
IMAP配置 –邮箱通信地址 (收信)
default_host —— 你的邮件服务器 写localhost
default_port —— IMAP端口143
user_domain —— domain 邮件域
POP3配置—邮件发信地址 (发信)
smtp_server —— 127.0.0.1 localhost
smtp_port —— smtp端口25
其他默认
用户相关配置
language —– 语言 zh_CN
pagesize —– 邮件列表每页显示多少封邮件
preview_pane —- 点击邮件标题时是否显示内容预览
htmleditor —- 写邮件时是否使用HTML编辑器还是纯文本方式,根据你的需要设置,其他默认。
点击CREATE CONFIG 会产生config.inc.php文件并保存在/var/www/html/webmail/config/目录下
设置完以后,在网页最上面会出现这么个参数,点击它
初始化数据库
验证登录
--上面的框是添邮箱,用于测试
登陆使用Webmail
http://192.168.1.202/webmail/
八、后续工作
1、 安全配置项目
#删除安装记录信息文件
rm -rf /var/www/html/webmail/installer/
# config 目录涉及账号信息
# 修改配置 使用目录容器 禁止访问
# vim /etc/httpd/conf/httpd.conf
<Location /webmail/config/>
Order allow,deny
Deny from all
</Location>
2、 开启相关服务
#开机启动
chkconfig httpd on
chkconfig mysqld on
chkconfig dovecot on
chkconfig postfix on
九、 常见错误指引
收信正常,发信异常。
error,send mail falt
请仔细检查 postfix 配置
连接IMAP失败。
发信正常,收信异常。
ERR Authentication failed. 认证失败
请仔细检查 dovecot 配置
webmail登录页面输入账号密码后会重新返回登录页面
#修改session所有者和所有组
chown -R vmail.vmail /var/lib/php/session/
#重启Apache
/etc/init.d/httpd restart
fatal: no SASL authentication mechanisms
#安装SASL组件
yum install cyrus-sasl* -y
can’t proc_open /usr/bin/doveadmpw
can’t encrypt password with dovecotpw
#查看postfixadmin配置文件,doveadm pw 之间有空格
vim /var/www/html/postfixadmin/config.inc.php
$CONF['dovecotpw'] = "/usr/bin/doveadm pw";
发邮箱 收邮箱 管理后台邮箱web页面
搭建Webmail邮件系统
LAMP --是支持php的网站环境
Postfix --是邮件发信通信程序
Dovecot --是邮件收集通信程序
Postfixadmin --邮箱域以及邮箱用户管理后台
Roundcube --是前台用户登陆邮箱收信发信web界面
一、 安装准备
1、 关闭SELinux
#暂时关闭selinux
setenforce 0
2、 配置iptables防火墙
#关闭iptables
/etc/init.d/iptables stop
3、 配置hostname
#暂时绑定hosts
hostname mail.ali.com
#修改network文件
vim /etc/sysconfig/network
HOSTNAME=mail.ali.com
#添加本地hosts
vim /etc/hosts
112.74.28.201 mail.ali.com
4、 配置软件源.
#添加第三方软件源,epel源
rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -q epel-release
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
在[epel]最后添加priority=11,作用是设置yum查询源的优先级为先官方后epel
vi /etc/yum.repos.d/epel.repo
priority=:q!11
yum makecache --重建缓存
二、 环境配置
1、 配置LAMP环境
#添加用户,并用yum安装LAMP相关软件
useradd -u 2000 -d /var/vmail -m -s /sbin/nologin vmail
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
#修改配置文件
#vim /etc/httpd/conf/httpd.conf
#修改以下参数
DirectoryIndex index.php index.html index.html.var
User vmail
Group vmail
3、 测试php解析
#新建测试PHP文件
#vim /var/www/html/index.php
<?php
phpinfo();
?>
#重启Apache
/etc/init.d/httpd restart
注:打开浏览器,输入你的IP,看到PHP详细信息,LAMP环境OK.
三、 配置postfixadmin ,邮箱域,邮箱用户管理后台
1、 下载 postfixadmin
#下载并改名并解压postfixadmin
cd /var/www/html
wget http://nchc.dl.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.92/postfixadmin-2.92.tar.gz && tar xvf postfixadmin-2.92.tar.gz && mv postfixadmin-2.92 postfixadmin
#安装dovecot,配置postfixadmin需要用到
yum install -y dovecot dovecot-devel dovecot-mysql
2、 修改配置文件
#备份配置文件
cd /var/www/html/postfixadmin &
cp config.inc.php config.inc.php.bak
cp setup.php setup.php.bak
#修改配置文件中以下参数
vim 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'] = 'postmaster@qy.com';
$CONF['encrypt'] = 'dovecot:CRAM-MD5';
$CONF['dovecotpw'] = "/usr/bin/doveadm pw";
$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';
#Mysql中建库并授权,后面配置都需要于现在授权信息一致
/etc/init.d/mysqld start
mysql> create database postfix;
mysql> grant all on postfix.* to postfix@'localhost' identified by 'postfix';
mysql> flush privileges;
#测试能否登录
mysql -upostfix -ppostfix
#修改所有者和所有组
chown -R vmail.vmail /var/www/html/postfixadmin/
chown -R vmail.vmail /var/lib/php/session/ --这里必须改所属,不然会登录不成功
3、 配置Postfixadmin
打开http://邮件服务器IP/postfixadmin/setup.php
如有报错,请检查以下项目:
配置文件是否修改正确
posfixadmin目录权限
PHP版本是否不支持
Mysql 是否正确启动
在网页的最下面设置初始密码,产生MD5校验码:
再将产生的MD5校验码复制到文件参数里
vim /var/www/html/postfixadmin/config.inc.php
$CONF['setup_password'] = 'fd16d423a537fa766a501d089823c8be:a23d10bad95c883c98c817ea37afaeae1d186624';
增加管理用户:
填写蓝色方框中初,始密码、管理用户、邮箱密码等添加管理用户.
如果不能添加管理用户,请检查以下项目:
Dovecot 是否已经安装
Dovecot 是否已经启动
/var/www/html/postfixadmin/congfig.inc.php 是否配置正确
出现新增管理员成功这几个字才算成功
登录http://邮件服务器IP/postfixadmin/login.PHP
如出现登陆后自动跳转到postfixadmin登录界面问题
#修改session文件权限
chown -R vmail.vmail /var/lib/php/session/
登陆后界面
新建域
新建邮箱
到此后台配置完成。
接下来配置前面webmail界面,发信,收信界面
四、 配置Postfix,发信配置
1、 安装postfix
#yum安装postfix
yum remove -y sendmail && yum install postfix
2、 配置postfix
修改postfix配置文件
#vim /etc/postfix/main.cf
#修改以下参数
myhostname = mail.free.com --这里是域名解析的名称
mydomain = free.com --这里也是域名.com
myorigin = $mydomain
inet_interfaces = all --允许所有
mynetworks_style = host
mynetworks = 192.168.18/24, 127.0.0.0/8 --这里是允许扫描IP段链接,有多个网段用逗号隔开
#添加以下参数
#虚拟域名配置
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
#SASL SUPPORT FOR CLIENTS
# Turns on sasl authorization
smtpd_sasl_auth_enable = yes
#Use dovecot for authentication
smtpd_sasl_type = dovecot
# Path to UNIX socket for SASL
smtpd_sasl_path = /var/run/dovecot/auth-client
#Disable anonymous login. We don't want to run an open relay for spammers.
smtpd_sasl_security_options = noanonymous
#Adds support for email software that doesn't follow RFC 4954.
#This includes most versions of Microsoft Outlook before 2007.
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
# TRANSPORT MAP
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
#vim /etc/postfix/master.cf
#注意flags前面的空格
dovecot unix - n n - - pipe--中间都有空格隔开
flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/dovecot-lda -f ${sender} -d ${recipient}
创建MySQL脚本
请注意user password dbname 要和上面配置postfixadmin中授权的一致。
#vim /etc/postfix/mysql_virtual_domains_maps.cf --链接邮箱发信用的参数
user = postfix --这里对应的是上面设置的
password = postfix
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'--1为可用,0为不可用
#optional query to use when relaying for backup MX
#query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '0' AND active = '1'
# vim /etc/postfix/mysql_virtual_alias_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
#vim /etc/postfix/mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'
#vim /etc/postfix/mysql_virtual_mailbox_limit_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'
五、 配置Dovecot ,收集配置
1、 修改配置文件
以下配置都是在原文件基础上修改
#vim /etc/dovecot/dovecot.conf
protocols = imap pop3
listen = *
dict {
quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
!include conf.d/*.conf
#vim /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login cram-md5
!include auth-sql.conf.ext
#vim /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:%hMaildir
mbox_write_locks = fcntl
#vim /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 lmtp {
}
}
service imap {
}
service pop3 {
}
service auth {
unix_listener auth-userdb {
mode = 0600
user = vmail
group = vmail
}
#新加下面一段,为smtp做认证
unix_listener auth-client { --客户端的参数
mode = 0600 --用户的权限,只能读权限
user = postfix --这里必须指定postfix
group = postfix
}
}
service auth-worker {
}
service dict {
unix_listener dict {
mode = 0600
user = vmail
group = vmail
}
}
#vim /etc/dovecot/conf.d/15-lda.conf
protocol lda {
mail_plugins = quota
postmaster_address = postmaster@qy.com #管理员邮箱
}
#vim /etc/dovecot/conf.d/20-imap.conf
protocol imap {
mail_plugins = quota imap_quota
}
#vim /etc/dovecot/conf.d/20-pop3.conf
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
mail_plugins = quota
}
#vim /etc/dovecot/conf.d/90-quota.conf
plugin {
quota_rule = *:storage=1G --允许容量1个G
}
plugin {
}
plugin {
quota = dict:User quota::proxy::quota
}
plugin {
}
2、 添加配置文件
以下配置文件为新添加文件
#vim /etc/dovecot/dovecot-sql.conf.ext
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfix
default_pass_scheme = CRAM-MD5
user_query = SELECT CONCAT('/var/vmail/', maildir) AS home, 2000 AS uid, 2000 AS gid, CONCAT('*:bytes=', quota) as quota_rule FROM mailbox WHERE username = '%u' AND active='1'
password_query = SELECT username AS user, password, CONCAT('/var/vmail/', maildir) AS userdb_home, 2000 AS userdb_uid, 2000 AS userdb_gid, CONCAT('*:bytes=', quota) as userdb_quota_rule FROM mailbox WHERE username = '%u' AND active='1'
#vim /etc/dovecot/dovecot-dict-sql.conf.ext
connect = host=localhost dbname=postfix user=postfix password=postfix
map {
pattern = priv/quota/storage
table = quota2
username_field = username
value_field = bytes
}
map {
pattern = priv/quota/messages
table = quota2
username_field = username
value_field = messages
}
六、 测试SMTP和POP3服务(通信协义)
1、 新建域及用户
新建邮箱域名
新建邮箱用户
2、 测试SMTP协议
#service dovecot restart --重启服务
#service postfix restart
#telnet localhost smtp --先用telnet 测试本地 smtp通信协议是否成功
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.ali.com ESMTP Postfix
ehlo qy.com
250-mail.ali.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN CRAM-MD5
250-AUTH=PLAIN LOGIN CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
3、 测试POP3协议
#telnet localhost pop3 --测试pop3是否成功
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user test@qy.com
+OK
pass test123456
+OK Logged in.
quit
+OK Logging out.
Connection closed by foreign host.
出错退出方法 Ctrl+】 quit
七、 配置Roundcubemail,邮箱登陆操作的界面
1、 下载roundcubemail
# 下载解压并改名
cd /var/www/html
wget https://downloads.sourceforge.net/project/roundcubemail/roundcubemail/1.0.6/roundcubemail-1.0.6.tar.gz
tar xvf roundcubemail-1.0.6.tar.gz && mv roundcubemail-1.0.6/ webmail
--这里会报错,把那个参数加上
2、 配置roundcubemail
#更改时区
#vim /etc/php.ini
date.timezone = Asia/Shanghai --必须使用这个参数,不然识别不了
如果是别的时区,也必须更改同一个时区,不然会有时间差
#更改所有者所有组
chown vmail.vmail -R /var/www/html/webmail/
#重启Apache
/etc/init.d/httpd restart
# Mysql授权,稍后配置需要用到
# mysql
mysql> CREATE DATABASE roundcubemail;
mysql> GRANT ALL ON roundcubemail.* TO roundcube @localhost IDENTIFIED BY 'roundcubemail';
mysql> FLUSH PRIVILEGES;
http://邮件服务器IP/webmail/installer.php 进行配置 图文配置详情
登陆 http://服务器IP/webmail 使用邮件系统
安装环境检测
打开http://邮件服务器IP/webmail/installer/index.php
- Checking PHP.in 必须OK
- Checking databases MySQL 必须OK
- 其它项目可选
页标及数据库
--这下面统一的也是域 的name
前几步中Mysql授权的roundcubemail相关信息
IMAP配置 –邮箱通信地址 (收信)
default_host —— 你的邮件服务器 写localhost
default_port —— IMAP端口143
user_domain —— domain 邮件域
POP3配置—邮件发信地址 (发信)
smtp_server —— 127.0.0.1 localhost
smtp_port —— smtp端口25
其他默认
用户相关配置
language —– 语言 zh_CN
pagesize —– 邮件列表每页显示多少封邮件
preview_pane —- 点击邮件标题时是否显示内容预览
htmleditor —- 写邮件时是否使用HTML编辑器还是纯文本方式,根据你的需要设置,其他默认。
点击CREATE CONFIG 会产生config.inc.php文件并保存在/var/www/html/webmail/config/目录下
设置完以后,在网页最上面会出现这么个参数,点击它
初始化数据库
验证登录
--上面的框是添邮箱,用于测试
登陆使用Webmail
http://192.168.1.202/webmail/
八、后续工作
1、 安全配置项目
#删除安装记录信息文件
rm -rf /var/www/html/webmail/installer/
# config 目录涉及账号信息
# 修改配置 使用目录容器 禁止访问
# vim /etc/httpd/conf/httpd.conf
<Location /webmail/config/>
Order allow,deny
Deny from all
</Location>
2、 开启相关服务
#开机启动
chkconfig httpd on
chkconfig mysqld on
chkconfig dovecot on
chkconfig postfix on
九、 常见错误指引
收信正常,发信异常。
error,send mail falt
请仔细检查 postfix 配置
连接IMAP失败。
发信正常,收信异常。
ERR Authentication failed. 认证失败
请仔细检查 dovecot 配置
webmail登录页面输入账号密码后会重新返回登录页面
#修改session所有者和所有组
chown -R vmail.vmail /var/lib/php/session/
#重启Apache
/etc/init.d/httpd restart
fatal: no SASL authentication mechanisms
#安装SASL组件
yum install cyrus-sasl* -y
can’t proc_open /usr/bin/doveadmpw
can’t encrypt password with dovecotpw
#查看postfixadmin配置文件,doveadm pw 之间有空格
vim /var/www/html/postfixadmin/config.inc.php
$CONF['dovecotpw'] = "/usr/bin/doveadm pw";
阅读全文
0 0
- Mail邮件服务的搭建方法
- mail邮件发送添加附件的方法
- MAIL 邮件服务(一)
- MAIL 邮件服务 (二)
- Mail,邮件服务(一):邮件服务的历史及运作机制
- Mail,邮件服务(一):邮件服务的历史及运作机制
- Flask-Mail邮件的配置以及发送附件的方法
- java mail使用qq邮箱发邮件的配置方法
- java mail使用qq邮箱发邮件的配置方法
- linux发不出邮件 重新安装mail服务
- Springboot mail邮件服务功能学习
- James(Java Apache Mail Enterprise Mail)+Javamail构建邮件服务
- DevTrack的MAIL服务
- Spring的Mail邮件发送
- webmail邮件服务器搭建_U-Mail邮件服务器
- Mail,邮件服务(三):POP3认证机制,以及中继的规则
- 应用层之E-mail服务及javaMail邮件发送的知识总结
- Spring mail 邮件服务及其参数配置(properties文件的读写)
- URL路径
- Tornado框架09-异步02
- 微信小程序个人开发心得
- 回文质数
- MyEclipse实用操作
- Mail邮件服务的搭建方法
- VTP配置服务器server和客户端client,客户端会学习服务器端的VLAN
- 链表各类操作详解
- Java IO
- CF 333 B.Chips CodeForces【伪容斥】
- 数据库基础
- spring注解@CrossOrigin不起作用的原因之一
- [并查集] HDU 4496
- 关于骨折