First-time poster, long-time lurker/reader. Sorry for the obscenely-verbose question...I intended to keep it more concise. Also, sorry about the links not being "actual" links -- I don't have the required rep to post more than 2 in a question.

I work for a company which runs its own IMAP mail server, using VPOP3 Enterprise[1] v6.10 on Windows Server (sorry, not sure what version). Our sysadmin (mostly) likes the mail server we use, it's a paid license, and he makes the final decision. My only real complaint about the server is the lack of (or broken) IMAP IDLE support. I hate the lack of IDLE support, and I asked the Sysadmin about it. He says he previously enabled IDLE support in VPOP3, but there's apparently some strangeness with Outlook & IDLE (or maybe just VPOP3's implementation?) that prevented him from keeping it enabled [probably 1/2 the company, if not more, uses Outlook for their mail client]. I found very little documentation[2] on VPOP3's support for IMAP IDLE[3].

Many of us work "in the field," and it's nice to be able to get email while you're out of the office...so many of us use our smartphones to do so. Unfortunately, we have to set our devices to "poll" the server, which necessitates finding a balance between frequency of polling & battery life. I've been spoiled by "push" mail with Gmail & my University mail account (formerly running on their own IMAP servers before switching to Google Apps), so I'm really hoping to work around this issue.

With the background out of the way -- what I want to do is to set up another server on our LAN to "proxy" mail from the VPOP3 server, and allow clients to connect to it.

Ideally, I'd like the solution to:

  1. automatically sync all changes from the proxy back to VPOP3 (e.g. mark messages as read, delete, move to folders, etc)
  2. not require my intervention if others in the company want to use this proxy
    • I don't want to manually configure usernames & passwords to connect to the VPOP3 server. The preferred solution wouldn't cache/fetch any mail for the user until they log in to the proxy for the first time. Once they've logged in, cache their credentials (encrypted, hopefully!) & poll VPOP3 for email every minute(?) or so. That way, I won't waste resources for users who won't use it [which will probably be many].
  3. allow clients to maintain an IDLE connection for "push" email support
  4. require as little disk space as possible (i.e. avoid storing the mail itself on my proxy IMAP server)
    • I'd love it if most of the mail content itself (body, attachments) could remain on the VPOP3 server & the proxy just downloaded the messages on-the-fly. Or perhaps cache the last X days/MB/messages for users that have logged in (to avoid pounding the main mail server with requests). I'm fine with keeping headers/metadata on the proxy; I just don't want to store duplicate all of the messages & attachments on the proxy server.

Just a little more info about our servers:

  • VPOP3 server accepts unencrypted, SSL/TLS, or STARTTLS connections. Encryption would be nice, but I understand that can be tricky. Since both mail servers will be on our corporate LAN, I'm OK with an unencrypted option for grabbing mail.
  • VPOP3 IMAP capabilities: * CAPABILITY IMAP4rev1 AUTH=CRAM-MD5 NAMESPACE ACL STARTTLS LIST-EXTENDED CHILDREN SPECIAL-USE CREATE-SPECIAL-USE METADATA (this is what I get when connecting unencrypted; not sure if it's different over SSL/TLS)
  • the box I'd like to use for the proxy server is running FreeBSD 10.1-STABLE
  • I'll probably use Dovecot for the MDA, and either Sendmail or Postfix for the MTA. I'm willing to use other software instead, as long as it's well-supported on FreeBSD.
  • SMTP for outgoing mail will still go directly to our VPOP3 server

Options I've looked at (but not necessarily dismissed):

  • This question[4] discusses something similar, but it's hard to tell whether it's what I want because of the lack of question detail. I looked at imapc on dovecot as mentioned in the only answer to that question, and it looks like it might work for my application (especially after reading this mailing list post[5]), but I haven't found whether I can configure it as I've described above.
  • This question[6] is somewhat similar, but there are no answers.
  • Other potential options I've seen include OfflineIMAP[7], imapsync[8], fetchmail[9], and getmail[10]...but I haven't found out whether any of these will actually perform the way I want them to. OfflineIMAP seems more like a message-cache; imapsync seems to be pay-for w/ no trial available; fetchmail seems to be an IMAP-to-SMTP gateway (and I don't think that's what I'm after); getmail seems to be configured on a per-user basis.
  • Note that I'm not opposed to any of the five options I mentioned in the last two bullet points...I just haven't found a way to configure any of them for my numbered "requirements" above.

[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/

  • Shouldn't the sysadmin be solving this problem? – Michael Hampton Jan 1 '15 at 21:11
  • Probably, but it doesn't seem to bother him as much, and he's currently unwilling to switch away from VPOP3 Enterprise for our mail server. And to be clear, I'm part of the team that manages the network...but I've only been with the company for ~18 months (the sysadmin has been with the company for ~15 years), so I don't have as much "pull". – PCjabber Jan 1 '15 at 21:12
main.c:      * If this token is IDLE, discard it.
main.c:     if ( ! strncasecmp( CP, "IDLE", strlen( "IDLE" ) ) )

if `IMAP proxy' is http://squirrelmail.org/download.php#imap_proxy then IDLE capability is discarded. maybe It's hard to make its function implement.

  • Nope, I don't have an IMAP proxy set up currently. That's what I'm asking about :-). Our mail server doesn't support IMAP IDLE. – PCjabber Jul 26 '15 at 15:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.