1.自建dns服务器
yum -y install bind
cp /etc/named.conf /etc/named.conf.ori.bak.20220323
cat /etc/named.conf
options {
listen-on port 53{ 192.168.20.197; };
listen-on-v6 port 53{ ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
named-checkconf
cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.ori.bak.20220323
vim /etc/named.rfc1912.zones
//正向配置区域和反向配置区域
zone "codemiracle.com" IN {
type master;
file "codemiracle.com.zone";
};
zone "20.168.192.in-addr.arpa"{
type master;
file "codemiracle.com.local";
};
named-checkconf
cd /var/named
#创建正向区域数据配置文件(复制文件时必须加“-P”,表示复制过来的时候文件权限保持不变)
cp -p named.localhost codemriacle.com.zone
cat codemiracle.com.zone
$TTL 1D
@ IN SOA codemiracle.com. codemiracle.com. (
0; serial
1D; refresh
1H; retry
1W; expire
3H) ; minimum
NS @
A 127.0.0.1
AAAA ::1
NS mail.codemiracle.com.
MX 10 mail.codemiracle.com.
mail IN A 192.168.20.197
cp -p named.localhost codemiracle.com.local
cat codemiracle.com.local
$TTL 1D
@ IN SOA codemiracle.com. codemiracle.com. (
0; serial
1D; refresh
1H; retry
1W; expire
3H) ; minimum
NS @
A 127.0.0.1
AAAA ::1
NS mail.codemiracle.com.
MX 10 mail.codemiracle.com.
10 PTR mail.codemiracle.com.
named-checkconf
systemctl start named
systemctl enable named
cat /etc/resolv.conf
nameserver 192.168.20.197
#验证
nslookup mail.codemiracle.com
nslookup 192.168.20.197
2.安装postfix
参数 作用
myhostname 邮局系统的主机名
mydomain 邮局系统的域名
myorigin 从本机发出邮件的域名名称
inet_interfaces 监听的网卡接口
mydestination 可接收邮件的主机名或域名
mynetworks 设置可转发哪些主机的邮件
relay_domains 设置可转发哪些网域的邮件
#是否支持cyrus dovecot功能
postconf -a
cyrus
dovecot
#安装
yum -y install postfix
#主配置
cat /etc/postfix/main.cf
#76行
myhostname = mail.codemiracle.com //邮件服务器的主机名
#84行
mydomain = codemiracle.com //邮件域
#100行
myorigin = $mydomain //往外发邮件的邮件域
#116行
inet_interfaces = $myhostname, localhost //监听的网卡 (注意,两个地址之间有空格)
#164行
mydestination = $myhostname, localhost.$mydomain //服务的对象
home_mailbox = Maildir/ //邮件存放的目录
#语法检查
postfix check
systemctl restart postfix
#查看postfix的非默认并已生效配置
postconf -n
#创建邮件测试用户
groupadd mailusers
useradd -g mailusers -s /sbin/nologin moonrong01
passwd moonrong01
useradd -g mailusers -s /sbin/nologin moonrong02
passwd moonrong02
#发信测试
telnet mail.codemiracle.com 25
Trying192.168.20.197...
Connected to mail.codemiracle.com.
Escape character is'^]'.
220 mail.codemiracle.com ESMTP Postfix
helo mail.codemiracle.com //声明本机的主机
250 mail.codemiracle.com
mail from:moonrong01@codemiracle.com //声明发件人地址
2502.1.0Ok
rcpt to:moonrong02@codemiracle.com //声明收件人地址
2502.1.5Ok
data //写正文
354End data with<CR><LF>.<CR><LF>
i am moonrong
. /正文结束标记
2502.0.0Ok: queued as ACCF82120FBB
quit // 退出
2212.0.0Bye
Connection closed by foreign host.
#收信验证
使用root查看moonrong02用户是否收到测试邮件
3.配置Dovecot服务程序
Dovecot 是一个开源的 IMAP 和 POP3 邮件服务器,支持 Linux/Unix 系统。POP / IMAP 是 MUA 从邮件服务器中读取邮件时使用的协议。其中,与 POP3 是从邮件服务器中下载邮件比起来,IMAP4 则是将邮件留在服务器端直接对邮件进行管理、操作。Dovecot 支持多种认证方式,所以在功能方面也比较符合一般的应用。
yum -y install dovecot
cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.ori.bak.20220323
vim /etc/dovecot/dovecot.conf
# Protocols we want to be serving.
protocols = imap pop3 lmtp
disable_plaintext_auth = no
!include conf.d/*.conf
listen = *, ::
#把Dovecot服务程序支持的电子邮件协议修改为imap、pop3和lmtp。然后在这一行下面添加一行参数,允许用户使用明文进行密码验证。之所以这样操作,是因为Dovecot服务程序为了保证电子邮件系统的安全而默认强制用户使用加密方式进行登录,而由于当前还没有加密系统,因此需要添加该参数来允许用户的明文登录
配置邮件格式与存储路径
在Dovecot服务程序单独的子配置文件中,定义一个路径,用于指定要将收到的邮件存放到服务器本地的哪个位置。这个路径默认已经定义好了,我们只需要将该配置文件中第25行前面的井号(#)删除即可。
#/etc/dovecot/conf.d/10-mail.conf
mail_location = mbox:~/mail:INBOX=/var/mail/%u
systemctl restart dovecot
systemctl status dovecot
推荐使用Thunderbird邮件客户端或者Foxmail客户端
Postfix+Dovecot+MySQL搭建邮件服务器 - 老鼠扛刀,满街找猫 - 博客园