“编码字符”由以下ABNF语法定义。该使用RFC 822的符号,除了空格字符不能出现在'编码字符'的组件之间。
encoded-word =“=?” charset“?” 编码“?” 编码文本“?=”
charset = token; 见第3节
encoding = token ; 见第4节
token = 1 * <除SPACE,CTL和especials外的任何CHAR>
especials =“(”/“)”/“<”/“>”/“@”/“,”/“;” /“:”/“
<“> /”/“/”[“/”]“/”?“/”。“/”=“
encoded-text = 1 * <除“?”之外的任何可打印的ASCII字符
或SPACE>
; (但请参阅“在消息中使用编码词
; 标题“,第5节)
'编码'和'字符集'名称都是大小写无关的。字符集名称“ISO-8859-1”相当于“iso-8859-1”,而名为“Q”的编码可以拼写为“Q”或“q”。
“编码字符”不得超过75个字符,包括’charset’, ’encoding’, ’encoded-text’ 和分隔符。如果是希望编码更多的文本,而不是符合“编码字符”75个字符,多个'编码字符'(由CRLF SPACE分隔)也可是可行的。
虽然对多行标题字段的长度没有限制,单拥有一个或多个'encoded-word(编码字符)'的标题字段,每行的'encoded-word’限于76个字符。
长度限制用以减少通过互联网邮件网关的互操作性,并在判断一个 token(令牌)是否为“编码词”或别的东西之前,加强对一个标题必须提前解析的次数限制(在寻找最后一个 ?= 定界符)。
重要提示:RFC 822分析器将'encoded-word(编码字符)'定义为公认的’atom’s (词组)。由此得出一个结论,未编码的空白字符(如SPACE和HTAB)被禁止在“encoded-word编码字”中出现。例如,字符序列
=?iso-8859-1?q?this is some text?=
将被解析为四个“’atom’s (词组)”,而不是单个“’atom’(词)”(通过个RFC 822分析器)或'encoded-word(编码字符)'(通过一个理解encoded-word(编码字符)的解析器)。如要要正确的方式来编码字符串“this is some text “,
SPACE字符同样也要进行编码,例如
=?iso-8859-1?q?this=20is=20some=20text?=
最后推荐一款在学习邮件协议时遇到的一个关于邮件透明加密的产品,就是天御云安推出的隐秘邮,隐密邮在确保邮件内容加密的同时,部署对于用户也是透明的,既满足加密需求也不影响用户使用习惯。
关键词:邮件安全 透明加密 邮件编码
阅读(1820) | 评论(0) | 转发(0) |