SMTP协议之电子邮件格式

以下是使用FOXMAIL接收邮件后,得到的邮件源码,包括正文和两个附件(.JPG, .TXT):

----------------------------------------------------------------

以下部分为邮件服务器添加的邮件头

----------------------------------------------------------------

Received:from m15-17.126.com (unknown [220.181.15.17])

bymx10 (Coremail) with SMTP id PMCowECZWSfPlodRSu6NCw--.779S2;

Mon,06 May 2013 19:41:03 +0800 (CST)

DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; // 域名密钥识别邮件标准,判断垃圾邮件

s=s110527;h=Received:Date:From:To:Subject:Content-Type:

MIME-Version:Message-ID; bh=B57Zfi/+wCVQ61kM9GVkCECk1ax4OZVQDtnW // 不是base64编码

T4lS0x8=;b=XdeYidC7bR1a1l7x3yGAMiMR5ElDx2O4/db2iPrVc0dZ7Y7ANStu     // 不是base64编码

6d9o4l9yVysfwk8vifb0eqyxV2wp28pIlfLEGZbDDpKaLMCaLAbVXdW+2hQl4ojd    // 不是base64编码

sJ7NiAdF1j5X2N87wktFKA8ZK4lPhBYI1yFrNIT+PODg2NzF1CX2FDM=

Received: from zzzzyy91$126.com ( [202.205.103.22] ) by ajax-webmail-wmsvr17

(Coremail) ; Mon, 6 May 2013 19:41:01 +0800(CST)

X-Originating-IP: [202.205.103.22]                //初始ip地址,同一电脑不同邮箱发邮件,该值相同

---------------------------------------------------------------------------------------------------------

DATA(以下内容由邮件客户端定义,为DATA命令后输入的内容)

灰色高亮为主要内容

--------------------------------------------------------------------------------------------------------

Date: Mon, 6 May2013 19:41:01 +0800 (CST)

From: [base64code]<zzzzyy91@126.com>

To: [emailaddress]

Subject: [base64 code]

X-Priority: [integer]                                          // 邮件优先级

X-Mailer: [Coremail Webmail Server Version SP_ntes V3.5 build      // 代理发信客户端

20130412(21945.5326.5325) Copyright (c)2002-2013 www.mailtech.cn 126com]

X-CM-CTRLDATA: [base64 code]                           // X-邮件服务器自定义的信息段,未知作用

Content-Type:multipart/mixed;                               // 声明邮件内容格式

boundary="----=_Part_354288_309861106.1367840461937"    // 声明邮件内容boundary

MIME-Version: 1.0                                          // 声明MIME版本

Message-ID: <>                                             // X-邮件服务器自定义的信息段

X-CM-TRANSID:                                             //X-邮件服务器自定义的信息段

X-CM-SenderInfo:                                           // X-邮件服务器自定义的信息段

X-Coremail-Antispam:                                       // X-邮件服务器自定义的信息段

---------------------------------------------------------

以下为邮件的内容

黄色高亮部分为内容说明语句和定界符

绿色高亮部分为邮件内容

蓝色高亮部分为附件内容

--------------------------------------------------------

------=_Part_354288_309861106.1367840461937                 //邮件内容开始

Content-Type: multipart/alternative;                           //邮件内容格式

boundary="----=_Part_354290_1105600126.1367840461937" // 邮件正文boundary

------=_Part_354290_1105600126.1367840461937              //邮件正文boundary -- 正文开始

Content-Type: text/plain; charset=GBK                        // 邮件正文格式和字符集

Content-Transfer-Encoding: base64

[base64]mailcontent (plain)[base64]                         //邮件正文(文本格式)编码(base64)

------=_Part_354290_1105600126.1367840461937              // 邮件正文boundary  --可选HTML格式

Content-Type: text/html; charset=GBK                        //邮件正文格式和字符集

Content-Transfer-Encoding: base64

[base64]mailcontent (html)[base64]                         //邮件正文(html格式)编码(base64)

------=_Part_354290_1105600126.1367840461937--           // 邮件正文boundary -- 正文结束

------=_Part_354288_309861106.1367840461937             // 邮件内容boundary -- 附件1开始

Content-Type: image/jpeg; name="20130324_224528_982.jpg" // 附件格式及文件名

Content-Transfer-Encoding: base64

Content-Disposition: attachment;filename="20130324_224528_982.jpg"

[base64](.jpg)image attachment[base64]                         //附件-图片内容编码(base64)

------=_Part_354288_309861106.1367840461937                  // 邮件内容boundary -- 附件2开始

Content-Type: text/plain; name="window data type.txt"            // 附件格式及文件名

Content-Transfer-Encoding: base64

Content-Disposition: attachment; filename="window datatype.txt"

[base64](.txt)plain attachment[base64]                         // 附件-文本内容编码(base64)

------=_Part_354288_309861106.1367840461937--                // 邮件内容boundary  -- 附件结束

SMTP电子邮件格式及源码解析相关推荐

  1. FastJson PropertyNamingStrategy 转换成JSON字符串的四种格式配置及源码解析

    FastJson在将bean转成JSON字符串时, 默认使用CamelCase(驼峰命名)的配置; 在1.2.15版本之后,FastJson支持配置PropertyNamingStrategy,有四种 ...

  2. Python|excel表格数据一键转json格式小工具|支持xlsx、xls格式转json|【源码+解析】

    背景    最近在使用JavaScript编写一些浏览器RPA脚本,脚本使用过程中遇到一些问题,脚本使用的数据往往存放在excel表,但运行时只能读取json数据,导致频繁人工excel转json,效 ...

  3. Rocksdb Compaction 源码详解(一):SST文件详细格式源码解析

    文章目录 前言 comapction流程概述 SST 文件细节 Footer meta index block filter meta block index meta block Compressi ...

  4. 谷歌BERT预训练源码解析(三):训练过程

    目录 前言 源码解析 主函数 自定义模型 遮蔽词预测 下一句预测 规范化数据集 前言 本部分介绍BERT训练过程,BERT模型训练过程是在自己的TPU上进行的,这部分我没做过研究所以不做深入探讨.BE ...

  5. Simple Dynamic Strings(SDS)源码解析和使用说明二

    在<Simple Dynamic Strings(SDS)源码解析和使用说明一>文中,我们分析了SDS库中数据的基本结构和创建.释放等方法.本文将介绍其一些其他方法及实现.(转载请指明出于 ...

  6. 【vuejs深入三】vue源码解析之二 htmlParse解析器的实现

    写在前面 一个好的架构需要经过血与火的历练,一个好的工程师需要经过无数项目的摧残. 昨天博主分析了一下在vue中,最为基础核心的api,parse函数,它的作用是将vue的模板字符串转换成ast,从而 ...

  7. Volley 源码解析之图片请求

    一.前言 上篇文章我们分析了网络请求,这篇文章分析对图片的处理操作,如果没看上一篇,可以先看上一篇文章Volley 源码解析之网络请求.Volley 不仅仅对请求网络数据作了良好的封装,还封装了对图片 ...

  8. dayjs 源码解析(一)(api)

    前言 作为一个程序员,阅读别人优秀代码是提升自己技术能力的一个很好的方法.下面,我将自己阅读 dayjs(v1.6.10)的源码的过程记录下来. 阅读库的代码,首先先要知道这个库的作用 dayjs 是 ...

  9. kube-proxy源码解析

    kube-proxy源码解析 ipvs相对于iptables模式具备较高的性能与稳定性, 本文讲以此模式的源 码解析为主,如果想去了解iptables模式的原理,可以去参考其实现,架构上无差别. ku ...

最新文章

  1. 总是多次出现 那个同样的 权限错误 _storage_write_error_, 所以一开始就把机器设好setenforce 0...
  2. 机器学习模型解释性工具SHAP
  3. Github之深入解析Ruby Gems缓存
  4. matlab简易编程,MATLAB简单编程
  5. 【Java】命令行生成JavaDoc文档
  6. getprofile()获取不到路径_获取链接文件Document——Dynamo Python系列教程(一)
  7. win下php+mysql+apache配置
  8. wxpython安装不上怎么回事_安装Python - wxPython失败的解决方法
  9. 正定矩阵,半正定矩阵,负定矩阵的通俗理解
  10. 16元日薪,从阿里云雇佣一个专家阿里云中小企业AI产品码栈解析
  11. 苹果电脑上好用的几款复制粘贴工具
  12. 酒店管理系统/酒店客房管理系统的设计与实现
  13. DDR SDRAM内存优化
  14. 【计算机网络】根据IP地址计算网络地址
  15. 适合做引流的产品有什么特点?引流产品必须具备几个特点
  16. Java实现word导出与pdf导出
  17. 腾讯云技术认证考试综述 腾讯云技术认证题库
  18. java面试笔试题50道及答案
  19. 【工具分享】如何识别手机里偷数据的那些软件(适用于安卓平台)
  20. 数字图像处理——信用卡数字识别

热门文章

  1. matlab disp怎么使用,matlab中disp的运用
  2. PHILIPS hue+Yeelight+HomeKit+智汀家庭云,打造全屋智能
  3. gcc: unlikely, likely
  4. word2vec简单总结
  5. 成为更好程序员的7个方法
  6. 鸟哥Linux私房菜
  7. 案例分享:Qt内窥镜相机录像程序(打开摄像头、支持多种摄像头、分辨率调整、翻转、旋转、亮度调整、拍照、录像、回放图片、回放录像)
  8. 视频教程-SharePoint 2019 入门实战教程-企业信息化
  9. 清理eclipse中得缓存
  10. 小目标检测的一些总结