[Imap-protocol] FLAGS & PERMANENTFLAGS in IMAP4rev1

Dave Cridland dave at cridland.net
Wed Jun 13 07:25:00 PDT 2007

On Wed Jun 13 13:39:08 2007, Karl Hiramoto wrote:

> I'm writing a IMAP client that is a virus/spam scanner. My plan

> is to

> scan where i have write access, and to mark messages with a flag

> MyScanner or something, to signify that it is scanned, and does not

> need

> to be scanned again. If it is a positive spam or virus hit, i will

> store changes to the message.



Be aware that you'll be selecting the mailbox to do this, which will
change the \Recent flag on messages, which can be confusing. Also
note there's an expired draft with solid suggestions for keywords for
marking junk messages. (You want $AutoJunk and $AutoNonJunk, as I
recall, and you train off $Junk and $NonJunk).

> My question is if anyone sees problems doing this, and how many

> servers

> that are in use today do not support custom permanent flags?

I seem to remember AOL doesn't, but that's the only instance. It's
actually a per-mailbox thing, so it's possible that some mailbox
drivers on UW-IMAP don't support permanent flags. Otherwise, most
servers do on all mailboxes, but some have a limited number, and the
ability to create new ones will vanish.

> My

> testing so far with courier looks like it will work..



You need to look at the specification carefully, rather than just
testing on one implementation. I'd suggest testing against many
implementations, and in particular UW-IMAP and Cyrus.

> If the server does not support custom permanent flags, what i could

> do,

> is store changes to the email header.



No, you can't - IMAP messages are immutable, so all you'd be able to
do, as Timo says, would be remove the original message and create a
new one. This is not a great idea.

Dave Cridland - mailto:dave at cridland.net - xmpp:dwd at jabber.org
- acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
- http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade

More information about the Imap-protocol mailing list