"uns*bscribe" not working on my lists
So I've got a few lists that are, as far as I can tell, identical as far as config and file permissions go. But on one of them, unsubscribe requests work, and on the others, it always says "I could not find your name on the list", even though I see it right there on the last line of the dist file. I can't tell what's different about the two lists that makes one work and one fail. So, my question *really* is, how do I debug this? I imagine something is going wrong inside "multigram", but I can't even figure out how multigram should be invoked in order to reproduce what happens when mail comes in. I only barely understand what multigram is supposed to do, and its source code in insanely opaque... Is there even a man page for this thing? -- Jamie Zawinski jwz@jwz.org http://www.jwz.org/ jwz@dnalounge.com http://www.dnalounge.com/ http://jwz.livejournal.com/
It's been quite a while since I groveled around in the innards of multigram, but let me see if I can say something useful ... Multigram works in just about exactly the opposite way you might expect. It uses a series of heuristics to pick things that look like email addresses out of its standard input, then does a fuzzy match of the resulting strings against the list of addresses in the dist file (which is named as one of its arguments). If there are several things that look like email addresses clumped together on the same line of stdin, it may ignore all but the first one on that line. On 10/9/06, Jamie Zawinski <jwz@jwz.org> wrote:
I can't tell what's different about the two lists that makes one work and one fail.
I suppose you've already confirmed the obvious, such as, they both have auto_unsubscribe=y somewhere in the config, neither dist file has CRLF line endings, the "broken" dist does have a LF on the end of the last line, etc.
So, my question *really* is, how do I debug this?
Start by removing the redirect to /dev/null at about line 50 in the "unsubscribe" script, and assign something to LOGFILE in the calling procmail so that stderr is captured.
I imagine something is going wrong inside "multigram", but I can't even figure out how multigram should be invoked in order to reproduce what happens when mail comes in. I only barely understand what multigram is supposed to do, and its source code in insanely opaque... Is there even a man page for this thing?
There should be a file named "Manual" that came with the SmartList distribution. Discussion of multigram is spattered throughout that file, but mostly concentrated in section 6. If you need a copy, let me know and I'll send you one.
Is it possible that the 'dist' file entry giving trouble has a DOS <CR><LF> end of line that is the problem? Allen ---- Address: Dr. Allen Wilkinson (phone) (216) 433-2075 NASA Glenn Research Center (fax) (216) 433-3793 M.S. 110-3 (home) (216) 382-7613 21000 Brookpark Road Cleveland, OH 44135 USA (INTERNET) Allen.Wilkinson@grc.nasa.gov On Mon, 9 Oct 2006, Bart Schaefer wrote:
It's been quite a while since I groveled around in the innards of multigram, but let me see if I can say something useful ...
Multigram works in just about exactly the opposite way you might expect. It uses a series of heuristics to pick things that look like email addresses out of its standard input, then does a fuzzy match of the resulting strings against the list of addresses in the dist file (which is named as one of its arguments). If there are several things that look like email addresses clumped together on the same line of stdin, it may ignore all but the first one on that line.
On 10/9/06, Jamie Zawinski <jwz@jwz.org> wrote:
I can't tell what's different about the two lists that makes one work and one fail.
I suppose you've already confirmed the obvious, such as, they both have auto_unsubscribe=y somewhere in the config, neither dist file has CRLF line endings, the "broken" dist does have a LF on the end of the last line, etc.
So, my question *really* is, how do I debug this?
Start by removing the redirect to /dev/null at about line 50 in the "unsubscribe" script, and assign something to LOGFILE in the calling procmail so that stderr is captured.
I imagine something is going wrong inside "multigram", but I can't even figure out how multigram should be invoked in order to reproduce what happens when mail comes in. I only barely understand what multigram is supposed to do, and its source code in insanely opaque... Is there even a man page for this thing?
There should be a file named "Manual" that came with the SmartList distribution. Discussion of multigram is spattered throughout that file, but mostly concentrated in section 6. If you need a copy, let me know and I'll send you one.
_______________________________________________ Smartlist mailing list Smartlist@lists.RWTH-Aachen.DE http://MailMan.RWTH-Aachen.DE/mailman/listinfo/smartlist
So I've got a few lists that are, as far as I can tell, identical as far as config and file permissions go. But on one of them, unsubscribe requests work, and on the others, it always says "I could not find your name on the list", even though I see it right there on the last line of the dist file. I can't tell what's different about the two lists that makes one work and one fail.
The first thing I'd check is to make sure that the dist files for your problem lists contain the line (Only addresses below this line can be automatically removed) at the top (or at least above the addresses you're trying to remove). Make sure it matches exactly. If that's not it, the best place to start debugging would be with the list's logfile. Any failed unsubscribe attempt should write some useful info into the logfile, with the output of multigram's attempt to find the address. If that doesn't help, look at the .bin/unsubscribe script and see how it runs multigram. You can try running multigram manually by piping the address you want to remove into it (remember that the rc.request script is piping the contents of the message to the unsubscribe script.) cd listdir echo someone@somewhere.com | ../.bin/multigram -b1 -l32760 dist You can try lowering the match threshold (-l option) until it finds something. Given that one of your lists is working fine, I can't imagine there's a problem with the multigram program itself. It may be insanely opaque, but it's surprisingly solid. -cary
On Oct 9, 2006, at 11:03 PM, Cary Coutant wrote:
The first thing I'd check is to make sure that the dist files for your problem lists contain the line
(Only addresses below this line can be automatically removed)
at the top (or at least above the addresses you're trying to remove). Make sure it matches exactly.
That was the problem -- some of my dist files were missing that. Thanks! -- Jamie Zawinski jwz@jwz.org http://www.jwz.org/ jwz@dnalounge.com http://www.dnalounge.com/ http://jwz.livejournal.com/
participants (4)
-
Allen Wilkinson
-
Bart Schaefer
-
Cary Coutant
-
Jamie Zawinski