UIDs and seen database format

Michael F. Sprague mfs at sanellc.net
Wed Nov 26 10:49:16 EST 2003

Hi folks,

I got a response to my question yesterday RE POP UIDs and it was confirmed
that the way Cyrus generates UIDs is different than the way the old POP
daemon does.  I imagine it is possible to modify the cyrus source to generate
UIDs the same way the other daemon does.  

The old POP daemon is running on Tru64 and seems to be an implementation of
Qualcomm's qpopper.  The generated UID seems to look like this:


Whereas cyrus generates a UID based on the timestamp and message number:


Anyone on this list know how qpopper generates its UID and/or of any code
snippets to get cyrus to generate it the same way?  I suspect this is possible
b/ we had to do something similar for cucipop at an ISP I worked at in the
late 1990's.

Another option for me is to force all users to use IMAP (which would be nice).
The problem here is that the first time a user connects ALL of the messages
will be marked as 'unread'.  I think I can get around this by modifying
the seen flat file as I import the messages, but I cannot find documentation
of the format of this file anywhere.  Do I have to read through the source or
can someone point me to a document or post on this topic?

Thanks for listening. :)


----- Forwarded message from "Michael F. Sprague" <mfs at sanellc.net> -----
Date: Tue, 25 Nov 2003 17:17:12 -0500
To: info-cyrus at lists.andrew.cmu.edu
From: "Michael F. Sprague" <mfs at sanellc.net>
Subject: seen database format
User-Agent: Mutt/1.4.1i
X-Organization: SaNE, LLC: System and Network Engineering, LLC
X-Music: Phish, Strangefolk, Grateful Dead, Ween
X-Toy: 1997 Land Rover Defender D90 w/ Bikini Top

Hi folks,

I have setup Cyrus-IMAP v2.1.15 and it's working perfectly.  Now I am trying
to figure out how to migrate users from a old popper setup to Cyrus and
have it be as seemless as possible.  That means 99% of the users will continue
to use POP, at least for the short term.

I have written a script to migrate everyone's mail from mbox format to 
Cyrus (I plan on releasing it when this is all done since I couldn't find
any tool like that out there) and that works fine.

The problem is that many of the users had 'leave mail on server' checked in
their POP client.  When I check mail to the Cyrus server, it uploads all of
the messages in their INBOX that they have already seen.

I've been trying to hack the X-UIDL header as I import the message but that
doesn't seem to help.  All I can figure is that Cyrus only uses the seen
database to determine if a message has been seen or not.  Is this correct?

If so, is there any good docs on the format of the seen database (I'm using
the flat file version).  I would like to hack my migration script to add
entries to the seen database as I import the messages.

----- End forwarded message -----

Michael Sprague  | mfs at sanellc.net
Partner          | System and Network Engineering (SaNE), LLC
use STD::disclaimer;

More information about the Info-cyrus mailing list