Postfix是一种高性能的开源邮件服务器系统。本文将帮助你在CentOS 7上安装Postfix服务器,并使用IMAP/POP3协议,将在 MariaDB(MySQL)数据库中存储虚拟域和用户信息。
在安装Postfix服务器的CentOS平台上必须设置好您的主机名,同时确保iptables防火墙不会阻止任何标准的邮件端口(25,465,587,110,995,143,993),如果使用不同形式的防火墙,确认它不会阻塞任何需要的端口。
安装需要的软件包
1.升级已安装的软件包:
|
|
2.修改CentOS的YUM源文件:
修改/etc/yum.repos.d/CentOS-Base.repo文件
|
|
3.安装要使用的软件包:Postfix邮件服务器,MariaDB数据库服务器,Dovecot的IMAP和POP后台服务器
|
|
下一步,建立MariaDB数据库来存放虚拟域和用户。
在MariaDB中设置虚拟域和用户
1.设置MariaDB服务器能在CentOS启动时一起启动,并现在启动MariaDB服务器
|
|
2.运行mysql_secure_installation ,对MariaDB数据库进行初始化.
|
|
3.登入MariaDB 数据库:
|
|
4.创建一个 mail 数据库并进入mail数据库:
|
|
5.创建一个mail数据库的管理用户mail_admin,本为用户code>mail_admin设置密码:
|
|
6.创建虚拟域名表:
|
|
7.创建一个邮件转发表:
|
|
8.创建用户表:
|
|
9.创建一个传输表:
|
|
10.退出 MariaDB
|
|
11.在/etc/my.cnf配置中,将 localhost设置为127.0.0.1
|
|
12.重启MariaDB 服务器:
|
|
配置Postfix 与MariaDB通信的参数
提醒:
这里假设mail_admin用户密码为both-win,你可以根据实际需要修改密码
1.创建虚拟域配置文件/etc/postfix/mysql-virtual_domains.cf
|
|
2.创建虚拟转发配置文件/etc/postfix/mysql-virtual_forwardings.cf
|
|
3.创建虚拟邮箱配置文件/etc/postfix/mysql-virtual_mailboxes.cf
|
|
4.创建虚拟邮件映射配置文件/etc/postfix/mysql-virtual_email2email.cf
|
|
5.设置这些配置文件的权限和所有权:
|
|
6.创建邮件处理的用户和组。所有的虚拟邮箱将存储该用户的home目录下:
|
|
7.剩下的就是配置Postfix。下面我们假设mail服务器域名为 server.example.com。如果你有SSL证书,请将证书放置/etc/pki/dovecot/private/dovecot.pem文件目录下:
|
|
8.编辑/etc/postfix/master.cf配置文件,在文件中增加Dovecot服务器的配置:
|
|
9.在/etc/postfix/master.cf配置文件中,打开submission和smtps二个设置:
|
|
10.重启 Postfix 服务器:
|
|
到处为止,Postfix 服务器已经配置完成.
Dovecot 配置
1.备份/etc/dovecot/dovecot.conf文件
|
|
2.现在将下面的代码复制到/etc/dovecot/dovecot.conf文件中.其中在37行的example.com为邮件服务器的域名,你的ssl证书配置文件请放在第5和6行:
|
|
3.在/etc/dovecot/dovecot-sql.conf.ext配置文件中,配置 MariaDB 数据库的格式.
|
|
5.重启Dovecot服务器,并设置Dovecot在CentOS系统启动时启动:
|
|
6.现在查看/var/log/maillog日志文件,如果在日志文件中有类似以下记录,证明你的Dovecot配置正确。
|
|
7.安装 Telnet 并测试POP3:
|
|
8.终端应输出如下结果:
|
|
9.输入quit命令退出终端,这就完成了相关的配置。接下来,你要确保别名配置是否正确。
|
|
配置邮件的别名
1.编辑/etc/aliases配置文件,确保postmaster和root的别名:
|
|
2.更新别名并重新启动Postfix服务器:
|
|
到处为止我们已经完成别名的配置。接下来,我们将测试Postfix以确保它的正常运行。
测试Postfix
1.测试Postfix 服务器的 SMTP 端口:
|
|
2.在终端中,输入以下命令:
|
|
3.你应该在终端中看到下面的输出:
|
|
4.在终端中输入quit命令退出Postfix .
下一步,我们将在MariaDB数据库中增加邮件域名和用户.
增加和测试邮件域名和用户
在下面的例子中,我们将在MariaDB数据库中添加邮件域“example.com”,同时增加一个名为sales电子邮件帐户。
1.登入MariaDB 服务器:
|
|
2.切入到”mail”数据库,增加一个邮件域example.com和一个[email protected]邮件帐户和其的password :
|
|
3.在访问任何新创建的电子邮件帐户之前,需要发送一个测试信息来创建该用户邮箱:
|
|
在终端中按Ctrl + D来结束测试邮件。这就完成了一个新的域和电子邮件用户的配置。
检查日志
测试邮件发送后,请检查邮件日志以确保邮件已被发送。
1.查看/var/log/maillog maillog日志文件,你应该看见类似以下记录:
|
|
2.查看/home/vmail/dovecot-deliver.log Dovecot日志文件,你应该看见类似以下记录:
|
|
现在你可以测试看看你的电子邮件服务器的用户会看到他们的电子邮件客户端。
测试Mailbox
1.进入/home/vmail/example.com/sales/Maildir目录中,测试 [email protected],在终端输入find命令:
|
|
2.将在终端中看见以下输出:
|
|
3.通过使用邮件客户端测试maillbox。推荐mutt软件来测试。如果没有安装muutt软件,请用yum install mutt安装
|
|