2014-10-08 120 views
2

我想解析電子郵件並收到下面的消息使用Apple郵件的答覆。 它由包含附件和HTML部分的多部分/混合部分組成。多部分內容類型:text/html內多部分/混合

簡單:

multipart/alternative 
    \--> text/plain 
    \--> multipart/mixed 
     \--> text/html 
     \--> multipart/alternative 
     \--> text/html (empty) 

或電子郵件來源:

From: "John Doe" <[email protected]> 
... // some headers 
Content-Type: multipart/alternative; 
boundary="Apple-Mail=_9331E12B-8BD2-4EC7-B53E-01F3FBEC9227" 
Message-Id: <[email protected]> 
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) 
... // rest of headers 

--Apple-Mail=_9331E12B-8BD2-4EC7-B53E-01F3FBEC9227 
Content-Transfer-Encoding: 7bit 
Content-Type: text/plain; 
    charset=us-ascii 

My message in text... 


--Apple-Mail=_9331E12B-8BD2-4EC7-B53E-01F3FBEC9227 
Content-Type: multipart/mixed; 
boundary="Apple-Mail=_CA6C687E-6AA0-411E-B0FE-F0ABB4CFED1F" 


--Apple-Mail=_CA6C687E-6AA0-411E-B0FE-F0ABB4CFED1F 
Content-Transfer-Encoding: 7bit 
Content-Type: text/html; 
    charset=us-ascii 

<html><head></head><body>My message in HTML...</body></html> 

--Apple-Mail=_CA6C687E-6AA0-411E-B0FE-F0ABB4CFED1F 
Content-Disposition: inline; 
    filename=myfile.pdf 
Content-Type: application/pdf; 
    name="myfile.pdf" 
Content-Transfer-Encoding: base64 

... // base64 content 


--Apple-Mail=_CA6C687E-6AA0-411E-B0FE-F0ABB4CFED1F 
Content-Transfer-Encoding: 7bit 
Content-Type: text/html; 
    charset=us-ascii 

<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"><base></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><blockquote type="cite"></blockquote></div><br></body></html> 
--Apple-Mail=_CA6C687E-6AA0-411E-B0FE-F0ABB4CFED1F-- 

--Apple-Mail=_9331E12B-8BD2-4EC7-B53E-01F3FBEC9227-- 

聲明的最後一部分是空<blockquote type="cite"></blockquote>(是不是因爲它是一個答覆?)。

  • 這是有效的兩個有兩個Content-Type: text/html在同一multipart?
  • 是否有最後一個(空白)部分的含義?
  • 是否有可能在其他文本/ html部分有一些實際的文本,或者我可以在解析時總是忽略它? (或連接部件)

由於

回答

1

根據RFC1341(部分7.2.2)

用於多部分的主要亞型, 「混合」,旨在用於當 身體部分是獨立的,旨在連續顯示。

所以我會說,蘋果的電子郵件是有效的(即使我沒有得到空白部分的觀點)。這兩個html部分應該被認爲是不同的(在我的情況下,最好將它們連接起來)。