On Wed, 4 Oct 2000, Hannu Krosing wrote:
Perhaps it would be better to solve this by configuring your sendmail (or other SMTP MTA) to be non-blocking, i.e. store-and-forward.
This seems like a good idea. It makes it hard to get disposition status for the delivery in the transaction - but that problem is intrinsic to email communications, and probably best addressed by using the "sender" header (i think it is), so delivery failure notifications go to someone who needs to know about the failure. Even better - but lots more complicated: have the failure notifications directed to a program which queues the fact of the failure for the sending program to use. I haven't used it, but contemporary MTAs have catchall aliases, by which you can handle a pattern of recipients. Have the envelope sender fit the pattern, and encode the information about the program that needs to get back the failure information. I think this kind of architecture is necessary for comprehensive mail sending from zope, with delivery failure accounting, since mail sending is inherently asynchronous.
Maybe you could just use mailman as MTA, greating temporary mailing-lists.
This is also a good idea in principle, but would wind up being cumbersome. Mailling list "objects" are heavy weight components in mailman - each one having a list metadata and archive directory, mta aliases, etc. Plus, you may have to leave the list up until the last delivery is completed (successful or not). Better, i think, to adopt techniques and steal code from mailman, to take the pieces you want. Ultimately, i don't think you'd be taking that much - there's a lot in python that gets you a lot of the way. It's the embedded knowledge that's useful... -- Ken klm@digicool.com