文章目录
邮件服务器工作模式
邮件服务器也采用的是C/S工作模式,通过SMTP,POP,IMAP协议来是实现邮件的发送和接收的。
每个邮件系统主要由4部分组成:
MUA:邮件用户代理,客户端收发邮件的软件
MDA:邮件投递代理,在邮件服务器上将邮件存放到相应的位置
MTA:邮件传输代理,服务器上的部署邮件服务器的软件
MRA:邮件收取代理,为MUA读取邮件提供标准接口,主要使用POP3和IMAP协议
MIME:
MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。
是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。
接收:POP3(端口110) IMAP(端口143)
POP3
POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准
POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的
IMAP
IMAP全称是Internet Mail Access Protocol,即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一
不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。
两者区别
- IMAP客户端上收取邮件后邮件依旧保留在服务器上,同时在客户端上的操作也会保留在服务器端,POP3不会
- IMAP更好的支持从多个设备中随时访问新邮件
- IMAP提供的摘要游览功能可以让你阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作初是否下载的决定。
- pop3需要下载所有的邮件,IMAP不能将所有的邮件下载,而是通过客户端直接对服务器上的邮件进行操控。所有的IMAP
可以对数据进行加密从而保证通信安全。 - IMAP整体上为用户带来了更为便捷和可靠的的体验 ----pop3 更容易丢失邮件或者多次重复下载相同的邮件。
发送:SMTP(端口25) ESMTP (端口465)
SMTP
SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议
它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地
SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器
SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP(postfix) 服务器,这就使得那些垃圾邮件的散播者无可乘之机。 增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰
ESMTP
ESMTP:(Extended SMTP) 是对标准 SMTP 协议进行的扩展。
它与 SMTP 服务的区别仅仅是,使用 SMTP 发信不需要验证用户帐户,而用 ESMTP 发信时,服务器会要求用户提供用户名和密码以便验证身份。
在所有的验证机制中,信息全部采用Base64编码。验证之后的邮件发送过程与SMTP 方式没有两样。
执行流程
- 两个不同的域的用户进行邮件收发
- 使用客户端或者编辑器写邮件发送到自己域内的邮件服务器
- 邮件服务器通过域内的客户端发送邮件到目标域
- 客户端通过DNS查询MX记录和A记录解析对方的IP地址,多个MX记录就找优先级高的 10
- 目标服务端的服务正常监听在指定端口上来接收客户端的请求
- 确认邮件的目标用户是否在本域
- 如果在域内,通过邮件投递代理把邮件存放到指定的邮件目录/var/spool/mail/redhat
- 该用户登录系统后进行邮件检测,然后收取邮件即可
常用端口:
25 smtp 发送邮件
110 pop3 接收邮件
143 imap 接收邮件
995 pop3s
993 imaps
465 smtps
案例一:mail
服务端发送邮件给xiaobai: mail to xiaobai
[root@localhost ~]# mount /dev/sr0 /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# yum install postfix -y
[root@localhost ~]# systemctl restart postfix.service
[root@localhost ~]# useradd xiaohei
[root@localhost ~]# useradd xiaobai
[root@localhost ~]# yum install mailx -y #linux端的邮件客户端
[root@localhost ~]# mail to xiaobai #发送邮件给xiaobai
Subject: xiaobaizhenbai
hello
xiaobai
woshixiaohei
. #.可以退出mail Ctrl + D也可以
EOT
在当前主机切换用户到 xiaobai,查看刚刚发过来的邮件 mail
[root@localhost ~]# su - xiaobai
[xiaobai@localhost ~]$ mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/xiaobai": 1 message 1 new
>N 1 root Tue Aug 31 03:09 20/670 "xiaobaizhenbai"
& 1 #查看序号为1的邮件
Message 1:
From root@localhost.localdomain Tue Aug 31 03:09:50 2021
Return-Path: <root@localhost.localdomain>
X-Original-To: xiaobai
Delivered-To: xiaobai@localhost.localdomain
Date: Tue, 31 Aug 2021 11:09:50 +0800
To: xiaobai@localhost.localdomain, to@localhost.localdomain
Subject: xiaobaizhenbai
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root <root@localhost.localdomain>
Status: R
hello
xiaobai #邮件信息
woshixiaohei
另一种查看邮件方式: vim /var/spool/mail/xiaobai
[root@localhost ~]# vim /var/spool/mail/xiaobai
You have mail in /var/spool/mail/root
Return-Path: <root@localhost.localdomain>
X-Original-To: xiaobai
Delivered-To: xiaobai@localhost.localdomain
Received: by localhost.localdomain (Postfix, from userid 0)
id 257583121CAE; Tue, 31 Aug 2021 03:09:50 +0000 (GMT)
Date: Tue, 31 Aug 2021 11:09:50 +0800
To: xiaobai@localhost.localdomain, to@localhost.localdomain
Subject: xiaobaizhenbai
User-Agent: Heirloom mailx 12.5 7/5/10
MIME-Version: 1.0
Content-