cyrus force pop3 clients to leave messages on server

Earl Shannon Earl_Shannon at
Mon Jul 31 09:02:55 EDT 2006


We worked with this problem for a bit ourselves. We had a rather
unique situation however. We had to allow an IMAP client (read this
as a person, not MUA) to make a POP connection at login.  This was
for historical reasons. ( Got a new message count. And yes, we knew
it was inaccurate for an IMAP user. ) Our cyrus servers were only for
IMAP otherwise.  Our POP service was provided to our POP users by
a different mechanism.

However, in order to prevent a POP MUA from connecting and then
deleting all email from the server, either by deletion or copying to a
local ( to the MUA ) space, we disabled deleted in the pop3 daemon by
commenting out one line of code in the C source, that which set the
deletion flag. Without the flag set deletions did not occur.

Given our unique situation then and how many revisions back it was
I don't know if this suggestion would work for you. But what you ask,
strictly speaking, could be done then, and may still be possible. Whether
or not it's a good idea is another question only you can really answer.

What really needs to exist ( in my mind, and it may be there now,
I haven't looked to see what is provided in awhile ) is some mechanism
used by the cyrus software to determine if a user connecting is either
POP or IMAP, and only allow connections via the appropriate protocol.
Whether cyrus were to maintain this information itself or get it from
some other source, either ldap, hesiod, NIS, or whatever could be
either configurable at runtime or build time.

Since we no longer need such an option ( we've since gone all IMAP,
which was the easier thing to do) we haven't pursued it.

Earl Shannon

Martin Schiøtz wrote:

> On 7/30/06, Daniel Eckl <deckl at> wrote:
>> That's a good idea. But this may have an unwanted side effect:
>> A pop3 client which is not configured to leave messages on server might
>> ignore the possibility that messages on the server might be seen 
>> already.
>> If the client doesn't compare fetched and unfetched mails with the UIDL
>> command, it might always fetch all messages from the server over and
>> over again, because it thinks it has deleted all fetched mails and all
>> mails on server must be new.
>> So would act al clients which don't use the UIDL command at all, because
>> they miss the "leave messages on server" option at all.
> I see your point!
>> I think have a better idea (but without knowing the reason for the
>> posters request, it might be unusable, I don't know):
> The main mail service is build around imap and webmail also sa-learn
> ham is based on the INBOX. Actually I was thinking about not to
> provide POP3 at all.
> But if it was possible to force POP3 clients to leave copy on server I
> would have no worry  also to provide POP3.
>> Use sieve script to copy all incoming messages to another folder.
>> The POP3 clients keep fetching and truncating the INBOX but all messages
>> are still on the server in another folder. In case some of them are
>> needed again, one could use a webmail IMAP client to view them or copy
>> some of them into the inbox to be fetched again.
> I can see this would be a solution but anyway it would be taking to
> much space on the server. I think I will not to provide POP3 at all.
> Thanks!
> - Martin
> ----
> Cyrus Home Page:
> Cyrus Wiki/FAQ:
> List Archives/Info:

More information about the Info-cyrus mailing list