IMAP代理安装程序允许使用IMAP空闲?

第一次海报,长期潜伏者/读者。 对于淫秽冗长的问题抱歉…我打算保持简洁。 此外,对于不是“实际”链接的链接感到抱歉 – 我没有所需的代表发布超过2个问题。

我为一家运行自己的IMAP邮件服务器的公司工作,在Windows Server上使用VPOP3 Enterprise [1] v6.10(对不起,不知道是什么版本)。 我们的系统pipe理员(大部分)喜欢我们使用的邮件服务器,这是一个付费许可证,他作出最终决定。 我唯一真正的关于服务器的抱怨是缺less(或破坏)IMAP IDLE支持。 我讨厌缺乏IDLE的支持,我问了系统pipe理员。 他说,他之前在VPOP3中启用了IDLE支持,但是Outlook和IDLE(或者也许只是VPOP3的实现?)显然有些奇怪,使得他无法保持启用状态(大概有1/2公司,如果不是更多,邮件客户端]。 我发现VPOP3支持IMAP IDLE [3]文档很less[2] [3]

我们中的许多人都在“现场”工作,在离开办公室时能够收到电子邮件真是太好了……我们很多人都用我们的智能手机来这样做。 不幸的是,我们必须设置我们的设备来“轮询”服务器,这需要在轮询频率和电池寿命之间寻求平衡。 我被Gmail和我的大学邮件帐户(以前在自己的IMAP服务器上运行之前在切换到Google Apps之前运行)“推送”邮件被宠坏了,所以我真的希望能解决这个问题。

在背景背景下 – 我想要做的是在我们的局域网上设置另一台服务器来“代理”来自VPOP3服务器的邮件,并允许客户端连接到它

理想情况下,我想要解决scheme:

  1. 自动将代理的所有更改同步回VPOP3(例如将消息标记为已读,删除,移至文件夹等)
  2. 如果公司的其他人要使用这个代理,则不需要我的干预
    • 我不想手动configuration用户名和密码来连接到VPOP3服务器。 首选解决scheme不会为用户caching/获取任何邮件,直到他们第一次login到代理。 一旦他们login,caching他们的凭据(encryption,希望!)和轮询VPOP3每分钟(?)左右的电子邮件。 这样,我不会浪费资源给不会使用它的用户(这可能会是很多的)。
  3. 允许客户保持一个IDLE连接“推送”电子邮件支持
  4. 需要尽可能小的磁盘空间(即避免邮件本身存储在我的代理IMAP服务器上)
    • 如果大部分邮件内容(本体,附件)可以保留在VPOP3服务器上,并且代理只是在即时下载消息,我就会喜欢它。 或者也许caching已经login的用户的最后X天/ MB /消息(以避免冲击主要邮件服务器)。 我很好,保持代理上的标题/元数据; 我只是不想在代理服务器上存储重复的所有消息和附件。

只是有关我们的服务器更多的信息:

  • VPOP3服务器接受未encryption的SSL / TLS或STARTTLS连接。 encryption将是很好,但我明白这可能会很棘手。 由于这两个邮件服务器将在我们的公司局域网,我没有encryption的邮件选项。
  • VPOP3 IMAPfunction: * CAPABILITY IMAP4rev1 AUTH=CRAM-MD5 NAMESPACE ACL STARTTLS LIST-EXTENDED CHILDREN SPECIAL-USE CREATE-SPECIAL-USE METADATA (这是我在未encryption连接时所得到的;不知道它是否通过SSL / TLS不同)
  • 我想用于代理服务器的盒子正在运行FreeBSD 10.1-STABLE
  • 我可能会使用Dovecot作为MDA,Sendmail或者Postfix作为MTA。 我愿意使用其他软件,只要它在FreeBSD上得到很好的支持。
  • 传出邮件的SMTP仍然会直接传送到我们的VPOP3服务器

我看过的选项(但不一定被驳回):

  • 这个问题[4]讨论了类似的问题,但是由于缺乏问题的细节,很难说是否是我想要的。 我只看到了dovecot上的imapc ,就像这个问题的唯一答案中提到的,看起来它可能适用于我的应用程序(特别是在阅读此邮件列表后[5] ),但我还没有find是否可以configuration它如上所述。
  • 这个问题[6]有点类似,但是没有答案。
  • 我见过的其他潜在选项包括OfflineIMAP [7] ,imapsync [8] ,fetchmail [9]和getmail [10] …但是我还没有发现这些中的任何一个是否会按照我希望的方式执行至。 OfflineIMAP看起来更像是一个消息caching; imapsync似乎是付费的W /没有试用版; fetchmail似乎是一个IMAP到SMTP的网关(我不认为这就是我所追求的)。 getmail似乎是在每个用户的基础上configuration的。
  • 请注意,我并不反对我在前两个要点中提到的五个选项中的任何一个…我只是没有find一种方法来configuration它们中的任何一个以符合我上面的编号“要求”。

[1] www.pscs.co.uk/products/vpop3/enterprise.php
[2] www.pscs.co.uk/manual/index.html?services_imap_advanced.html
[3] wiki.pscs.co.uk/reference:imap4_advanced?s[]=idle
[4] serverfault.com/questions/458015/imap-proxy-with-message-cache
[5] dovecot.org/pipermail/dovecot/2013-June/090884.html
[6] serverfault.com/questions/500591/fetch-all-mail-from-an-imap-server-with-postfix-to-distribute-on-local-imap-serv
[7] offlineimap.org
[8] imapsync.lamiral.info
[9] www.fetchmail.info
[10] pyropus.ca/software/getmail/

 main.c: * If this token is IDLE, discard it. main.c: if ( ! strncasecmp( CP, "IDLE", strlen( "IDLE" ) ) ) 

如果“IMAP代理”是http://squirrelmail.org/download.php#imap_proxy那么IDLEfunction将被丢弃。 也许这个function很难实现。