天天看点

CentOS7下搭建postfix邮箱服务器并实现extmail的web访问

关闭selinux

关闭firewalld防火墙,并清空iptables规则:

由于CentOS7默认安装的是MariaDB,所以要添加MySQL的yum源,有些编译需要的devel包只有epel扩展源有,所以我们需要把epel源也一并添加。因为是通过wget命令从下载地址中下载,但是最小化安装的CentOS7不自带wget命令,还需要先安装这个命令:

首先需要安装编译环境及其他所需要的包,免得一会编译过程中老报缺少包的错误,因为需要安装的包有点多,所以这个过程有点慢:

安装完以上所需的包后,开始编译安装postfix:

1.首先卸载系统自带的postfix,并删除postfix用户,重新指定uid、gid创建新用户postfix,postdrop,嫌一条条命令去执行有点麻烦就写成脚本文件去执行:

2.下载源码包并解压编译(如果下载地址失效就到官网去找下载连接):

在make install环节的时候会有个交互式的界面,可以自定义一些目录,我这里只更改了第二项临时文件目录,其他的都选择了默认目录:

3.更改目录的属主和属组:

4.修改postfix的配置文件:

5.然后需要在/etc/init.d/目录下提供一个脚本来管理postfix的启动与停止:

[root@localhost /var/www/extsuite/extman]# vim /etc/init.d/postfix

把下面的内容放在/etc/init.d/postfix里面:

为脚本添加执行权限,并将服务添加到开机启动项中:

yum安装:

[root@localhost ~]# yum install -y dovecot dovecot-mysql

配置dovecot:

编辑dovecot通过mysql认证的配置文件:

下载解压并编译:

编译过程中发生了一个错误:

这是因为Courier Unicode Library没有安装,我们下载courier-unicode-1.2并编译安装:

完成Courier Unicode Library的安装后,倒回去再次编译courier-authlib就没问题了

配置courier-authlib:

courier-authlib添加服务启动脚本及其他:

smtp以及虚拟用户相关的设置:

下载extmail和extman:

创建站点目录并解压、重命名extmail包:

更改extmail的配置文件:

建立临时文件目录与session目录,并更改权限:

回到extman的下载目录下,解压extman包:

拷贝extman的配置文件:

更改cgi目录的属主属组:

导入数据库:

由于数据库不能识别TYPE=MyISAM,所以这里直接导入会出错,需要先编辑extmail.sql数据库文件,将文件中的TYPE=MyISAM更改为ENGINE=MyISAM,共有五处修改:

我这里导入数据的时候发生了一个错误,提示找不到mysql.sock文件:

解决:然后我去查看了一下/etc/my.cnf文件,发现没问题,socket参数指向的也是 /var/lib/mysql/mysql.sock 这个路径,于是我就重启了mysql服务,然后再尝试就没有报找不到mysql.sock文件的错误了,但是报了另一个错误:

这错误的意思是:字段 'ssl密码' 没有默认值

于是又得去查看一下/etc/my.cnf文件,然后把sql_mode参数给注释掉:

CentOS7下搭建postfix邮箱服务器并实现extmail的web访问

接着重启mysql服务后,继续导入数据,这次就没问题了:

导入数据成功后再次修改/etc/my.cnf文件,把刚刚注释的那行给去掉注释,不去掉的话,mysql服务可能会出现不能启动的问题:

CentOS7下搭建postfix邮箱服务器并实现extmail的web访问

数据导入成功后,登录mysql,创建一个mysql数据库用户extmail并授予权限:

复制之前提到的配置文件:

为extman创建临时目录:

启动postfix、dovecot、saslauthd服务,并查看进程是否正常:

测试虚拟用户:

测试smtp发信:

nginx本身并不能解析cgi,extmail自带了解析cgi的程序,但是有些地方需要修改下:

启动dispatch-init:

添加nginx虚拟主机:

vim /etc/nginx/conf.d/extmail.conf

文件内容如下:

创建fcgi.conf文件:

vim /etc/nginx/fcgi.conf

安装Unix::Syslog:

启动nginx,并检查进程和监听端口是否正常:

然后到windows上访问你服务器IP的8080端口:

CentOS7下搭建postfix邮箱服务器并实现extmail的web访问

extman的登录账户为[email protected]密码为extmail*123*,首次使用需要先添加域,添加之后再修改域,改为可自由注册,再注册用户就可以登录发邮件了:

CentOS7下搭建postfix邮箱服务器并实现extmail的web访问

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

继续阅读