關於郵件編碼字段的語法的一些總結

關於郵件編碼字段的語法的一些總結:

“編碼字符”由以下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?=

最後推薦一款在學習郵件協議時遇到的一個關於郵件透明加密的產品,就是天御雲安推出的隱祕郵,隱祕郵在確保郵件內容加密的同時,部署對於用戶也是透明的,既滿足加密需求也不影響用戶使用習慣。網址:https://mail.tyyunan.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章