问题标签 [imaplib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
696 浏览

python - 处理 IMAP 邮箱名称区分大小写

我有一个使用 imaplib 的 python 脚本,它连接到 gmail 帐户并根据电子邮件地址中的“+”标签对电子邮件进行排序。例如:发送到 myaccount+root.foo.bar@gmail.com 的电子邮件被移动到 root\foo\bar。

我的逻辑如下:提取标签->尝试创建文件夹->将消息复制到文件夹。

有时,一封电子邮件会带有相同的标签,但大小写不同。例如,myaccount+root.FOO.BAR@gmail.com 并导致以下输出:

因此创建文件夹失败,因为已经存在同名文件夹(只是大小写不同),但复制失败,因为显式文件夹不存在。

是否有一些聪明的方法可以找出现有文件夹的正确大小写,以便可以毫无问题地移动消息?

注意:这并不像强制所有标签为小写那样简单。用户使用电子邮件客户端连接到帐户,并且有时手动创建文件夹,使用当时对他们有意义的任何大小写。

0 投票
2 回答
1098 浏览

ios4 - 如何将邮件移动到 gmail imap 中的垃圾箱?

我正在创建一个应用程序,我需要在 gmail 中使用 IMAP 删除邮件。但是当我设置删除标志时,邮件移动到垃圾邮件文件夹而不是垃圾邮件或直接删除。有什么办法可以把邮件移到垃圾箱吗?

更新

现在我的邮件正在从收件箱移动到重要文件夹。我正在向自己发送消息(在网络浏览器中),默认情况下它被标记为重要。

0 投票
1 回答
4677 浏览

python - 使用 Python 的 Gmail 中的 IMAP 问题

我在 Python 2.7 中遇到了 IMAP 问题 出于测试目的,我使用 遵循本教程foobar306@gmail.com的密码创建了密码,并将其输入到我的 Python 迭代 Shell 中:testing123testing

什么都没有发生,甚至没有错误消息。注意:我已在 Gmail 中启用 IMAP 谢谢,-tim

更新:针对此评论:

您是否在上面引用的代码之后执行了下一部分?– 琥珀

我试过这个:

它仍然什么也没做

0 投票
2 回答
7381 浏览

python - Imap 搜索条件 - imaplib (python)

我正在为 python 使用 imaplib,我遇到了一个奇怪的行为。我真的不知道这是否是 imap 或 imaplib 问题/功能,所以我希望任何人都可以给我一些提示。

在我的项目中,我对我的 gmail 邮箱进行了多次搜索。想象一下,我使用以下条件进行 imap 搜索:

((从“日期 A”开始)(在“日期 B”之前))

现在,如果我有自“日期 A”以来的电子邮件,imap(lib) 会执行预期的操作:返回自“日期 A”以来和“数据 B”之前的电子邮件。迷人的。但是,如果自“日期 A”以来我没有任何电子邮件,imap(lib) 将简单地忽略它并返回“日期 B”之前的所有电子邮件,即使它们不是自“数据 A”以来!

这是 imap 的预期行为吗?我真的不这么认为,这根本没有意义。

我真的需要搜索任何给定时间段的能力,而且我希望不必在每次搜索之前都汇集该框以了解最后一封电子邮件的日期。

任何想法?我在这里错过了什么吗?

0 投票
1 回答
3340 浏览

python - IMAP 提取编码

我正在尝试使用这样的 imap 从 gmail 获取一些电子邮件信息

问题是它不适用于特殊和重音字符。例如,

呈现为

我如何告诉 Gmail 返回带有我选择的编码的字符串,比如我希望 Charset 为 UTF-8。

如何在我上面提到的 IMAP 命令中调整它?

0 投票
3 回答
5098 浏览

python - 将消息从一个 IMAP 服务器移动到另一个的脚本

我们的办公室使用两台 IMAP 服务器来处理电子邮件,一台是接收服务器,保存最近的电子邮件,另一台是存档服务器。我们主要使用 Outlook 2010,我们目前的流程是定期将发送的邮件从接收服务器拖到存档中。

今天我被要求研究编写一个脚本,它会定期(可能使用 crontab)抓取所有发送的消息并将它们移动到存档。

我研究了一些 SSL 或 telnet 示例来访问服务器并四处寻找。但是,我不知道编写此脚本的最佳方式或如何在 IMAP 环境中跨服务器移动文件。

实现这一目标的最佳方法是什么?我宁愿从舒适的角度使用 Python,但如果已经有另一种语言的现有解决方案,我可以处理它。


更新:

好的,这里有一些代码。目前它可以很好地复制邮件,但是,它将复制存档服务器上的现有邮件。

一些资料来源:
Doug Hellman 的博客:imaplib - IMAP4 客户端库
Tyler Lesmann 的博客:使用 Python 和 imaplib 复制 IMAP 邮箱

我仍然需要:

  • 删除/删除实时服务器上的消息
  • 不复制副本(实际上这可以通过在复制后删除原件来解决,但是......)
  • 错误捕获

更新 2:

有人对复制时如何不创建重复项有任何想法吗?(暂时不包括删除原件的选项)我考虑过搜索文本,但意识到嵌套回复可能会将其排除在外。

0 投票
1 回答
3486 浏览

python - 使用来自另一封电子邮件的解析日期搜索 imap

使用 Python 和 imaplib 我连接到 2 个 imap 服务器 (gmail) 并尝试使用日期时间匹配它们之间的电子邮件。

我有2个问题。

  • 解析头部返回的日期不能直接用于搜索,格式错误。
  • 我不清楚使用哪个 imap 搜索来按解析标头返回的日期和时间进行搜索。

我有 Oldmail 和 NewMail imap 连接。

只需选择一个随机电子邮件“6001”

但这不是正确使用的格式,有一个简单的方法:-)

我的目标是在使用谷歌迁移应用程序传输失败后在两台服务器之间找到匹配的电子邮件。如果他们已经转移,然后删除旧服务器上的电子邮件。如果你能提出一个更好的方法来做这件事,那也会很有帮助。

0 投票
6 回答
60212 浏览

python - python imaplib 获取 gmail 收件箱主题标题和发件人姓名

我正在使用 pythons imaplib 连接到我的 gmail 帐户。我想检索前 15 条消息(未读或已读,没关系),只显示主题和发件人姓名(或地址),但不知道如何显示收件箱的内容。

到目前为止,这是我的代码(成功连接)

我相信这应该很简单,我只是对 imaplib 库的命令不够熟悉。任何帮助将不胜感激......

更新 感谢 Julian,我可以遍历每条消息并检索全部内容:

但我只想要主题和发件人。这些项目是否有 imaplib 命令,或者我是否必须为文本解析 data[0][1] 的全部内容:主题和发件人?

更新 好的,让主题和发件人部分工作,但迭代 (1, 15) 是按 desc 顺序完成的,显然首先向我显示最旧的消息。我怎样才能改变这个?我试过这样做:

但这只是给了我None所有 15 次迭代......有什么想法吗?我也试过mail.sort('REVERSE DATE', 'UTF-8', 'ALL'),但 gmail 不支持 .sort() 功能

更新 想出了一个方法来做到这一点:

这为我提供了最新的 15 条消息主题和发件人地址,按要求按降序排列!感谢所有帮助过的人!

0 投票
2 回答
792 浏览

python - 是什么导致 AppEngine 的 Python 脚本中出现此 imaplib 错误?

这个脚本:

为我犯了这个错误:

为什么?

0 投票
1 回答
1992 浏览

python - 是否值得使用 IMAP COMPRESS (DEFLATE)?

Gmail 支持 IMAP COMPRESS 扩展 ( RFC4978 ),特别是DEFLATE 算法( RFC1951 ) aka zlib/gzip。

我通常不是 Python 程序员,但我使用Piers Lauder 的 imaplib2将一个快速测试脚本放在一起,以确定启用或不启用压缩的性能。

如果我在我的 Python 代码中犯了一个明显的新手错误,请纠正我。

我已经运行了这个测试脚本几次。有时压缩访问的平均速度更快,有时不是。平均平均值和访问时间的差异从来没有太大(访问 100 条消息的单个收件箱访问可能需要 4 到 17 秒之间的任何时间)。一致的结果将使我的决定更容易!访问是通过 SSL 我在想可能有一些固有的压缩(我不知道)。

您认为在访问 Gmail IMAP 时是否值得使用压缩?

顺便说一句,我想使用 JavaMail(而不是 Python),但我知道我需要大量自定义 JavaMail 以支持压缩(可能使用Jessie)。有人已经这样做了吗?值得吗?

我很感激反馈。非常感谢。