实战部署MySQL用户认证的Postfix邮件系统(3)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:
实战部署Postfix+MySQL+Dovecot+Postfixadmin+Extmail邮件系统(3)
-----构建开源邮件系统系列
如果您对本系列文章感兴趣,可以通过点击以下链接查看全文:


六、 Dovecot 的安装与配置
Dovecot 是一个开源的 IMAP POP3 服务器,它支持  MySQL   PostgreSQL  LDAP  PAM  等的认证,这方面基本上和  Courier-IMAP  是相同的。但是在设置上却比 Courier-IMAP 简单了许多。同时 Dovecot 可以做 imap/pop3  mda 角色的工作。执行如下命令完成 Dovecot 安装。
[root@mail html]# yum install dovecot

安装完成后,就开始配置工作,编辑  /etc/dovecot.conf  为以下内容

[root@mail html]# cat /etc/dovecot.conf 
base_dir=/var/run/dovecot 
protocols=imap pop3 
listen=* 
disable_plaintext_auth = no 
ssl_disable = yes 
mail_location = maildir:/var/spool/mail/%d/%n 

auth  default { 
    mechanisms = PLAIN LOGIN CRAM-MD5 DIGEST-MD5 
        passdb sql { 
                        args = /etc/dovecot-mysql.conf 
        } 
        userdb sql { 
                        args = /etc/dovecot-mysql.conf 
        } 
        socket listen { 
                        client { 
                                    path = /var/run/dovecot/auth-client 
                                    mode = 0660 
                                    user = postfix 
                                    group = postfix 
                                } 
        } 

first_valid_uid = 1000 
[root@mail html]#
编辑  /etc/dovecot-mysql.conf  为以下内容,这个配置文件主要用于连接 MySQL 数据库。
[root@mail html]# cat /etc/dovecot-mysql.conf 
driver = mysql 
connect = host=/var/lib/mysql/mysql.sock dbname=postfix user=postfix password=postfix 
default_pass_scheme = MD5 
password_query = SELECT password FROM mailbox WHERE username = '%u' 
user_query = SELECT maildir, 1000 AS uid, 1000 AS gid FROM mailbox WHERE username = '%u' 
[root@mail html]#
启动 dovecot 服务,并设为开机自动运行。
[root@mail html]# /etc/init.d/dovecot start 
Starting Dovecot Imap:                                                                         [    OK    ] 
[root@mail html]# chkconfig --level 35 dovecot on
七、 Extmail 的配置
通过上面的设置我们已经完成了一个基本的邮件服务器系统,它能够发送、接收邮件,能够对用户进行身份验证等工作。用户可以使用 Outlook Foxmail 之类的工具来发送和接收邮件。
对于用户临时查看一下邮件,他们就不需要将邮件下载到本机查看。这个时候我们可以为用户搭建一个 Webmail 吧。
基于我们已经完成的邮件服务器,我们只需要给用户提供一个基于浏览器访问的 mail 工具就可以了。这类工具有很多: OpenWebmail Extmail 等。
Extmail  是一个以 perl 语言编写,面向大容量 /ISP 级应用,免费的高性能 Webmail 软件, ExtMail 套件用于提供从浏览器中登录、使用邮件系统的 Web 操作界面,它以 GPL 版权释出,设计初衷是希望设计一个适应当前高速发展的 IT 应用环境,满足用户多变的需求,能快速进行开发、改进和升级,适应能力强的 webmail 系统。
对于国内的电子邮件系统来说,无论是从系统功能、易用性还是中文化等方面, ExtMail  平台都是一个相当不错的选择。 Extmail  套件可以提供给普通邮件用户使用,而 Extman 套件可以提供给邮件系统的管理员使用。更多关于 Extmail 的介绍请 baidu 之。
Extmail 安装也比较简单先在 /var/www 先创建一个用于存放 Extmail 的目录 extsuite ,然后将下载回来的 extmail 解压到该目录下,并将解压后的目录修改为 extmail
[root@mail ~]# mkdir /var/www/extsuite 
[root@mail ~]# tar -zxvf extmail-1.2.tar.gz -C /var/www/extsuite/ 
[root@mail extsuite]# mv extmail-1.2/ extmail
接下来编辑配置文件,使其能够和 Postfix 邮件服务器结合起来提供服务,修改部分配置信息如下:
[root@mail extsuite]# cp extmail/webmail.cf. default extmail/webmail.cf 
SYS_USER_LANG = en_US                                #默认语言,修改为zh_CN 
SYS_USER_CHARSET = utf-8                            #Web界面默认的字符集,修改为gb2312 
SYS_MIN_PASS_LEN = 2                                 #最小的密码长度,修改为6 
SYS_MFILTER_ON = 1                                    #打开过滤器 
SYS_NETDISK_ON = 1                                   #打开网络硬盘 
SYS_AUTH_TYPE = mysql                              #使用MySQL数据库的认证方式 
SYS_MAILDIR_BASE = /home/domains           #邮箱的存储路径,修改为实际路径/var/spool/mail 

SYS_MYSQL_USER = db_user                          #访问MySQL数据库的用户名,改为postfix 
SYS_MYSQL_PASS = db_pass                         #使用的密码,改为postfix 
SYS_MYSQL_DB = extmail                             #访问的库,改为postfix 
SYS_MYSQL_HOST = localhost 
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock 

SYS_MYSQL_TABLE = mailbox 
SYS_MYSQL_ATTR_USERNAME = username 
SYS_MYSQL_ATTR_DOMAIN = domain 
SYS_MYSQL_ATTR_PASSWD = password 
#SYS_MYSQL_ATTR_CLEARPW = clearpwd         #修改密码相关行 
SYS_MYSQL_ATTR_QUOTA = quota 
SYS_MYSQL_ATTR_NDQUOTA = netdiskquota 
SYS_MYSQL_ATTR_HOME = homedir 
SYS_MYSQL_ATTR_MAILDIR = maildir 

SYS_G_ABOOK_TYPE = file                             #使用文件方式来保存全局通讯录 
SYS_G_ABOOK_FILE_PATH = /var/www/extsuite/extmail/globabook.cf 
SYS_G_ABOOK_FILE_LOCK = 1 
SYS_G_ABOOK_FILE_CONVERT = 0 
SYS_G_ABOOK_FILE_CHARSET = utf-8              #全局通讯录的字符集,改为gb2312
apache 主配置文件中添加如下内容:
[root@mail ~]# vim /etc/httpd/conf/httpd.conf 
…… 
NameVirtualHost 10.1.1.120:80 
<VirtualHost 10.1.1.120:80> 
ServerName mail.xifeng.com 
ServerAdmin admin@xifeng.com 
DocumentRoot /var/www/extsuite/extmail/html/ 
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi 
Alias /extmail /var/www/extsuite/extmail/html 
Alias /postfixadmin /var/www/html/postfixadmin 
SuexecUserGroup postfix postfix 
</VirtualHost> 
<Directory  "/var/www/extsuite/extmail/html"
Order allow,deny 
Allow from all 
</Directory>
修改 extsuite 目录的用户和组的权限为 postfix
[root@mail ~]# chown -R postfix.postfix /var/www/extsuite/
编辑完成后保存重启 apache 服务:
[root@mail extsuite]# /etc/init.d/httpd restart 
Stopping httpd:                                                                                        [    OK    ] 
Starting httpd:                                                                                        [    OK    ]
安装 Extmail 所需的 perl 模块,如果你没有安装,通常使用 web 登录的过程中会有提示。
[root@mail ~]# rpm -ivh perl-Unix-Syslog-0.100-1.2.el5.rf.i386.rpm 
warning: perl-Unix-Syslog-0.100-1.2.el5.rf.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6 
Preparing...                 ########################################### [100%] 
1:perl-Unix-Syslog       ########################################### [100%] 
[root@mail ~]#
八、 客户端测试
Extmail 登录测试,直接使用 http://mail.xifeng.com/extmail 即可
输入邮件账户和密码点击“登录”后,如下图所示:
   在 Windows 下可以配置 OE formail 等客户端程序:
九、常见问题
报错1
执行 rpm –i postfix-2.3.3-2.src.rpm  error: cannot create %sourcedir /usr/src/redhat/SOURCES 错误?
[root@localhost postfix]# rpm -i postfix-2.3.3-2.src.rpm 
error: cannot create %sourcedir /usr/src/redhat/SOURCES
解决方法: 由于没有安装 rpm-build 执行 yum install rpm-build安装即可。
报错2:
执行 rpmbuild -ba SPECS/postfix.spec error: Failed build dependencies: pcre-devel is needed by postfix-2.3.3-2.i386 错误?
[root@localhost redhat]# rpmbuild -ba SPECS/postfix.spec 
error: Failed build dependencies: 
                pcre-devel  is needed by postfix-2.3.3-2.i386
解决方法: 由于 rpmbuild 编译过程中依赖的 pcre-devel 软件包没有安装,执行如下命令安装即可。
[root@localhost redhat]# yum install pcre-devel
报错3:
在使用 http://mail.xifeng.com/extmail 访问 extmail 过程中提示“ 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-这个rpm软件包安装即可。
报错4:
在使用http://mail.xifeng.com/extmail访问extmail,输入用户名和密码,选择登录后提示“Can't chdir to /var/spool/mail/xifeng.com/yujinlong/, Permission denied”
解决方法:
1 )按照错误提示由于权限的原因,使用 ll 命令检查,发现 postfix 用户有权限
[root@mail ~]# ll /var/spool/mail/ 
total 8 
-rw-rw---- 1 rpc         mail             0 Jan 19 00:07 rpc 
drwx------ 3 postfix postfix 4096 Jan 21 23:07 xifeng.com
2 )使用 ps –ef|grep httpd 发现 apache 的程序运行用户是 apache
[root@mail ~]# ps -ef |grep httpd 
root            1260    3676    0 07:55 pts/2        00:00:00 grep httpd 
root         27239         1    0 Jan21 ?                00:00:00 /usr/sbin/httpd 
apache     27241 27239    0 Jan21 ?                00:00:00 /usr/sbin/httpd 
apache     27242 27239    0 Jan21 ?                00:00:00 /usr/sbin/httpd 
apache     27243 27239    0 Jan21 ?                00:00:00 /usr/sbin/httpd 
apache     27244 27239    0 Jan21 ?                00:00:00 /usr/sbin/httpd 
apache     27245 27239    0 Jan21 ?                00:00:00 /usr/sbin/httpd 
apache     27246 27239    0 Jan21 ?                00:00:00 /usr/sbin/httpd 
apache     27247 27239    0 Jan21 ?                00:00:00 /usr/sbin/httpd 
apache     27248 27239    0 Jan21 ?                00:00:00 /usr/sbin/httpd
所以,可以将apache的user和group修改为postfix,或者使用apache的suexec模块。
报错5:
在使用postfixadmin管理工具添加超级管理员的时候,提示“管理员名不是一个合法的邮件地址!”如下图所示:
解决方法:
在postfixadmin配置文件config.inc.php中找到$CONF['emailcheck_resolve_domain']='YES';行将YES修改为NO。


由于老是提示文章篇幅超过8万字符,特分为几篇发布,





     本文转自yjlsy 51CTO博客,原文链接:http://blog.51cto.com/baidu/1123483 ,如需转载请自行联系原作者




相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
348
分享
相关文章
Postfix 邮件服务器的配置
Postfix是一种功能强大且功能多样的邮件传输代理。在本文中,我们已经了解了如何使用postfix 和 dovecot为基于系统用户帐户的单个域实现基本电子邮件服务器。我们几乎没有涉及基于 postfix 的系统的真正功能,但希望能为新用户构建提供坚实的工作基础。
1919 0
Linux服务器---邮件服务安装postfix
安装postfix      postfix是一个快速、易于管理、安全性高的邮件发送服务,可以配合dovecot实现一个完美的邮箱服务器。1、安装postfix       [root@localhost ~]# rpm -qa | grep postfix      [root@localhos...
2430 0
Postfix 邮件服务器安装与配置
#!/bin/bash yum -y install postfix dovecot; #/etc/postfix/main.cf #postfix check  postfix start  postfix stop postfix flush  postfixreload #/etc/postfix/main.
1346 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等