在 python 中使用 email.HeaderParser 和 imaplib.fetch ?

2024-04-17

有没有人有一个在 Python 中使用 HeaderParser 类来获取通过 imaplib.fetch 拉取的消息的好例子?

我已经找到了很多相关的东西,但没有任何东西能做到这一点。

我需要完整获取 RFC822 吗?我希望简单地把主题拉下来。

Thanks!


好消息:你是对的......你不需要拉下 RFC822。这message_parts参数为fetch()让你变得相当细粒度。

这是如何仅获取标头的简单示例:

import imaplib
from email.parser import HeaderParser

conn = imaplib.IMAP4('my.host.com')
conn.login('[email protected] /cdn-cgi/l/email-protection', 'mypassword')
conn.select()
conn.search(None, 'ALL') # returns a nice list of messages...
                         # let's say I pick #1 from this

data = conn.fetch(1, '(BODY[HEADER])')

# gloss over data structure of return... I assume you know these
# gives something like:
# ('OK', [(1 (BODY[HEADER] {1662', 'Received: etc....')])
header_data = data[1][0][1]

parser = HeaderParser()
msg = parser.parsestr(header_data)
<email.message.Message instance at 0x2a>

print msg.keys()
['Received', 'Received', 'Received', 'Cc', 'Message-Id', 'From', 'To',
'In-Reply-To', 'Content-Type', 'Content-Transfer-Encoding', 'Mime-Version',
'Subject', 'Date', 'References', 'X-Mailer', 
'X-yoursite-MailScanner-Information',
'X-yoursite-MailScanner', 'X-yoursite-MailScanner-From', 'Return-Path',
'X-OriginalArrivalTime']

可以作为第二个参数传递的消息部分的完整列表fetch在 IMAP4 规范中:https://www.rfc-editor.org/rfc/rfc1730#section-6.4.5 https://www.rfc-editor.org/rfc/rfc1730#section-6.4.5

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 python 中使用 email.HeaderParser 和 imaplib.fetch ? 的相关文章

随机推荐

  • 核心数据迁移非常慢

    我正在尝试执行核心数据迁移 一切正常 只是迁移本身需要 10 多秒的时间 我正在使用 xcmappingmodel 在两个模型版本之间进行映射 效果很好 除了所需的时间长度之外 在下面的代码中 开始迁移 和 完成迁移 日志之间有 10 秒
  • 如何使用 make 打印目标的所有先决条件并构建规则

    一个大的项目通常有一个复杂的Makefile系统 有许多变量定义和目标先决条件依赖项分散在不同的 Makefile 中 有什么方便的方法来打印目标的所有先决条件和构建规则吗 具体来说 有两个问题 问题1 假设我有四个 Makefile 生成
  • 设置并验证 Python MySQL 连接中使用的 SSL/TLS 版本

    如何告诉 Python MySQL 连接器使用哪种 SSL TLS 协议 特定的 例如 TLS1 2 或最低的 如何检查已建立的连接使用哪种协议 我有一个应用程序使用mysql connector python 8 0 18 我连接这样的东
  • 将 CMake 变量从 GUI 导出到命令行

    是否可以将 CMake GUI 中设置的所有变量值导出到单个命令行字符串 以便可以从外部工具快速使用它 所以输出会是这样的 cmake DVar1 ON DVar2 foo 你可以从 Tools gt Show My Changes
  • Corda 真的需要公证人才能达成唯一性共识吗?

    科达共识简介 https docs corda net releases release V2 0 key concepts consensus html说 唯一性共识是由公证人提供的 我们是说 如果没有公证人 A 有可能说服 B 将一笔交
  • 我如何通过查询从 Firestore 获取单个文档(我正在使用 Ionic 4 )

    早上好 我在 firestore 中有数据库如下 collections documents fields 123 news1 title some data news2 content some data 例如我想获取我的 ionc4 应
  • Java FXML 从绝对路径加载(动态)

    我想从绝对路径或 jar 系统外部的路径加载 fxml 文件 背景 它将是一个简单的插件系统 在插件文件夹中查找所有 fxml 文件 后来的 jar 文件 并将其自动包含在 TabPane 中 String fxmlpath C plugi
  • ColdFusion 参数化查询

    我运行一个查询来填充我试图参数化的 CFChart
  • 强制使用牙套

    作为我不久前写的代码标准文档的一部分 我强制要求 您必须始终对循环和 或条件代码块使用大括号 即使 特别是 它们只有一行 Example this is wrong if foo bar else baz while stuff thing
  • 气泡聊天布局

    我有一个布局
  • python“in”运算符反映的魔术方法

    运算符有两种魔法方法 普通方法和反射方法 object other or self other Implements bitwise or using the operator other object ror self other Imp
  • 工资高于部门平均水平的员工? [复制]

    这个问题在这里已经有答案了 我有一个名为员工的表 其中有姓名 部门 ID 和薪水 我想找到工资高于所在部门平均工资的员工 并查看他们的姓名 部门id 工资以及所在部门的平均工资 我已经编写了这段代码 但它不起作用 我们该如何解决这个问题 提
  • 将浮点数转换为美元和美分

    首先 我已经尝试过这篇文章 除其他外 Python 中的货币格式 https stackoverflow com questions 320929 currency formatting in python 它对我的变量没有影响 我最好的猜
  • JQuery 登录重定向。包含代码

    嘿我在这里做错了什么 对 ajax 来说非常陌生 document ready function submit click function waiting show 500 empty show 500 reg hide 0 messag
  • Chrome DevTools 未在 html 标记中显示“checked”或“checked=”true”属性

    在 Chrome DevTools 中 如何知道复选框或单选按钮是否被选中 当您单击以上任何一项时 该属性checked根本没有显示 这很烦人 因为我必须猜测发生了什么 这会让开发过程变慢 我需要应用一些设置吗 复选框有两个属性来说明它被选
  • 在puppeteer中如何等待弹出页面完成加载?

    在下面的示例中 如何等待弹出窗口完成加载 单击 google 图标后 当我尝试交互时 您会弹出一个登录 gmail 的窗口 第二页是未定义的 因为我不知道如何等待它完全加载 有什么建议吗 const puppeteer require pu
  • 撇号前面不带 \

    我在 Android 应用程序中定义了一个字符串
  • 在 Windows 和 Mac OS 中使用 Python 中的默认操作系统应用程序打开文档

    我需要能够在 Windows 和 Mac OS 中使用默认应用程序打开文档 基本上 我想要执行与双击资源管理器或 Finder 中的文档图标时发生的相同操作 在 Python 中执行此操作的最佳方法是什么 Use the subproces
  • iPhone:应用程序重新启动时不会保存 NSHTTPCookie

    在我的 iPhone 应用程序中 我希望在应用程序重新启动时能够重用相同的服务器端会话 服务器上的会话由 cookie 标识 该 cookie 在每次请求时发送 当我重新启动应用程序时 该 cookie 消失了 我无法再使用相同的会话 当我
  • 在 python 中使用 email.HeaderParser 和 imaplib.fetch ?

    有没有人有一个在 Python 中使用 HeaderParser 类来获取通过 imaplib fetch 拉取的消息的好例子 我已经找到了很多相关的东西 但没有任何东西能做到这一点 我需要完整获取 RFC822 吗 我希望简单地把主题拉下