[Zope] 'Offline' mailhost

Ken Manheimer klm@digicool.com
Wed, 4 Oct 2000 11:54:40 -0400 (EDT)


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