仅获取电子邮件的内容

时间:2012-05-22 23:58:19

标签: python imaplib

我正在尝试仅返回我从IMAP服务器获取的邮件的邮件内容。我觉得我在没有问题的情况下让这一点工作,但我现在得到一堆垃圾返回。这是我目前从服务器回来的内容(包括一堆我不想要的垃圾)。

我的代码如下:

server.select('INBOX')
status, ids = server.search(None, 'UnSeen')

latest_id = ids[0]
print 'latest id is', latest_id
status, msg_data = server.fetch(latest_id, '(RFC822)')
raw_data = msg_data[0][1]
print 'raw msg data: ', raw_data

我的目标是将字符串“Abc”隔离出来:

  

raw msg data:Delivered-To:Received:by   使用SMTP id k5csp25808iba;           星期二,2012年5月22日16:52:37 -0700(PDT)返回路径:< 3xSa8TyIUAIYBIBIEJFFGFA.BFBACICAAIB.dGgfq0IEl2373.5ysmo.qyyqvo.myw@grandcentral.bounces.google.com>   收到SPF:通过(google.com:域名为   3xSa8TyIUAIYBIBIEJFFGFA.BFBACICAAIB.dGgfq0IEl2373.5ysmo.qyyqvo.myw@grandcentral.bounces.google.com   指定为允许的发送者)client-ip = 10.52.24.68;   身份验证 - 结果:mr.google.com; spf = pass(google.com:域名   3xSa8TyIUAIYBIBIEJFFGFA.BFBACICAAIB.dGgfq0IEl2373.5ysmo.qyyqvo.myw@grandcentral.bounces.google.com   指定为允许的发件人)   smtp.mail=3xSa8TyIUAIYBIBIEJFFGFA.BFBACICAAIB.dGgfq0IEl2373.5ysmo.qyyqvo.myw@grandcentral.bounces.google.com;   DKIM =通   header.i=3xSa8TyIUAIYBIBIEJFFGFA.BFBACICAAIB.dGgfq0IEl2373.5ysmo.qyyqvo.myw@grandcentral.bounces.google.com   收到:来自mr.google.com([10.52.24.68])           用SMTP id s4mr15641011vdf.3.1337730757212(num_hops = 1);           2012年5月22日星期二16:52:37 -0700(PDT)DKIM-Signature:v = 1; A = RSA-SHA256; C =轻松/放松;           d = google.com; S = 20120113;           H = MIME版本:参考文献:消息ID:日期:受试者:从:至            :内容类型;           BH = KIYz0SegimNSAAbGsi5167k + DIHSSlVjHp4RK92QeKo =;           B = K2 // 5fPk82ocgnfM6iY4abv / RnxBzlbpnhSosuzkhf8cASjQmyLI0fshrY / xFWY1kh            dQHWDqnpdPW5JhF8kODPkX6nDUCTmA81954ROjmqorUHqoqrqNgcJg17M5PPhfMCduhm            HaavvpGomS8M29A2Yw81p6 + BDSLHDOsVaqXKM1SuuBjslBYZZNEz3YNDsZWHWop64O6V            STWCiuXhdAwxqD3Ruuh1ZTbxrmHMimKZfGtF5wahvy8prRQibdBd21eW05fk7PHwalg9            vrsKpGD / xYzpGzEc7nUzIvirUlHFebN3r7JqO463ZKpWgKX / zEdG / uO2OFdxsYdqThow            EBDg == MIME-Version:1.0收到:10.52.24.68,SMTP id为s4mr10817316vdf.3.1337730757202; 2012年5月22日星期二16:52:37 -0700   (PDT)参考文献:   < +18184955650.77d431b4360d0f0785312b85196039cf7bf69257@txt.voice.google.com>消息ID:   < +18184955650.d58cd371f90b1e89b989489c4752e917791953de@txt.voice.google.com>日期:2012年5月22日星期二23:52:37 +0000主题:短信来自   来自:“”   < .T6WVgq84bs @ txt.voice.google.com>至:    内容类型:text / plain;   字符集= ISO-8859-1;格式=流动; delsp =是

     

ABC

2 个答案:

答案 0 :(得分:1)

我能够找到传递给server.fetch()的字符串的引用(如上所述)here。 这回答了我的问题,因为我可以通过以下方式隔离我想要的字符串:

status, msg_data = server.fetch(some_id, '(UID BODY[TEXT])')

答案 1 :(得分:0)