2014-10-08 94 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部分应该被认为是不同的(在我的情况下,最好将它们连接起来)。