On Sun, Dec 01, 2002 at 01:02:32AM +0000, Pigeon wrote: | Hi, | | I have the following ~/.forward: | | # Exim filter | if $header_from: contains "digest" | then pipe "/home/pigeon/bin/burster" | save "/home/pigeon/mail/debug/burster.log" | endif
Ok, that's fine. | The program "burster", written in C, takes its standard input (the | digest) apart into individual messages and writes them directly to | /var/spool/mail/pigeon. (Is there an advantage to doing that as opposed to just receiving each message individually?) | It does not attempt to call any other mail | software, and always returns exit status 0. Don't return 0 if the operation fails. Return 1 or some other non-permanent (see the exim docs for which return codes are permanent) failure. If the pipe fails to exit successfully, then exim will store the message on the queue and retry the delivery later. | It is delivering the messages OK, and the original digests saved in | burster.log are all there. Ok. | However, my /var/log/exim/mainlog is full of stuff like this (sorry | for line length): | | 2002-11-30 22:59:38 18IGaF-0004IT-00 <= |[EMAIL PROTECTED] H=pigeon |(localhost) [127.0.0.1] U=pigeon P=esmtp S=31554 |[EMAIL PROTECTED] Message was received. | 2002-11-30 22:59:38 18IGaF-0004IT-00 => /home/pigeon/mail/debug/burster.log |<pigeon@localhost> D=userforward T=address_file Message was successuflly delivered to the mbox specified. | 2002-11-30 22:59:38 18IGaF-0004IT-00 ** |/home/pigeon/bin/burster <pigeon@localhost> |D=userforward T=address_pipe: return message generated There was an error of some sort with delivery to the pipe. | 2002-11-30 22:59:38 18IGaI-0004J1-00 <= <> R=18IGaF-0004IT-00 U=mail P=local S=33038 | 2002-11-30 22:59:38 18IGaF-0004IT-00 Error message sent to |[EMAIL PROTECTED] A bounce message was created and delivered. | 2002-11-30 22:59:38 18IGaF-0004IT-00 Completed The message is "successfully" done, as far as exim is concerned. | To my untutored eye, it looks like every time it pipes a message to | burster, some sort of error return is generated and sent back to the | list. This despite the fact that I have made burster always return | exit status 0, to try and stop this. Do you ever print stuff on stdout or stderr? If so that output will cause a bounce message to be generated containing the output. | Am I somehow inadvertently buggering things up by sending error | messages back every time I receive a digest? You'll only end up getting yourself automatically unsubscribed from the list. | What should I be checking? | Also, why does the list come from bounce-thingummy? I was quite | alarmed when I saw all these bounce-debian-user-digest messages, | until I checked my Windoze stuff from before I got online from Linux | and found it had always been like that. Yes, it's always like that. That "bounce-thingummy" is the 'envelope sender' address. The envelope sender is where error (bounce) messages will be delivered to. The address looks weird, but if you dissect it you'll notice that the beginning part is constant, followed by a delimiter, followed by an encoding of your address. It is structured that way so that first of all bounces go to the list management software, not the original sender. Secondly, the mailling list software can then automatically unsubscribe the no-longer-functioning address from the list. One way you can monitor the problem is to use the errors_to = pigeon@localhost option on the director in your exim.conf. Then exim will change the sender address so that you get the bounce instead of the list manager. Then you can read the message exim generated and figure out how to prevent it from happening in the first place. HTH, -D -- One OS to rule them all, one OS to find them, One OS to bring them all and in the darkness bind them, In the Land of Redmond, where the Shadows lie. http://dman.ddts.net/~dman/
msg16329/pgp00000.pgp
Description: PGP signature