开发者社区> 技术小胖子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Email原理

简介:
+关注继续查看

E-mail与Internet

   在专业的E-mail解决方案中,整个系统的各个组件通常都是来自同一家公司的软件,你不能随意更换个别组件,因为通常没有“等效程序”可以更换。另一方面,Internet Email系统采取开放式设计,任何人都是可以用不同的软件组合来架设一套邮件系统,并且能够与其他interner Email系统交换信息,唯一前提是所有软件都不惜遵守一组公开的标准与协议。这组协议制定了邮件的标准格式、邮件系统个角色的定位与任务以及邮件从发送方传递到接收方的详细过程。Exchange本身不是一个完整的Interner Email邮件系统,它只是整个系统中的一个重要组件。大多数Email用户只熟悉用来读信、写信的软件,称为“邮件用户代理”(Mail User Agent,MUA),常见的MUA包括:mutt、elm、pine、netscape与outlook express。其任务是让用户能够读信、写信、寄信。不过,MUA并非直接将Email送到收件人手中,而是由“邮件传输代理”(Mail Transfer Agent,MTA)代为传递。exchange扮演的角色正是MTA。

邮件系统的组成

      当你寄信时,信件是交给邮局处理。同理,当你要求MUA送出一封邮件,它只能将该邮件交给一台运行MTA软件(例如exchange、postfix)的服务器。图1-1是Email从发信者到收信者所经过的处理流程。MTA的任务是接受MUA的委任,将Email从一个系统递送到另一个系统。并收下远方MTA送来的邮件。每当MTA收到MUA的寄信请求,它会先判断是否应该受理。通常,如果邮件是来自本地系统的用户,或是本地网络上的系统,或是任何特许可以通过它转发(relay)邮件到其他目的地的网络,MTA都会受理寄信请求。另一方面,MTA也会依据“收件人”来决定是否要收下邮件。如果收件人是本地系统的用户,或是收件人位于它知道要如何转递(forword)的其他系统,MTA就会收下信息。

      MTA收到邮件之后,它必须决定下一步做什么。它有可能将邮件递送给自己系统上的用户,也有可能将邮件交给另一个MTA来继续传递。对于要交给其他网络的邮件,有可能会经过多个MTA接力传递。如果MTA无法递送信息,也无法转交给其他MTA处理,则退信给原发信者,或是发出通知函给系统管理员。一般,个人的MTA Server通常是由ISP控管;公司员工的,则可能由企业的信息系统部门控管。

wKioL1nN4QTzO6GkAABoy_-vjcg951.jpg

邮件终点站的MTA,在发现收件人是本地系统的用户之后,必须将邮件交给“邮件投递代理”(message delivery agent,MDA)。MDA可能将信息存放在普通文件夹内,也可能存入专门存储电子邮件的特殊数据库。不管是哪一种形式,任何用来长期保存邮件的机制,我们一律统称为邮箱(message storage),或俗称为“信箱”。

邮件被存入邮箱后,它就待在那里,等待收件人将它收走。收件人使用MUA来取信、读信。提供邮箱访问服务的服务器软件,并非当初收下信息的MTA,两者的角色是分离的。MUA必须让用户成功通过身份验证,才可取走邮箱里的邮件,呈现给用户阅读。

由于Internet Email采用开放式标准,所以MTA、MDA、MUA等不同角色,可分别由许多不同的软件来扮演。实现相同协议的不同包,可以彼此互相交流,而不管他们是在什么系统上运行。如果将一个完整的Email邮件系统集中在一起,你可能会发现,处理SMTP的是一套软件,处理POP/IMAP的是另一套软件。但邮件系统中每一种角色,都有许多不同的软件可以选择。




   本文转自327051661 51CTO博客,原文链接:http://blog.51cto.com/andyboge/1969730,如需转载请自行联系原作者






版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python: email-validator验证Email地址
Python: email-validator验证Email地址
0 0
email 验证|学习笔记
快速学习 email 验证
0 0
谋杀 Email
作为新来者,凭着技术的进步、企业提升效率的需求、大厂们留下的中小客户市场切口,Zoom、Slack们高歌猛进,抢夺“Email们”的市场,在“WinTel大厂”们没能涉足的市场切下一块蛋糕。但在未来,当深入到大厂腹地,深入大型客户市场,新老企服软件公司的一战似乎不可避免。面对这些老玩家,他们能成功么
27 0
使用 Webix 创建 Email 客户端
Webix 是一个JavaScript UI 库,提供了多达88个UI小部件和功能丰富的 CSS/HTML5 JavaScript 控件。使用 Webix 可以有效地加快 Web 应用的开发。文本将演示了如何通过 Webix 框架,来创建一个 Email 客户端原型。
4679 0
Tmail2000研究--Demo不能发送Email的Bug
今天研究了一下TMail2000,发现他的Demo发送Email根本就行了. 开始发现每次[Save fields to header]时老是在mToNames列表中多了一个空的Item,发送email返回的消息也是Bad address xxxx 后来跟踪发现 function TSMTP2000.
364 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载