From stuart at bmsi.com Sat Aug 14 13:00:40 2004 From: stuart at bmsi.com (Stuart D. Gathman) Date: Sat, 14 Aug 2004 13:00:40 -0400 (EDT) Subject: [Pymilter] Wierd failure condition. Message-ID: I have had pymilter have the do_pol and rt_sig threads die, leaving only the do_sel thread. I haven't seen any clues in the log. Has anyone else seen this? It could, of course, be due to pydspam, or some other module. -- Stuart D. Gathman Business Management Systems Inc. Phone: 703 591-0911 Fax: 703 591-6154 "Confutatis maledictis, flamis acribus addictis" - background song for a Microsoft sponsored "Where do you want to go from here?" commercial. From stuart at bmsi.com Sat Aug 21 14:23:48 2004 From: stuart at bmsi.com (Stuart D. Gathman) Date: Sat, 21 Aug 2004 14:23:48 -0400 (EDT) Subject: [Pymilter] Playing with quarantine and setmlreply Message-ID: I got sendmail-8.13.1 installed, and tried out quarantine with Python milter. You must set Milter.QUARANTINE in the flags. You can call Milter.Milter.quarantine(reason) from eom() only. You must then return Milter.ACCEPT or CONTINUE. Quarantine is a modification of normal delivery. It goes into the queue to be delivered, but marked as Quarantined, and is not delivered until unquarantined. How does it get unquarantined? The mailq command has options to list quarantined messages with the reason. The sendmail command has options to unquarantine messages selected by reason. What is this good for? The obvious application is a TDMA scheme where delivery is delayed while an autoreply asking for confirmation from a human is sent. (Be sure to check SPF before autoreplying.) The reason should contain an ID which can be used to unquarantine when the response comes back. Another topic: I coded and did simple testing of the setmlreply call. The decision to use setreply or setmlreply is transparent to the Python code, for example: self.log('REJECT: %s: %s' % (name,val)) self.setreply('550','5.7.1','Email advertising not accepted here.', "Please advertise on google where I'll read it when I want", 'to buy something.' ) return Milter.REJECT If miltermodule.c was compiled with a sendmail that doesn't support setmlreply, only the first line of the reply is used. I'm not sure what happens if miltermodule.c is compiled with setmlreply, but used with an old sendmail. I think that an error would be returned from setmlreply, and perhaps miltermodule could fall back to setreply in that case. I'm not sure how important such a fallback would be. -- Stuart D. Gathman Business Management Systems Inc. Phone: 703 591-0911 Fax: 703 591-6154 "Confutatis maledictis, flamis acribus addictis" - background song for a Microsoft sponsored "Where do you want to go from here?" commercial. From stuart at bmsi.com Tue Aug 31 17:28:13 2004 From: stuart at bmsi.com (Stuart D. Gathman) Date: Tue, 31 Aug 2004 17:28:13 -0400 (EDT) Subject: [Pymilter] pysrs-0.30.9 Message-ID: Pysrs now uses the sendmail socketmap interface. The pysrs daemon is quite efficient now. The RPM puts the log file and unix socket in with milter because, like milter, it is an extension to sendmail. Once again, I was in a hurry and didn't make a pysrs-sendmail subpackage. So if you don't use sendmail, you'll get extra crud (that won't hurt anything). -- Stuart D. Gathman Business Management Systems Inc. Phone: 703 591-0911 Fax: 703 591-6154 "Confutatis maledictis, flamis acribus addictis" - background song for a Microsoft sponsored "Where do you want to go from here?" commercial.