From: Matthias A. <mat...@gm...> - 2006-04-19 00:42:46
|
On Tue, 18 Apr 2006, Dale Pontius wrote: > Matthias Andree wrote: > >Dale Pontius <po...@ki...> writes: > > > >>Hello, > >>I realize that you hate multidrop, and generally disparage and deprecate > > > >That would be "procmail", and that antipathy is based on technical reasons. > > > No, I was talking fetchmail's "multidrop", not maildrop or procmail. As > a matter of fact, I AM using procmail, but that's more of an historical > accident than preference. Ah, sorry, missed that in the late evening and misread it as maildrop (the MDA). My apologies for not reading and thinking more carefully. I'm not against multidrop as such; but several false decisions have been made in fetchmail's history that need to be corrected to make fetchmail reliable, and fetchmail has for far too long deluded users into believing multidrop were an easy thing that would "just work" with second-guessing aliases and recipients in place when in fact the retrieved messages had been long past recovery and fetchmail had been fighting lost cases rather than telling the user "sorry, pal, this can't work". And fetchmail's logging wasn't (and still isn't) sufficient to log all the relevant data obtained to make fetchmail's decisions traceable, which makes debugging such automatic setups next to impossible. If DNS data changes or servers go temporarily out of synch, retracing this situation in order to answer questions about the past, as in "why did fetchmail decide this way" are unanswerable. I think such a state is worse than asking a bit more explicit configuration from the user. So I'll rather get rid of using information that can change every minute and is thus hard to trace and replace it by hardcoded configuration where that is sensible. It's also easier for the user to understand why fetchmail did things a certain way if it's based on a configuration the user made. When I was rather new to fetchmail, my girl-friend had an account with her own domain and domain forwards (qmail-style) but it took me quite a while until I got the multidrop working right. I think fetchmail could also use a revision of its configuration that is more helpful in terms of guiding the user rather than slaying him with the vast configuration space that it offers and just a short option reference. That's nothing that can happen overnight, and if anyone is willing to help with the documentation job, (s)he'll be more than welcome. To/Cc and DNS guessing will be removed and explicit envelope and domain configuration will become necessary for POP3/IMAP multidrop, but multidrop in general will remain. I may require explicit singledrop/multidrop configuration per separate keyword so that fetchmail can validate the "users [...] here" lists more strictly, if that is desired. > When I moved my email over to my new > infrastructure, (new server, Postfix instead of Exim, Dovecot instead of > UWash IMAP, etc.) I considered replacing procmail with maildrop. I got > the definite impression that maildrop is the better tool, but by this > time my procmail rules are all working, and I didn't feel like fussing > with it. Maybe some time, when I have time, I'll reexamine this issue. Well, error handling is the point where procmail setups fall short. At the very least, add :0e { EXITCODE=75 HOST= } after each delivering recipe to make sure messages remain in the queue or on the server if there are problems (out of quota, disk full), rather than having messages misfiled. > One other reason, now obsolete... For a while I was running procmail > under xinetd as an lmtp server. The basic idea was to completely chroot > postfix, instead of having to leave the local delivery part un-chrooted. > I eventually decided I'd rather have postfix local delivery un-chrooted > and running with elevated authority than procmail, even though both try > to drop privileges when possible. Now if maildrop had an lmtp mode... Well, Postfix drops privileges early, so using Postfix and using procmail WITHOUT set-uid bit set should be pretty safe in terms of containing possible havoc to a certain user account while keeping the system (as the basis of everything) out of harm's way. Of course, if the .procmailrc (or .mailfilter, for that matter) does stupid things like injecting untrusted data into the shell, there isn't much Postfix or an LMTP wrapper could do about that. > As I said, the whole issue is fetchmail's multidrop mode. The rest of > your letter has satisfied my concerns quite nicely. It looks like that > work I did after the 6.3.2 upgrade was well worth it, and the right > thing to do. I'm guessing that when 6.3.4 makes it to Gentoo x86 I'll > have no problems with the upgrade. Well, that is at least my intention for the 6.3.X releases - update from 6.3.X to 6.3.X+N are supposed to be smooth. > >The implicit automatic DNS lookups. "aka" will continue to work. The > >implicit lookups assume the POP3 or IMAP server were the same as the > >SMTP server of the ISP, which is often untrue nowadays. > Interestingly enough, since I own a domain and have an email forwarding > service for all mail to that domain to be sent to my pop box at my ISP, > I find that I needed to add 'aka' statements for the domain-host's > forwarding machines. That made everything work *perfectly*, which it > never had before. ...and which is evidence that fetchmail's assumption that POP3/IMAP servers are the same as those recorded as MX (SMTP) servers simply doesn't hold in yet another individual case. > I suspect you also changed the "-v -v" debugging > information some, because this time it was absolutely clear what I > needed to do with 'aka' statements to make things work. I don't remember > the debugging information being that useful, before. Well, not something that addressed this particular issue, but there have been some logging/verbosity fixes which should make "-v", "-vv", "-vvv", "--silent" smoother than before. fetchmail is a long way from my calling it thoroughly logging though. I hope that clears more multidrop concerns up a bit. It pretty much looks to me like your configuration (based on "aka") will be supported by future fetchmail versions. Kind regards, -- Matthias Andree |