基础邮件服务
电子邮件服务器的基本功能
为用户提供电子邮箱存储空间(用户名@邮件域名)
处理用户发出的邮件-------传递给收件服务器
处理用户收到的邮件-------投递到邮箱
配置前提
虚拟机server0
[root@desktop0 ~]#firewall-cmd --set-default-zone=trusted
[root@desktop0 ~]#echo server0.example.com > /etc/hostname
虚拟机desktop0
[root@desktop0 ~]#firewall-cmd --set-default-zone=trusted
[root@desktop0 ~]#echo desktop0.example.com > /etc/hostname
协议
用户发邮件的协议:SMTP 端口25
用户收邮件的协议:POP3端口110 IMAP 端口142
搭建基本邮件服务器
1.安装postfix软件
[root@server0 ~]# rpm -q postfix
postfix-2.10.1-6.el7.x86_64
2.配置postfix服务,修改配置文件
后应用的生效 同样的配置下面的生效
[root@server0 ~]# vim /etc/postfix/main.cf
...
myhostname = server0.example.com#76行 指定主机名
...
mydomain = example.com#83行 指定域名
...
myorigin = server0.example.com#99行 默认补全的邮件后缀 发邮件时没有写域名后缀默认不全的
...
inet_interfaces =all#116行 允许所以客户端使用
...
mydestination = server0.example.com#164行 判断邮件后缀为本域邮件 判断本地转发 收件人后缀与本行相同时
...
3.重启postfix服务,设置为开机自起
[root@server0 ~]# systemctl restart postfix
[root@server0 ~]# systemctl enable postfix
4.测试邮件的收发
[root@server0 ~]# useradd yg
[root@server0 ~]# echo 123 | passwd --stdin yg
更改用户 yg 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@server0 ~]# useradd xln
[root@server0 ~]# echo 123 | passwd --stdin xln
更改用户 xln 的密码 。
passwd:所有的身份验证令牌已经成功更新。
使用mail命令发信/收信
mail 发信操作
mail -s '邮件标题' -r 发件人 [发件域(不写的话 默认 配置文件中的)] 收件人 [收件域(不写的话 默认 配置文件中的)]
mail 收信操作
mail -u 用户名
[root@server0 ~]# mail -s 'test01' -r yg xln
Hello xln
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc
.#当这一行当中只有一个点时代表结束
EOT
[root@server0 ~]# mail -u xln
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/mail/xln": 1 message 1 new
>N 1 [email protected] Thu Nov 2 11:27 21/621 "test01"
&
#>N 表示有一封新邮件
&1#输入 邮件编号1 查看
Message 1:
From [email protected] Thu Nov 2 11:27:23 2017
Return-Path:
X-Original-To: xln
Delivered-To: [email protected]
Date: Thu, 02 Nov 2017 11:27:23 +0800
From: [email protected]
Subject: test01
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
Status: R
Hello xln
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc
&
& quit#输入quit退出
Held 1 message in /var/mail/xln
空客户端邮件服务器
nullclient,空客户端 (代替内网服务器(当服务器发生故障时)发送邮件个服务器管理员)
不提供任何邮件帐号,因为不需要投递邮件
但是可以为用户代发邮件
一.配置desktop0为邮件服务器
[root@desktop0 ~]# vim /etc/postfix/main.cf
...
myorigin = desktop0.example.com#99行
inet_interfaces = all#116行
mydestination = desktop0.example.com#164行
...
[root@desktop0 ~]# systemctl restart postfix.service
[root@desktop0 ~]# systemctl enable postfix
二.配置server0为空客户端邮件服务器
[root@server0 ~]# vim /etc/postfix/main.cf
...
myorigin = desktop0.example.com#99行
inet_interfaces = localhost#116行
mydestination = #164行
relayhost = [172.25.0.10]#317行 指定交给邮件服务器IP 地址
...
[root@server0 ~]# systemctl restart postfix.service
三.测试
[root@server0 ~]# echo 'hello boss' |mail -s 'one' student
[root@server0 ~]# mail -u student
No mail for student
[root@desktop0 ~]# mail -u student
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/mail/student": 1 message 1 new
>N 1 root Thu Nov 2 14:18 21/834 "one"
& 1
Message 1:
From [email protected] Thu Nov 2 14:18:55 2017
Return-Path:
X-Original-To: [email protected]
Delivered-To: [email protected]
Date: Thu, 02 Nov 2017 14:18:55 +0800
Subject: one
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: [email protected] (root)
Status: R
hello boss
& q
Held 1 message in /var/mail/student
在RHCE的考试中有一道考试题目是:
配置本地邮件服务
在系统system1、system2 上配置邮件服务,满足以下要求:
这些系统不接收外部发送来的邮件
在这些系统上本地发送的任何邮件都会自动路由到 XXXX
从这些系统上发送的邮件显示来自于 XXXX
考官的服务器负责提供后端/上游邮件服务器
在system1、system2上进行如下操作
# hostnamectl set-hostname 正确的主机名
# vim /etc/postfix/main.cf
relayhost = [后端邮件服务器的域名] //后端邮件服务器
inet_interfaces = loopback-only //仅本机
myorigin = 发件域后缀 //发件来源域
mynetworks = 127.0.0.0/8 [::1]/128 //信任网络
mydestination = //此行的值设为空
# systemctl restart postfix.service
# systemctl enable postfix.service
测试方法按住题目上的要求给某个测试用户发送邮件
# echo "邮件内容" | mail -s '邮件题目' 测试用户
题目上还会给提供一个网站url 可以访问此URL 来查看测试邮件的内容