On Sun, Sep 14, 2003 at 09:48:49AM -0700, Mitch (WebCob) wrote: > Interesting idea - would like to hear how this turns out. > > Thanks.
Well, I did what I specified below, and it works. I have it set up so that if a TMDA challenge is undelivered after N attempts (where N is configurable; currently, it's 12, which takes up around 150 minutes), the message is canceled and the original sender is added to a local blacklist. Thanks again for your suggestion, which got me on this track. > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Behalf Of Courier > User > Sent: Sunday, September 14, 2003 8:22 AM > To: [EMAIL PROTECTED] > Subject: Re: [courier-users] Re: Message-specific retry rules for > sending? > > > On Sat, Sep 13, 2003 at 11:14:30PM -0700, Matthew Parke Bostrom wrote: > > > I can easily write a custom script, and I understand cancelmsg. But > > > I'm not sure where this custom script would live. How can such a > > > script determine that the sending of a given message has been > > > retried a number of times? Would it have to read the logs to get > > > this information, or is there another way? > > > > Hi, > > > > I don't know exactly what you are trying to do, or how much > > percision you need. > > > > You might be able to write a cron job that would look at the > > control files. I think every time courier attempts to deliver a > > message, the attempt is written in the message's control file. > > > > http://www.courier-mta.org/queue.html > > > > -Matthew. > > Thank you. And yes, I was thinking of doing this with cron, but I > was hoping that there would be a way to cause my script to get > invoked every time "courieresmtp" runs. I'm using "perlfilter", but > the control files are not yet complete at the time it runs. And > besides, this filter gets invoked from within "submit" and not > apparently during retry attempts; this is handled ultimately by > "courieresmtp", which doesn't seem to have a way to use pluggable > filters like "submit" has with "perlfilter". > > But after reading your message, I got an idea: the syslog that I'm > running allows for messages to be piped through pluggable scripts, > and I'm already piping "mail.info" through such a script for other > purposes. In that script, all I have to do is look for lines like > this (split after the initial comma for ease of reading): > > Sep 14 10:16:50 myhost courieresmtp: id=00A2AB37.3F7D9481.00016801, > from=<[EMAIL PROTECTED]>,addr=<[EMAIL PROTECTED]>,status: deferred > > If "deferred" appears at the end, I can do the moral equivalent of a > recursive grep through the $localstatedir/msgq tree for the > message's unique id (in this case, "00A2AB37.3F7D9481.00016801"). > This will allow me to locate the control file, a hypothetical > version of which I have listed at the end of this message. In the > control file, I can count the number of "I0 R Connection refused" > lines or look at the timestamp on the "D", "C", or "A" lines > following them. > > If this message has been retried more than a certain number of times > or perhaps for longer than a given time period, I can then look into > the message file itself, which will be a file located under the > appropriate $localstatedir/msgs subdirectory, and whose name is > gotten by replacing the leading "C" of the control file name with > "D". I can search for a special header in this message file to see > if it's a TMDA challenge message. If so, I would then call > "cancelmsg" and also locally blacklist the domain (in this case, > "[EMAIL PROTECTED]"). > > Or something like that. :) > > Anyway, this is pretty complicated to do within syslog processing, > so I should probably fork off a new process to do everything > beginning with the grep-like thing every time I detect a deferred > message. > > So barring any ability to install a filter inside of "courieresmtp", > this is how I think I'm going to tackle the problem. Does anyone > have any other ideas? > > Thanks. > > This is the hypothetical control file that I referred to above: > > [EMAIL PROTECTED] > fdns; localhost (localhost [127.0.0.1]) > e > t > M00A2AB37.3F7D9481.00016801 > [EMAIL PROTECTED] > R > N > E1064153544 > p1063577544 > W1063563144 > A1063548745 > I0 R Connection refused > D0 1063548745 > C1063548745 > A1063549045 > I0 R Connection refused > D0 1063548911 > C1063548911 > A1063549211 > I0 R Connection refused > D0 1063549010 > C1063549010 > A1063550810 > > > -- > Courier User > [EMAIL PROTECTED] > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > courier-users mailing list > [EMAIL PROTECTED] > Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users > -- Courier User [EMAIL PROTECTED] ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ courier-users mailing list [EMAIL PROTECTED] Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
