65.9K
CodeProject 正在变化。 阅读更多。
Home

自定义 GMail 休假自动回复

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.60/5 (15投票s)

2009年5月22日

GPL3

2分钟阅读

viewsIcon

50685

downloadIcon

926

使用 IMAP 在休假期间自动回复未读的 GMail 邮件

引言

我是一名在一家匿名公司工作的系统工程师。我的间接主管(我老板的老板)想要一个自定义的 GMail 休假自动回复器,该回复器可以:

  1. 包含一份涉及到的 GMail 帐户列表。
  2. 连接到 GMail 并识别未读邮件。
  3. 使用自定义的自动回复模板自动回复这些未读邮件的发送者。

好吧,这可以使用 GMail Atom Feed (https://mail.google.com/mail/feed/atom/) 轻松完成,但由于 atom 只能访问最新的 20 条未读邮件,因此无法用于该目的。

因此,我只有两种选择,要么使用 POP3,要么使用 IMAP。当然,IMAP 是正确的选择,因为它有许多考虑因素,其中最谨慎的是它丰富的命令集。我必须以最小的数据传输/会话时间为目标设计该工具(在本例中是一个 Windows 服务),因为当您过度使用 IMAP 与 Google 的服务器时,Google 会变得很敏感。

我对整个 Socket/IMAP 事情并不熟悉,所以我必须先入门。我设计了这个工具,精心计划,并且认为最好的工作流程应该是这样:

  1. 循环到一个帐户集合中。
  2. 对于每个帐户
    • 打开连接
    • 连接到 GMail
    • 获取 *自* 预设开始日期以来的未读消息列表
    • 获取这些消息的标头
    • 解析这些标头并提取(消息 ID,发件人)
    • 基于消息 ID 标头记录唯一的发件人标头,以避免重复
    • 将已处理的未读消息设置为“已读”
    • 关闭与 GMail 的连接
  3. 开始使用自动回复模板自动回复所有收集的发送者。

好吧,我的老板的老板有一些评论 - 他从未真正声明过,这使得它们是隐含的 :D :D :D - 关于该工具的工作方式,但他只有在我宣布我的原型代码完成时才决定说出这个词。他不应该在技术上参与 - 我指的是代码 - 尽管他真的参与到比特和字节中,而且他甚至没有看过代码,更不用说他可能没有完全理解它,但不知何故他宣称我所做的一切都是在浪费时间。

因此,作为一个浪费时间的人,我决定养成自己的习惯,并发布该小工具的代码来浪费您自己的时间 :D :D :D。所以,请享受用我的代码浪费你的时间 :D :D :D。

项目代码和使用说明

请从 http://admincraft.net 下载最终项目代码和使用说明。

© . All rights reserved.