python - 如何跳过处理作为另一封电子邮件附件的电子邮件的附件

标签 python email jython attachment

使用 jython

我遇到的情况是电子邮件带有不同的附件。某些文件类型我处理其他我忽略并且不写入文件。 我陷入了一个相当糟糕的境地,因为有时人们发送一封电子邮件作为附件,而附加的电子邮件有合法的附件。

我想做的是跳过附加的电子邮件及其所有附件。

使用 python/jythons 标准电子邮件库我该怎么做?


更清楚

我需要解析一封电子邮件(名为 ROOT 电子邮件),我想使用 jython 从这封电子邮件中获取附件。 接下来支持某些附件,即 .pdf .doc 等 现在碰巧的是,客户发送一封电子邮件(ROOT 电子邮件)和另一封电子邮件(CHILD 电子邮件)作为附件,并且在 CHILD 电子邮件中它有 .pdf 附件等。

我需要的是:删除附加到 ROOT 电子邮件和 CHILD 电子邮件附件的所有 CHILD 电子邮件。发生的事情是我浏览了整封电子邮件,它只是解析每个附件,包括 ROOT 附件和 CHILD 附件,就好像它们是 ROOT 附件一样。

我不能拥有这个。我只对合法的 ROOT 附件感兴趣,即 .pdf .doc。 xls .rtf .tif .tiff

现在应该可以了,我得跑去赶公共(public)汽车! 谢谢!

最佳答案

现有建议的问题是 walk 方法。这递归地、深度优先地遍历整棵树,包括子树。

查看 walk 方法的源代码,并对其进行修改以跳过递归部分。粗略阅读表明:

if msg.is_multipart():
    for part in msg.get_payload():
          """ Process message, but do not recurse """
          filename = part.get_filename()

阅读 pydocs,get_payload 应该返回顶级消息的列表,而不是递归。

关于python - 如何跳过处理作为另一封电子邮件附件的电子邮件的附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/319896/

相关文章:

python - Django - 循环标签。我怎样才能让它发挥作用?

java - 在 jython 中导入类

java - 在 Java 中将参数传递给 Python 脚本

python - 如何复制 csv 内容并粘贴到 Excel 工作表?

python - pylast 软件从 Last.fm API 吸引 top_tracks 的一小段代码

javascript - 相当于 Python str() 方法的 JS

email - 同一服务器上的多个 SMTP session

python - 使用 python 通过 TLS 发送电子邮件

PHP 群发邮件 (25K-100K) 列表

linux - 将变量从 Jython (wsadmin) 传递到 shell 脚本