postfix邮件服务器
邮件服务器介绍
邮件服务器也采用的是C/S工作模式,通过SMTP,POP,IMAP协议来是实现邮件的发送和接收的。
电子邮件在互联网上是如何传输的:
每个邮件系统主要由4部分组成(邮件系统的角色):
MUA:邮件用户代理,客户端收发邮件的软件 (代表客户端) 邮件投递 写信人
MDA:邮件投递代理,在邮件服务器上将邮件存放到相应的位置 邮件装箱发送
MTA:邮件传输代理,服务器上的部署邮件服务器的软件 (服务端) 收件人
MRA:邮件收取代理,为MUA读取邮件提供标准接口,主要使用POP3和IMAP协议(帮用户查看邮箱服务器里是否有自己的邮件)
邮件应用的协议:
SMTP,简单邮件传输协议。TCP 25端口,加密时使用TCP 465端口
POP3,邮局协议的第3个版本,TCP 110端口,加密时使用995端口
IMAP,交互式邮件存取协议TCP 143端口,加密时 使用993端口
SMTP为发送协议,POP3和IMAP是接收协议,我们这里学习的是SMTP和IMAP俩个协议。
POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。在收取邮件的时候,先将服务器上的邮件下载到本地来进行处理,所有的操作都是在本地完成的。它是因特网电子邮件的第一个离线协议标准,POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的 。
IMAP全称是Internet Mail Access Protocol,即交互式邮件存取协议,
在电子邮件客户端收取的邮件仍然保留在服务器上,在服务器端处理,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。好处是我在收取邮件之前,我可以查看收发人,部分邮件内容等等信息。
POP3 和 imap 区别
1.IMAP客户端上收取邮件后邮件依旧保留在服务器上,同时在客户端上的操作也会保留在服务器端,POP3不会
2.IMAP更好的支持从多个设备中随时访问新邮件
3.IMAP提供的摘要游览功能可以让你阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作初是否下载的决定。
4.pop3需要下载所有的邮件,IMAP不能将所有的邮件下载,而是通过客户端直接对服务器上的邮件进行操控。所有的IMAP
可以对数据进行加密从而保证通信安全。
5.IMAP整体上为用户带来了更为便捷和可靠的的体验 ----pop3 更容易丢失邮件或者多次重复下载相同的邮件。
SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。 SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。 增加 SMTP 认证的目的是为了
使用户避免受到垃圾邮件的侵扰。
ESMTP:(Extended SMTP) 是对标准 SMTP 协议进行的扩展。它与 SMTP 服务的区别仅仅是,使用 SMTP 发信不需要验证用户帐户,而用 ESMTP 发信时,服务器会要求用户提供用户名和密码以便验证身份。在所有的验证机制中,信息全部采用Base64编码。验证之后的邮件发送过程与SMTP 方式没有两样。
邮件服务器的原理:
通信过程:
1、MUA通过Step1的协议,将这封邮件发送给我们的MTA,MTA检查该邮件是发往本域还是其他域,如果发送给本域的,由MTA调用MDA的模块,将邮件保存到自己的邮箱mailbox中。如果发送给外域,则转发给其他域。
2、当另外一个客户端想收取邮件的时候,他会将请求交到邮件服务器上的MRA的模块里,由MRA替我们用户去查找邮箱,找到用户要找的邮件,然后用户通过POP3或IMAP来将邮件从服务端下载到本地。
因为服务器可以当做一个转发器来转发邮件,为了防止转发垃圾邮件,所以我们需要验证是否替用户将他的邮件转发给其他邮件服务器。所以我们需要调用验证机制,叫做SARL。
SASL全称Simple Authentication and Security Layer,是一种用来扩充C/S模式验证能力的机制。在Postfix可以利用SASL来判断用户是否有权使用转发服务,或是辨认谁在使用你的服务器。
简单流程:
两个不同的域的用户进行邮件收发
使用客户端或者编辑器写邮件发送到自己域内的邮件服务器
邮件服务器通过域内的客户端发送邮件到目标域
客户端通过DNS查询MX记录和A记录解析对方的IP地址,多个MX记录就找优先级高的 10
目标服务端的服务正常监听在指定端口上来接收客户端的请求
确认邮件的目标用户是否在本域
如果在域内,通过邮件投递代理把邮件存放到指定的邮件目录 /var/spool/mail/redhat
该用户登录系统后进行邮件检测,然后收取邮件即可
常用端口:
25 smtp:发送邮件
110 pop3: 接收邮件
143 imap:接收邮件
995 pop3s 加密
993 imaps 加密
465 smtps 加密
邮件的发送、接收与查看
发送:
mail to redhat #写邮件给redhat
Subject:test #输入邮件的主题,冒号前的为提示信息
mail body,mail content. #输入主题后会返回空白提示,输入邮件内容
123
. 内容输入完成后,换行输入“.” 回车,即可发送邮件
接收与查看:
su - redhat #到redhat用户查收邮件
mail #使用mail命令查看自己的邮件,返回以下信息:
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/redhat": 1 message 1 new
>N 1 root Sun Apr 24 02:18 19/640 "test"
&_(下划线为提示符)
1 #输入1查看编号为1的邮件
Message 1:
From root@localhost.localdomain Sun Apr 24 02:18:54 2016
Return-Path: <root@localhost.localdomain>
X-Original-To: redhat
Delivered-To: redhat@localhost.localdomain
Date: Sun, 24 Apr 2016 02:18:54