Mail服务搭建
xy12306 Lv2

一、关闭防火墙

1
2
3
4
5
6
# 关闭防火墙
systemctl stop firewalld
# 禁止防火墙开机自启动
systemctl disable firewalld
# 查看防火墙状态
systemctl status firewalld

将未注释的SELINUX行的值改为disabled
vim /etc/sysconfig/selinux
SELINUX=disabled

二、搭建DNS环境

1. 安装DNS服务器

1
2
# 安装DNS服务器
yum install -y bind

vim /etc/hostname

将主机名更改为邮件服务器域名 mail.test.com

vim /etc/named.conf

修改这两行的内容:

listen-on port 53 { any; };
allow-query { any; };

2. 修改子配置文件

vim /etc/named.rfc1912.zones

在结尾处添加一个正向和一个反向解析区域 (IP改为自己的IP地址)

1
2
3
4
5
6
7
8
9
zone "test.com" IN {
type master;
file "test.com.zone";
};

zone "1.168.192.in-addr.arpa" IN {
type master;
file "test.com.local";
};

3. 进入DNS服务器区域配置文件目录

1
2
3
4
cd /var/named/ 
# 复制模板区域配置文件为指定区域配置文件。保留源文件权限,确定属组为named
cp -p named.localhost test.com.zone
cp -p named.localhost test.com.local

4. 编辑正反向区域配置文件(在cd /var/named/目录中) (IP改为自己的IP地址)

vim test.com.zone

<img
src=”https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/5b710eb1f7824747b8225364dd83ab35~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgeHkxMjMwNg==:q75.awebp?rk3s=f64ab15b&x-expires=1736153754&x-signature=M7PgEEGD3u51nwqNMHxtCeQeD88%3D
alt=”示例图片”
style=”transform: scale(1.0);”
loading=”lazy”

vim test.com.local

<img
src=”https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/1b654e3241aa421e9b9b794be1c14372~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgeHkxMjMwNg==:q75.awebp?rk3s=f64ab15b&x-expires=1736153754&x-signature=ZM2Ksb%2BNJx1dwti0kC6CPPliVeE%3D
alt=”示例图片”
style=”transform: scale(1.0);”
loading=”lazy”

5. 启动DNS域名解析服务器

  • 给本机的DNS指向自己的dns服务器
    vim /etc/resolv.conf
1
nameserver 192.168.1.3
  • 启动后测试
1
2
3
4
5
# 启动
systemctl start named

# 安装nslookup命令测试dns能否解析成功
yum install -y bind-utils
  • 解析服务器地址测试
1
2
3
4
5
[root@mail named]`nslookup mail.test.com` # 正向解析
Server:192.168.1.3
Address:192.168.1.3#53
Name:mail.test.com
Address: 192.168.1.3
1
2
[root@mail named] `nslookup 192.168.1.3`# 反向解析
3.1.168.192.in-addr.arpa name = mail.test.com. # 成功

三、安装postfix服务进行收发件测试

一般Centos7是默认自动安装postfix服务器的。检查系统是否已经安装了postfix服务器,使用以下命令

[root@mail named] rpm -q postfix

postfix-2.10.1-6.el7.x86_64

检查postfix是否支持cyrus dovecot功能.

[root@mail named]postconf -a

cyrus

dovecot

1. postfix配置

vim /etc/postfix/main.cf

  • 在配置文件中修改以下参数
1
2
3
4
5
6
7
myhostname = mail.test.com //本机主机名
mydomain = test.com //服务器域名
myorigin = $mydomain //初始域名
inet_interfaces = all //监听接口
inet_protocols = ipv4 //监听网络版本,可以不改
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/ //邮件目录,在用户家目录下
  • 启动后设置用户和密码 请记住设置的密码
1
2
3
4
5
6
7
8
9
10
11
12
13
#检查配置文件是否有语法错误
[root@mail named] postfix check
# 启动postfix服务器
[root@mail named] systemctl start postfix

# 添加邮件账号组
groupadd mailusers

# 设置用户jack和tom
useradd -g mailusers -s /sbin/nologin jack
passwd jack
useradd -g mailusers -s /sbin/nologin tom
passwd tom

2. 邮件服务器发件测试

1
2
3
4
5
# 安装远程登录插件,用于登录25端口测试
yum install -y telnet

# 重启postfix服务
systemctl restart postfix

远程登录25端口,如报错连接不上,重启postfix

[root@mail ~] telnet mail.test.com 25

Trying 192.168.1.3…

Connected to mail.test.com.

Escape character is ‘^]’.

220 mail.test.com ESMTP Postfix

mail from:<root@test.com>

250 2.1.0 Ok

rcpt to:jack

250 2.1.5 Ok

data

354 End data with .

Hello, this is a test mail.

.

250 2.0.0 Ok: queued as 6B1E6801BBC

quit

221 2.0.0 Bye

Connection closed by foreign host.

[root@mail ~] tail /var/log/maillog|grep sent # 查看发送状态

Dec 10 11:23:31 mail postfix/local[7136]: 6B1E6801BBC: to=jack@test.com, orig_to=, relay=local, delay=33, delays=33/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir)

3. 邮件服务器收件测试

1
2
# 在Mail服务器上安装配置Dovecot以接收邮件
yum install -y dovecot
  • 修改这三个配置文件
1
2
3
4
5
6
7
8
9
10
11
12
vim /etc/dovecot/dovecot.conf 
protocols = imap pop3 lmtp
listen = *, ::

vim /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no

vim /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir

# 重启服务
systemctl restart dovecot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[root@mail ~]` telnet mail.test.com 110`
Trying 192.168.1.3...
Connected to mail.test.com.
Escape character is '^]'.
+OK Dovecot ready.
` user jack`
+OK
`pass admin` # 这里格式为`pass+密码`,我前面设置的密码是admin,改为自己的密码。
+OK Logged in.
`list`
+OK 1 messages:
1 404
.
` retr 1 `(输入邮件编号查看邮件,需要自行输入)
+OK 404 octets
Return-Path: <root@test.com>
X-Original-To: jack
Delivered-To: <jack@test.com>
Received: from mail.test.com (mail.test.com [192.168.1.3])
by mail.test.com (Postfix) with SMTP id 6B1E6801BBC
for <jack>; Tue, 10 Dec 2024 11:22:58 +0800 (CST)
Message-Id: <20241210032311.6B1E6801BBC@mail.test.com>
Date: Tue, 10 Dec 2024 11:22:58 +0800 (CST)
From: <root@test.com>
Hello, this is a test mail.
.
`quit `
+OK Logging out.
Connection closed by foreign host.

相关文章

 请作者杯咖啡
由 Hexo 驱动 & 主题 Keep
访客数 访问量