python脚本下载附件在主题行中有关键字的附件

问题描述:

import getpass, poplib, email, parse 
from poplib import POP3 
user = '[email protected]' 
M = poplib.POP3_SSL('outlook.office365.com', '995') 
M.user(user) 
M.pass_('R7!') 
numMessages = len(M.list()[1]) 
print ("You have %d messages." % (numMessages)) 
print ("Message List:") 

M.quit() 

我有上面的代码给出了我的电子邮件中的邮件数量。我想从主题行中有“hello”的消息中下载附件。python脚本下载附件在主题行中有关键字的附件

我曾尝试:

for mList in range(numMessages): 
     for msg in M.retr(mList+1)[1]: 
      if msg.startswith('Subject'): 
       print(msg) 
       break 

我已经在很多的例子在网上看了,真的需要这方面的帮助。我也是这种脚本的新手。

谢谢。

+0

@LaurentLAPORTE我试图找到每封电子邮件的主题,但它一直说预期的字节代替字符串。请建议一个页面,告诉我如何在主题中查找字符串,然后我可以向前移动。 – qwerty

+0

请发布您的代码和堆栈跟踪。 –

+0

是否打印出来了? – jknupp

引用文档:

POP3.retr(which)

Retrieve whole message number which, and set its seen flag. Result is in form (response, ['line', ...], octets).

所以M.retr(mList+1)[1]是行的列表。

您正在迭代一个字符串列表,它可以是unicode或字节字符串。

该文档没有多说你得到哪种类型的字符串,但是,如果你使用的是Python 3,我假设它是unicode字符串。

因此:msg.startswith("Subject:")应该工作。

+0

我不太明白,如何将POP3.retr(其中(mList + 1)[1]:'在我的代码中?]你是说我应该吗? – qwerty

+0

对不起,但你删除了你的代码示例...所以答案是无关紧要的 –

+0

我把它放回了@LaurentLAPORTE – qwerty