基础邮件服务

电子邮件服务器的基本功能

为用户提供电子邮箱存储空间(用户名@邮件域名)

处理用户发出的邮件-------传递给收件服务器

处理用户收到的邮件-------投递到邮箱


配置前提

  虚拟机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]

To: [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

To: [email protected]

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 来查看测试邮件的内容