基础邮件原理(MUA,MTA,MDA)

电子邮件基本概念:

MUA(Mail User Agent)接收邮件所使用的邮件客户端,使用IMAP或POP3协议与服务器通信;

MTA(Mail Transfer Agent) 通过SMTP协议发送、转发邮件;

MDA(Mail Deliver Agent)将MTA接收到的邮件保存到磁盘或指定地方,通常会进行垃圾邮件及病毒扫描;

MRA(Mail Receive Agent)负责实现IMAP与POP3协议,与MUA进行交互;

SMTP(Simple Mail Transfer Protocol)传输发送邮件所使用的标准协议;

IMAP(Internet Message Access Protocol)接收邮件使用的标准协议之一;

POP3(Post Office Protocol 3) 接收邮件使用的标准协议之一。

邮件服务器基本都有MTA,MDA,MRA 组成。

常用的MUA有:outlook、thunderbird、Mac Mail、mutt;

常用的MTA服务有:sendmail、postfix;

常用的MDA有:procmail、dropmail;

常用的MRA有:dovecot。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

架构图中还有个DNS (域名解析服务),架构中存在DNS原因是,邮件格式,通常情况下有两种:

1、[email protected](用户名@域名),[email protected](用户名@主机名)而1是最创建的格式,2是最为确切的位置。域并不代表一个特定的主机,所以还不知道邮件服务器的主机名是那个,而在dns中可以记录一个域的邮件服务器地址(称为mx记录)。所以在发送邮件时候还要通过dns去查找该域下的邮件服务器的地址。

我们还是先跟随一个典型的从发送邮件到接收邮件的过程,借此来观察Dovecot起到了什么作用。

开始,某个人用邮件用户代理(MUA)创建了一封电子邮件,典型的MUA包括Mozilla Thunderbird和Microsoft Outlook Express。无论是用哪种MUA,邮件创建后被送到了该用户的邮件传输代理(MTA)——传送过程使用的是SMTP协议。然后MTA检查该邮件的收信人(在这里我们假设是您),向DNS服务器查询接收方MTA对应的域名,然后将邮件发送至接收方MTA——使用的仍然是SMTP协议。这时,邮件已经从远程的用户工作站发送到了他的ISP的邮件服务器,并且转发到了您的域中。接下来会发生什么呢?
考虑到不同的网络配置,邮件在传输过程中很有可能被转移到另外一个MTA,但是最终会有某个MTA接管这封邮件,并且负责投递。这时,MTA会将邮件传递给某个邮件投递代理(MDA),MDA的主要作用就是将邮件保存到本地磁盘,有些MDA也可以完成其他功能,比如邮件过滤或将邮件直接投递到子文件夹。需要注意的是,完成将邮件存放在服务器上这个功能的是MDA。
   现在,您该查收邮件了。运行MUA,您可以使用IMAP协议或POP3协议来向邮件服务器查询您的邮件。邮件服务器会先确认您的身份,然后从邮件存储区检索邮件列表,并将列表返回给MUA。现在您就可以阅读邮件了。现在我们就可以解释第一段了:将邮件投递给您的邮件服务器就是Dovecot。
作为IMAP和POP3服务器,Dovecot为邮件用户代理(MUA)提供了一种访问服务器上存储的邮件的方法。但是,Dovecot并不负责从其他邮件服务器接收邮件。Dovecot只是将已经存储在邮件服务器上的邮件通过MUA显示出来。
   IMAP和POP3是用于连接MUA与邮件存储服务器的两种常见的协议。POP3通常用于网络连接较慢的用户连接至邮件服务器。POP3的一条基本原则是,MUA从服务器上下载邮件并保存在本地磁盘上,然后将服务器上的邮件删除。IMAP通常用于局域网(LAN)或网络连接较快的用户,使用 IMAP的目的就是只在每次有未读消息时才连接服务器(而不是使用类似于MUA的缓存)。Dovecot为使用IMAP协议的连接做了很多优化,这样 IMAP客户端在连接Dovecot服务器时会表现出更好的性能。
Dovecot并不关心邮件的接收、投递和存储,这些功能都是由MTA(比如Postfix)提供的。MTA决定邮件是如何存放的,以及存放在哪里,Dovecot必须根据MTA的配置来进行相应的配置。而且很明显的是,在安装Dovecot之前,必须保证MTA正常工作。
   在*NIX环境下主要有两种邮件存储格式——mbox和Maildir。Mbox将大量的邮件——有时可以达到几千封——存放在一个文件中。 Maildir则是将每封邮件都存放在单独的文件当中。可能由于文件系统较老等原因,您会选择使用mbox,但对于大多数的全新安装,Maildir提供了更强壮的存储实现和文件之间的相对平等。当然,还有一些其他的存储格式,比如dbmail,并不被Dovecot所支持(至少现在不支持)。
   还需要重复一遍的是:Dovecot并不负责邮件的投递或存储,这两方面出现了问题应该考虑MTA或MDA是否正常工作。如果没有,知道该怎么办了吧? 
Dovecot的主要配置包括邮件存储类型,邮件存储位置,用户列表和密码列表。Dovecot以支持多种用户名/密码格式,包括*NIX密码、shadow、PAM、LDAP、SQL和vpopmail。通常,您应该选择一种邮件服务全局都可以接受的用户名/密码格式,其中包括您的MTA、 MDA和Dovecot。

时间: 2024-10-12 17:02:21

基础邮件原理(MUA,MTA,MDA)的相关文章

自己定义 View 基础和原理

课程背景: 在 Android 提供的系统控件不能满足需求的情况下,往往须要自己开发自己定义 View 来满足需求,可是该怎样下手呢.本课程将带你进入自己定义 View 的开发过程,来了解它的一些原理. 核心内容: 1.编写自己的自己定义 View 2.增加逻辑线程 3.提取和封装自己定义 View 4.利用 xml 中定义样式来影响显示效果 编写自己的自己定义 View(上) 本课时主要解说最简单的自己定义 View,然后增加绘制元素(文字.图形等),而且能够像使用系统控件一样在布局中使用.

javascript基础-BOM原理

图解:  1. Loction: 拼接参数时,应编码decodeURIComponent/encodeURIComponent(). 2. History: pushState+replaceState+onpopstate事件适合用来做无刷新页面切换; history.length===0用来判断当前页面(百度等搜索门户)是否用户第一个打开. 附例: Location---解析出当前url号后面所有参数的方法.返回{a:xx,b:xx} getURLParam: function(){ var

Android-应用程序基础及原理概要

Android-应用程序基础及原理概要 一 Android程序的基本特性 1 apk是Android应用程序的安装格式,dex是Android二进制执行文件格式 2 Android是基于liunx的多用户操作系统,每个应用程序都是使用不同的用户 3 默认情况下,一个程序一个userid,系统设定的,不需要手动去设定,这样的程序,用户有权限进行所有的操作 4 每一个进程都有自己的吸泥机实例,所以内个程序相对独立 5 默认情况下,应用程序都有自己的linux进程,系统会决定何时关闭它,当资源不够的时

基础邮件,mariadb数据库

postfix基础邮件服务 1.1 问题 本例要求在虚拟机server0上配置 postfix 基础服务,具体要求如下: 监听本机的所有接口 将邮件域和邮件服务主机名都改为 example.com 然后在server0上使用mail命令测试发信/收信操作: 由 root 给本机用户 mike 发一封测试邮件 查收用户 mike 的邮箱,读取邮件内容,确保是从 [email protected] 发过来的 1.2 方案 电子邮箱:[email protected]表示在互联网区域qq.com内的一

创建基于MailKit和MimeKit的.NET基础邮件服务

邮件服务是一般的系统都会拥有和需要的功能,但是对于.NET项目来说,邮件服务的创建和使用会较为的麻烦..NET对于邮件功能提供了System.Net.Mail用于创建邮件服务,该基础服务提供邮件的基础操作,并且使用也较为的简单.对于真正将该功能使用于项目的人,就会慢慢发现其中的优缺点,甚至有些时候不能忍受其中的问题.在这里介绍一种微软用于替代System.Net.Mail的邮件服务组件MailKit和MimeKit,官网地址:http://www.mimekit.net/.GitHub地址:ht

邮件原理你真的造吗

一.前言 虽然现在QQ.微信等即时聊天工具原来越盛行,但是在企业与企业之间大部分还是会使用邮件系统进行信息交换.所以作为运维人员,更需要了解这个技术的原理.下面会慢慢介绍邮件的组件功能,将其组成部分.以及邮件的工作原理. 小贴士:邮件系统是一个比较复杂的系统,过程比较繁琐,但了解之后对邮件系统搭建将会起到很大的作用.所以请耐心查阅,让螃蟹慢慢跟您介绍. 二.邮件服务器与DNS之间的关系 最开始互联网传递邮件十分简单.因为最开始的计算机都是大型机主机,并保持24小时不停机,用户也是实时在线,而且每

Linux中Postfix邮件原理介绍(一)

邮件相关协议 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议, 工作在TCP的25端口.它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.跟名字一样smtp非常简单,无法做到认证,邮件存放等功能. POP3(Post Office Protocol)邮局协议第3版,工作在TCP的110端口.本协议主要用于支持使用客户端远程管理在服务器上的电子邮件.POP 协议支持“离线”邮件处理.其具体过程是:邮件发送到服务器上,电子邮件客户端调用

Hadoop基础-07-MapReduce原理、序列化和源码分析

1. MapReduce原理 1.1.          MapReduce概述 (1)MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题. (2)MapReduce由两个阶段组成:Map和Reduce,用户只需要实现map()和reduce()两个函数,即可实现分布式计算,非常简单.这两个函数的形参是key.value对,表示函数的输入信息. (3)在Hadoop 中,map 函数 位 于 内 置 类 org.apache.hadoop.map

区块链技术系列(3)- Fabric基础架构原理

前言 对于区块链方面多技术,我还是建议大家多看英文文档,多利用Google来搜索技术文章. 怎么搭建自己专属V-P-N来访问Google,请看我之前发的文章: 新人如何快速搭建自己的个人网站以及自己专属V-P-N代理 Linux基金会于2015年12月启动了名为"超级账本"(Hyperledger)的开源项目,旨在推动各方协作,共同打造基于区块链的企业级分布式账本底层技术,用于构建支撑业务的行业应用和平台. 超级账本里包括10个项目(project),其中区块链框架类项目5个:Fabr