【问题标题】:python script to download attachments in email having keywords in subject line用于在主题行中包含关键字的电子邮件中下载附件的 python 脚本
【发布时间】:2017-05-09 18:44:17
【问题描述】:
import getpass, poplib, email, parse
from poplib  import POP3
user = 'rnandipati@qwerty.com' 
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”的邮件中下载附件。

我尝试过的:

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

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

谢谢。

【问题讨论】:

  • @LaurentLAPORTE 我试图找到每封电子邮件的主题,但它一直说需要字节代替字符串。请建议一个页面,向我展示如何在主题中查找字符串,然后我可以继续前进。
  • 请发布您的代码和堆栈跟踪。
  • 打印出来的东西有吗?
  • 它打印电子邮件的数量@jknupp
  • @LaurentLAPORTE 我已附上我尝试过的内容。该代码只是读取我无法实现的主题行。

标签: python outlook pop3


【解决方案1】:

引用文档:

POP3.retr(哪个)

检索整个消息编号which,并设置其已看到标志。结果是形式(响应,['line',...],八位字节)。

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

您正在迭代一个字符串列表,可以是 unicode ou bytes 字符串。

文档没有详细说明您获得哪种类型的字符串,但是,如果您使用的是 Python 3,我假设它是 unicode 字符串。

所以:msg.startswith("Subject:") 应该可以工作。

【讨论】:

  • 我不太明白如何将POP3.retr(which(mList+1)[1]: 合并到我的代码中。你是说我应该?
  • 抱歉,您删除了代码示例...所以答案断章取义
  • 我把它放回去了@LaurentLAPORTE
  • 感谢您的帮助。
猜你喜欢
  • 2017-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
  • 2022-11-24
  • 2015-08-30
  • 1970-01-01
相关资源
最近更新 更多