我有一个对象。
fp = open(self.currentEmailPath, "rb")
p = email.Parser.Parser()
self._currentEmailParsedInstance= p.parse(fp)
fp.close()
self.currentEmailParsedInstance,从这个对象我想得到一封电子邮件的正文,只有文本没有 HTML....
我该怎么做?
像这样的东西?
newmsg=self._currentEmailParsedInstance.get_payload()
body=newmsg[0].get_content....?
然后从正文中剥离 html。那是什么......返回实际文本的方法......也许我误解了你
msg=self._currentEmailParsedInstance.get_payload()
print type(msg)
输出=输入“列表”
电子邮件
返回路径:
接收:来自 xx.xx.net(示例),由 mxx3.xx.net (xxx)
id 485EF65F08EDX5E12 for xxx@xx.com;2008 年 10 月 23 日星期四 06:07:51 +0200
收到:来自 xxxxx2 (ccc) by example.net (ccc)(身份验证为 xxxx.xxx@example.com)id 48798D4001146189 for example.example@example-example.com;2008 年 10 月 23 日星期四 06:07:51 +0200
发件人:“示例”
收件人:
主题:FW:示例 日期:2008 年 10 月 23 日星期四 12:07:45 +0800
组织:示例 邮件 ID:<001601c934c4$xxxx30$ a9ff460a@xxx>
MIME 版本:1.0
内容类型:多部分/混合;
boundary="----=_NextPart_000_0017_01C93507.F6F64E30"
X-Mailer:Microsoft Office Outlook 11
X-MimeOLE:由 Microsoft MimeOLE V6.00.2900.3138 生产
线程索引:Ack0wLaumqgZo1oXSBuIpUCEg/wfOAABAFEA
这是 MIME 格式的多部分消息。
------=_NextPart_000_0017_01C93507.F6F64E30
内容类型:多部分/替代;
边界="----=_NextPart_001_0018_01C93507.F6F64E30"
------=_NextPart_001_0018_01C93507.F6F64E30
内容类型:文本/纯文本;
charset="us-ascii"
内容传输编码:7bit
发件人:example.example[mailto:example@example.com]
发送时间:2008 年 10 月 23 日星期四上午 11:37
收件人:xxxx@example.com
主题:S/I 例如(提单号:
4357-0120 -810.044)
请找到附加的example.doc),
谢谢。
B.rgds,
xxxxxx
------=_NextPart_001_0018_01C93507.F6F64E30
内容类型:文本/html;
charset="us-ascii"
内容传输编码:quoted-printable
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:st1=3D"urn:schemas-microsoft- com:office:smarttags" =
xmlns=3D" http://www.w3.org/TR/REC-html40 ">
HTML STUFF 直到
------=_NextPart_001_0018_01C93507.F6F64E30--
------=_NextPart_000_0017_01C93507.F6F64E30
内容类型:应用程序/msword;
name="xxxx.doc"
内容传输编码:base64
内容处置:附件;
文件名="xxxx.doc"
0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAYgAAAAEAAAD+////AAAAAF8AAAD///////////////////////////////////// //// ////////////////////////////////////// //////////////////////////////////////////////////////// ///////////////////////////////////////// ////// //////////////////////////////////// ///////////////////////////////////////// ///////////////////////////////////////// ////////////////////////////////////////// ///////////////////////////////////////// ///////////////////////////////////////// ////////////////////////////////////////// ///////////////////////////////////小号pcEAI2AJBAAA + FK / AAAAAAAAEAAAAAAABgAAnEIAAA4AYmpiaqEVoRUAAAAAAAAAAAAAAAAAAAAA AAAECBYAMlAAAMN / AADDfwAAQQ4AAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD // w8AAAAA AAAAAAD // w8AAAAAAAAAAAD // w8AAAAAAAAAAAAAAAAAAAAAAKQAAAAAAEYEAAAAAAAARgQAAEYE AAAAAAAARgQAAAAAAABGBAAAAAAAAEYEAAAAAAAARgQAABQAAAAAAAAAAAAAAFoEAAAAAAAA4hsA AAAAAADiGwAAAAAAAOIbAAA4AAAAGhwAAHwAAACWHAAARAAAAFoEAAAAAAAABzcAAEgBAADmHAAA FgAAAPwcAAAAAAAA / BwAAAAAAAD8HAAAAAAAAPwcAAAAAAAA / BwAAAAAAAD8HAAAAAAAAPwcAAAA AAAAMjYAAAIAAAA0NgAAAAAAADQ2AAAAAAAANDYAAAAAAAA0NgAAAAAAADQ2AAAAAAAANDYAACQA AABPOAAAaAIAALc6AACOAAAAWDYAAGkAAAAAAAAAAAAAAAAAAAAAAAAARgQAAAAAAABHLAAAAAAA AAAAAAAAAAAAAAAAAAAAAAD8HAAAAAAAAPwcAAAAAAAARywAAAAAAABHLAAAAAAAAFg2AAAAAAAAAAAAAAA0NgAAAAAAADQ2AAAAAAAANDYAACQA AABPOAAAaAAAAALc6AACAAAAAWDYAAGkAAAAAAAAAAAAAAAAAAAAAAAAAAAARgQAAAAAAABHLAAAAAAA AAAAAAAAAAAAAAAAAAAAD8HAAAAAAAAPwcAAAAAAAArywAAAAAAABHLAAAAAAAAFg2AAAAAAAAAAAAAA0NgAAAAAAADQ2AAAAAAAANDYAACQA AABPOAAAaAAAAALc6AACAAAAAWDYAAGkAAAAAAAAAAAAAAAAAAAAAAAAAAAARgQAAAAAAABHLAAAAAAA AAAAAAAAAAAAAAAAAAAAD8HAAAAAAAAPwcAAAAAAAArywAAAAAAABHLAAAAAAAAFg2AAAAAAA
------=_NextPart_000_0017_01C93507.F6F64E30--
我只想得到:
发件人:xxxx.xxxx [mailto:xxxx@example.com]
发送时间:2008 年 10 月 23 日星期四上午 11:37
收件人:xxxx@example.com
主题:xxxx 的 S/I(提单编号:
4357-0120 -810.044)
请查找附件 xxxx.doc),
谢谢。
B.rgds,
xxxxxx
不确定邮件是否格式错误!似乎如果你得到一个 html 页面,你必须这样做:
parts=self._currentEmailParsedInstance.get_payload()
print parts[0].get_content_type()
..._multipart/alternative_
textParts=parts[0].get_payload()
print textParts[0].get_content_type()
..._text/plain_
body=textParts[0].get_payload()
print body
...get the text without a problem!!
非常感谢文科。
所以它有点像处理xml,本质上是递归的。