1) Stop thinking about IMAP as if it were some cohesive standard with a
consistent implementation. It is not. It's a bloody mess that manages to
work in spite of its implementations, and Google's IMAP implementation is
one of the worst I've seen in the last 12 years I've been working with IMAP
servers. As an example, here, supported feature lists by server:
Gmail: IMAP4rev1, UNSELECT, IDLE, NAMESPACE QUOTA XLIST CHILDREN XYZZY
Communigate Pro: IMAP4REV1 ACL NAMESPACE UIDPLUS IDEL LITERAL+QUOTA ID
MULTIAPPEND LISTEXT CHILDREN BINARY LOGIN-REFERRALS STARTTTLS AUGH LOGIN
PLAIN AUGH CRAM-MD5 AUTH DIGEST-MD5
.Mac: IMAP4REV1 MMP0743 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS CHILDREN BINARY
UNSELECT SORT LANGUAGE IDEL XSENDER X-NETSCAPE XSERVERINGO X-SUN-SORT
X-SUN-IMAP X-ANNOTATEMORE X-UNAUTHENTICATE XUM1 AUTH PLAIN STARTTTLS
Kerio 6.7.3: IMAPREV1 IDLE ACL LITERAL+ UIDPLUS QUOTA ID SORT ANNOTATE
ANNOTATE MORE STATUS-COUNTERS UNSELECT LISTEXT NAMESPACE XLIST X-KERIO
STARTTTLS AUTH CRAM-MD5 AUTH PLAIN AUTH LOGIN AUTH DIGEST-MD5
MS Exchange 2003: CAPABILITY IMAP4 IMAP4rev1 IDLE LOGIN-REFERRALS
MAILBOX-REFERRALS NAMESPACE LITERAL+ UIDPLUS CHILDREN
MS Exchange 2007: CAPABILITY IMAP4 IMAP4rev1 IDLE LOGIN-REFERRALS
MAILBOX-REFERRALS NAMESPACE LITERAL+ UIDPLUS CHILDREN AUTH=NTLM
Panda IMAP 2009.413: CAPABILITY IMAP4REV1 I18NLEVEL=1 LITERAL+ IDLE
UIDPLUS NAMESPACE CHILDREN MAILBOX-REFERRALS BINARY UNSELECT ESEARCH
WITHIN SCAN SORT THREAD=REFERENCES THREAD=ORDEREDSUBJECT MULTIAPPEND
SASL-IR LOGIN-REFERRALS STARTTLS
Dovecot (Mac OS X Server 10.6): CAPABILITY IMAP4rev1 SASL-IR SORT
THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN
NAMESPACE LOGIN-REFERRALS UIDPLUS LIST-EXTENDED I18NLEVEL=1 QUOTA
STARTTLS LOGINDISABLED AUTH=CRAM-MD5
So if anyone thinks they're going to just 'write to the standard' and be
done with it, no, you're not. You're going to have to spend a lot of time
with IMAP itself, which is not a very nice standard on a good day.
There's no such thing as a standard IMAP implementation.
There are a couple implementations regarded amongst protocol
architects as reference implementations: UW IMAP (and its successor
Panda IMAP) and Cyrus. Dovecot is well-regarded as well.
Mark Crispin would have everyone rely on c-client, part of the UW /
Panda distribution, and the foundation of ((re-)al)pine.
3) Implement IMAP well, or at least provide the option to behave properly.
(Mulberry is one of the few that do this). So when you have a list of
headers in a header view, that's all you download. When you click on the
message, you download the message contents. Attachments are not downloaded
unless you want them to be via explicit action. Call it "IMAP Strict" if you
like, but it's something that I've missed in almost every IMAP client I've
used. It is ASTOUNDINGLY handy in low bandwidth situations, (HOTELS), albeit
there's a bit of a lag. Various clients deal with this in different ways.
Mail doesn't, E'rage lets you download the first n K of a message if you
like, I forget about T-bird et al.
+1
Most desktop-app implementations seem to suck down all the parts to
cache, maintain local copies of everything, and use IMAP to just
mirror local filing operations. This is basically 'offline' mode,
and is NOT what IMAP is all about.
IMAP implementation should allow for keeping NOTHING local, and it's
all on the wire -- online mode. There are many cases in which I
really, in real life, use Pine because it's very light on bandwidth.
It's also worth noting that Mulberry is itself open source now. One
of, if not the, most robust and complete IMAP implementations in a
mail client.
4) Three-pane has to be an option. It doesn't have to be the default, but it
has to be available. People are trained to expect that. I'd recommend
'borrowing' E'rage's vertical take on the three-pane view as an option, if
you have a larger screen it's pretty tight.
Also present in Outlook and Thunderbird 3.0. And, I might add,
damned handy. Particularly when we have these widescreen displays.
3) A good UI for server-side functionality, esp. searching. Actually, when
searching online folders, doing it on the server as the default when online
would not suck.
A good client-side UI for sieve would particularly rule.
7) Power User != Programmer, Power User != Programmer, Power User !=
Programmer, Power User != Programmer, Power User != Programmer, Power User
!= Programmer, Power User != Programmer. There, point made.
+1
Another IT guy,
--
Andrew Laurence Office of Information Technology
[email protected] University of California, Irvine
_______________________________________________
[email protected] mailing list
List help: http://lists.ranchero.com/listinfo.cgi/email-init-ranchero.com