Inventure Systems

Infotrope Polymer


This page:

Polymer Getting Running MailingList Servers Docs WishLists Todo

Other pages:

ACAPPolymerPolymer/770

Infotrope Polymer

Infotrope Polymer is an experimental, but usable, client for IMAP, ACAP, and Submission - in other words, it's an email client. It's built specifically to be a low bandwidth, fully roaming client, and incorporates more standard and standards track extensions than any other.

It's an online client, meaning that you need an active internet connection at all times. This choice means that it's probably not suited towards dialup usage, but it works well on anything from ethernet to GPRS. Personally, I've used it intensively on both, and I use it as my client of choice.

The UI isn't all that pretty, and the functionality is weak in places, but it is about the fastest IMAP client you'll ever see.

It'll maintain information such as which messages you've read, which mailservers you use, whether you like unread messages to be shown in blue or green, what André's email address is, who you mean when you send email to "the boss", and even which of the myriad character sets Wong Chow Fat likes to see his name spelt.

It'll do this not just on the computer you first use it on, but on the server, so changing the colour of unread messages on one computer changes it on every other computer. And it'll do that instantly - you can run two copies of Polymer on two computers, change the unread colour on one, and see the change happen on the other.

Getting Polymer

The basic instructions:

Running Polymer

Now that you have Polymer, you need to run it...

Windows
On Windows, you should be able to double-click on the file polymer.py - failing that, run it from a command line with something like: C:\Python24\python.exe polymer.py.
Linux and other UNIXes
./polymer.py should, in principle, work. Otherwise python polymer.py will do.
Mac OS X
I don't have Mac OS X, but Polymer should, in principle, work. Follow the UNIX instructions above.

The Mailing List

Send a message to polymer-subscribe@lists.dave.cridland.net, and share your confusion.

There's an archive at imap://mail.dave.cridland.net/Shared%20Folders.archives.polymer, or you can browse about on The List Server to do it the web way if you prefer.

Tested Servers

IMAP

IMAP allows a great deal of latitude in much of the specification. As a result, some behaviour is rare, and relatively untested. As always with IMAP, you should select a server and client which interoperate well, supporting the features you require.

This is the list of servers for which Polymer has been tested against - Polymer should work against any conformant IMAP4 server, and works best against conformant IMAP4rev1 servers. It will cope with certain common IMAP bugs, as well.

Polymer does not (and probably will not) support SORT and THREAD, but otherwise supports almost all other extensions.

This list is loosely in the order I personally prefer them on technical grounds.

Isode M-Box
Tested against both release and development versions. Infotrope Polymer is developed in association with Isode, and as such supports almost every extension that Isode does. This is the lowest bandwidth option, currently.
Cyrus IMAP Server
Tested against 2.1 (as stock Debian), and 2.2 (Cyrus Public). Polymer supports every extension, and Cyrus's speed is very difficult to beat.
Dovecot
Tested against 0.99.13. I've only used this for testing, but Dovecot appears to work flawlessly.
MDaemon
Tested against what I think is their latest version. MDaemon has had some interesting quirks over the years, but the version I test on appears to operate fine.
Courier
Courier does not issue the required UIDNEXT information, and therefore Polymer falls back to IMAP4 (rather than IMAP4rev1) behaviour, and is less efficient. Yes, this means that Courier is not IMAP4rev1 compliant. Polymer does work against Courier, but I do not recommend it - if you want Maildir support, I would advise looking into Dovecot instead.
Other servers
Whatever your server, Polymer should operate fine. I cannot install every server, so many of the above are tested with accounts that have been donated to me for testing purposes. If you have a server that is not listed here, and you're curious as to whether Polymer will work against it, then please contact me. If you develop an IMAP server, I'm happy to test against both development and release versions of your product.

Documentation

The documentation is, sadly, always the last thing to get updated.

Read more in:

Wish Lists

Other people have written wishlists. I'd like Polymer to be used, so I look at these, and see how it matches up.

IMAP client, anyone? - Michael Weber
Polymer runs under Linux, supports IMAP, should support large amounts of mail fast (he says he had a problem there), is standards-compliant, supports as much Unicode as Python does, supports RFC2476, is lightweight (or intended to be), and supports ACAP. It does not work offline, print, support virtual folders, or support an external editor.
How my email setup works - Ajay Shah
The first three points are generally about disconnected mode, so these aren't supported, yet, but interestingly his third point is exactly how I want to handle disconnected mode access. Otherwise... You can pickup mail from multiple hosts, but there's no GPG support. There's no Palm Pilot support either - I'd want to handle that via syncing the Palm Pilot with ACAP. There's no external editor support (mind you - Polymer does use a full editor component there, so it's not a poor rendition), there's no backup support, it's GUI, it handles URLs, and you can't send attachments off the command-line. Actually, you'll never be able to send emails off the command-line, just in case someone hijacks that facility in a virus/trojan/etc. Nothing stopping me from writing a small Python script specifically for the purpose, though. All in all, Polymer is not a good match for Ajay.
On the same page as above, Viral Shah's wishlist
Polymer uses imap, and currently has an appalling configuration interface to "imaps". It has a strong local cache, and only deletes email off the server by explicit user command. I have no idea what "svd based searching" is, sorry. Spam filtering lives on the server, IMHO. It'll inline some attachments, but not PDF. It'll change personality based on the account used, and the email you're answering. It unifies the view of IMAP servers, but doesn't unify the servers. It's not multithreaded, but it does allow multiple composer frames open. I think it's got excellent address guessing, but perhaps that's because I wrote it. It certainly shouldn't crash to a halt if an IMAP server dies - most probably it does at the moment, though. It sends email via Submission / SMTP AUTH, so in principle there's no need to change SMTP servers. You can define your own criteria, but I don'tthink that's what Viral means here, and there's no GPG support at all. Finally, Polymer is specifically designed to co-exist with other email clients, by its use of ACAP and IMAP as data storage and access.

Todo list

My todo list for Polymer...

ANNOTATEMORE and ANNOTATE.
ANNOTATEMORE allows to metadata to be attached to a mailbox. This is useful to avoid storing metadata about the mailstore in ACAP - I don't like doing this (and Polymer doesn't), because it gets fiddly - you have to check that you're still talking about the same mailbox. ANNOTATE does the same for messages. Currently, ANNOTATEMORE is supported by Cyrus, and will likely get support in several other servers. ANNOTATE is unlikely to be supported in full by many servers.
Disconnected mode
Allow Polymer to work even when there's no internet connectivity available. Most current IMAP clients always operate in this manner - they act by downloading all new messages and synchronizing metadata (flags and keywords), rather than accessing data on the fly. I want to do it slightly more intelligently than this, but that's the general idea.