On Thu, 2004-12-23 at 11:44 -0500, Geo Carncross wrote:
How about a dovecot-inject tool that writes a message to whatever is considered the $LOCAL user? It wouldn't have to do much but write the message (safely) and update indexes -- something dovecot already has to do.
Yes, this would be pretty simple to implement, a few hundred lines of code or so. I almost did it once but back then Dovecot couldn't update indexes directly while saving messages so there wasn't really any use for it.
But having such tool wouldn't exclude from having other LDAs or LMTP server. I'd distribute the Sieve-capable LDA in separate package anyway.
- LMTP implementations can do the work they've already have to do (regarding mapping email addresses to local users) and simply hook into the sieve processor or the dovecot-inject, or anything else the administrator/user likes.
I don't think there exists any LMTP servers which aren't highly integrated into some other IMAP server. Actually only LMTP server I know of is in Cyrus.
Formally, dovecot-inject would need the following information:
- the envelope recipient ($RECIPIENT)
- the envelope sender/return-path/errors-to-address ($SENDER)
- the IMAP folder to write the message to (argv[1])
Why not have them all in argv?
On systems with shared-uids, dovecot-inject would also need the concept of the "localpart" of the address thats applicable. dovecot already needs to know this in order to ACCESS the maildrop. ($LOCAL)
That would probably be what is now in $MAIL / default_mail_env?
This would keep things very easy to integrate without resorting to shared libraries, "plugin system" nonsense, or forcing people to make extra levels of indirection (lmtpclient) in order to benefit from pre- login indexing...
Sure. I don't want to use LMTP myself either, but I can see why it would be useful for some people.