邮件头是如何产生的?

简介:

  经常会有人问到邮件头是如何产生的?为什么每封邮件中要有邮件头?我们首先需要了解邮件的传输。邮件的传输,其实是发送方递交,接收方接收。其最小单位是邮箱。而用户邮件从终端发送到其在服务器的邮箱的过程,我们认为是在其个人邮箱范围内的,不算邮件的传输,仅是同步。邮件的递交,是跨邮箱的,有时甚至是跨服务器,跨组织的。这就要求发送方和接收方需要遵循相同的规则,这样接收方才能读懂发送方的意图。SMTP就是用于邮件递交的公共规则。当然,我们现在对邮件又有了更多的要求,包括通用性(西班牙文邮件发送到中文邮箱,内容不会出现乱码),安全性(邮件要经过扫描,以阻止垃圾邮件),准确性(邮件传输的路径要确定且有迹可循)。因此,邮件其实是分为两部分的:邮件头和邮件内容。其中,邮件头是可编写的,而邮件内容是深度加密的。通常,我们会在邮件头中记录:

a. 发送方递交邮件时,会对邮件的格式等信息在邮件头中予以标注,以便接收方使用相同的协议进行接收。通用性。

b. 邮件递交过程中,每一跳(邮件流经的会对邮件进行处理的服务器),都会对邮件进行接收与转发,这一过程需要记录在邮件头中和服务器日志里,供管理员查询。确定性。

c. 邮件被杀毒软件/反垃圾邮件程序扫描后,也会将扫描结果加入邮件头,使邮件不必反复被扫描。安全性。

因此,我们看到,邮件头是在发送者所在的服务器与接收者所在的服务器进行通讯时产生的。客户端与邮件所在的服务器的通讯不会被写入邮件头。这也是为什么我们看不到自己发出邮件的邮件头的原因。



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

相关文章
|
9月前
Javamail发送新浪邮件后保存邮件到已发送
Javamail发送新浪邮件后保存邮件到已发送
66 0
|
Android开发 iOS开发
如何在 Gmail 中将所有电子邮件标记为已读
如何在 Gmail 中将所有电子邮件标记为已读
Jamil+c#—实现邮件的发送
Jamil+c#—实现邮件的发送
130 0
Jamil+c#—实现邮件的发送
|
数据安全/隐私保护
SIP响应消息和头字段
SIP响应消息和头字段
|
JavaScript 开发工具 前端开发