iOS之邮箱协议头

    开篇之际,先恶心一下自个儿。从去年12月开始,就嚷嚷着写一篇关于邮件的文章,然后就一直到年后才开笔了。罪过罪过……在吐槽一下,英文文档各种坑,主要是看不懂,几乎一大半时间都是在翻译文档上面了。还是自己不努力,抱歉抱歉。那么这篇文章主要是介绍发送简单邮件和回复简单邮件的邮件格式头设置,接下来会介绍一些发送“附件”相关的邮件格式头设置。

    虽然是写邮箱客户端,但由于公司项目时接入Gmail的,所以此篇文章是介绍接入Gmail相关的细节问题。我们都知道邮件服务器之间一直遵循几种协议:STMP、IMAP、POP3。那么作为客户端呢,只需要使用好API貌似就可以开始干活了是吧,恰好,Gmail封装了一套非常好用的API,所以具体的STMP、IMAP、POP3协议就不一一介绍了,这篇文章主要介绍简单邮件头(RFC2822)的注意事项。


    RFC2822是规范邮件协议发送头部的格式问题,几乎所有邮件协议头都是相同的,这也就是为啥各大邮件服务器能识别不同邮件服务器发送过来的邮件。接下来就简单介绍协议头的几个属性:

Date: 发送邮件日期,(ex: Sun, 14 Feb 2016 23:42:29 -0800 (PST))

Message-ID: 唯一标识邮件的ID,由三部分组成(唯一表示,'@',主机名称也就是arp的反向转发地址)。需要注意一点的是,在使用Gmai ID的过程中也会有一个identify,与此不同的是此ID是标示邮件的唯一ID,Gmai中的ID仅在Gmai邮件服务器有效。(ex:<56c18165.27d6b60a.c8ada.ffff9eb8SMTPIN_ADDED_MISSING@mx.google.com>)

From: 来此何处,别人发给你的邮件,可以这么理解,格式mailName <mailAddress>。(ex:=?utf-8?q?Uber?= <support@uber.com>)

To: 发给谁,去向何方,和From的格式是一样的,如果存在多个人只需要在二者之间加一个‘, ’作为区别。(ex:=?utf-8?q?Uber?= <support@uber.com>, =?utf-8?q?Uber?= <support@uber.com>)

Subject: 发送的标题。(ex: =?utf-8?q?Welcome_to_Uber!?=)

CC: 抄送,类似于copy,当然别人可以看到这封邮件是抄送给谁的,同样可以回复邮件。这个比较纳闷的就是它和‘To’有多大区别了。

BCC: 密送,当事人知道,别人不知道。

In-Reply-To: 回邮地址,此列表的上一封邮件的Message-ID。

References: 此列表的所有Message-ID。


    有如上几个属性,就可以简单的发送一封邮件和简单的回复邮件。那么同样需要注意的问题在于,我们From、To、Subject。针对存在中文的属性,这几个属性就进行了base64编码,需要我们解码活着发送时加密,格式=?UTF-8?B? + base64String + ?=。同样的在我们回复邮件的,同样需要在subject前面添加‘Re: ’。

    那么此篇文章就先写到这里,最后面将会贴一小戳邮件格式的代码:

图1.发送邮件基本格式图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,463评论 19 139
  • 本文包括:1、名词解释2、邮件收发过程3、JavaMail 知识概要4、发送一封符合 MIME 协议的 JavaM...
    廖少少阅读 9,570评论 2 13
  • (一) - 邮箱收发协议 什么是POP3、SMTP和IMAP协议 电子邮件工作原理 POP3 POP3是Post ...
    颜值不够才华来凑阅读 11,138评论 7 14
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,955评论 18 399
  • 先開坑寫了多多的副食品,發現其實應該先來寫寫我與多多妹子(喝奶小怪物)的親餵磨合之路。 本文稱媽媽乳房直接餵奶為親...
    多多媽媽阅读 4,721评论 3 4