Re: confused with moderating a list

Daniel Liston <[email protected]> Mon, 11 Jan 2010 20:14:10 -0600
Newsgroups gmane.mail.majordomo.general
Message-ID <[email protected]>
My mail server's hard drive crashed while I was out of town last week,
so first let me apologize for a week long delay to send your reply.

I think you are very close to having the process correct and complete
with one exception;

All mail is really two (or more) pieces of information.  You have an
envelope which exposes sender and receiver, postage and a postmark,
as well as any irrelevant comments.  Inside the envelope is the bill,
newsletter, bank statement, or a combination of them all.  In other
words, the message body.  I could get into attachments and MIME parts,
but they all really count as message body contents anyway.

So the piece you are missing in your process to moderate a mailing
list is simply a separation of envelope and message.  This is a blank
line.

Since you don't really need the postage, postmark, or comments in the
distributed message, you can send an approval like this; (cut from the
list-owner-info text file included with majordomo)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
From: [email protected]         \
To: [email protected]  | Don't want these headers
Subject: BOUNCE: approval required  /
                                    - Blank line
>From [email protected]  date    \
Received: some long routing info    | Headers of original message;
From: [email protected]          | You want these.  It's OK if you
To: [email protected]           | don't have the first line.
Subject: Just a message             /
                                    - Blank line, you _must_ have this!
Hello.  I'm just writing to         \
consume some bandwidth and          | Message body; include all of
take up space in your mail          | this.
spool!                              /
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Technically, you only care about the To: From: Subject: and perhaps
even the Date: fields of the envelope, but these must be preceded
with the keyword Approved: followed by the appropriate password.

What you send back to your list, not majordomo now looks like this;

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Approved: secret pass code
>From: [email protected]
To: [email protected]
Subject: Just a message


Hello.  I'm just writing to
consume some bandwidth and
take up space in your mail
spool!
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Notice you are allowed to use MORE than one blank line to
separate the headers from the body.  The crucial factor is
that your email client does not introduce any blank lines
above your approved line, and that the blank line that is
used to separate the body from the header is truly a blank
line, not some non-printable whitespace character.

Final note:  Some MTAs enforce the rfc822 requirement to
use CR/LF as a line termination sequence in email.  If you
have one of these, you need to check the documentation of
your MTA for relaxing the restriction, or put a line of
perl code in majordomo.pl and resend so it can strip the
extra character to recognize and call the line "blank".

***majordomo.pl
59c59,60
<     s/\n\s+/ /g;
---
>     s/[\^M]//g;       # strip DOS <CR> from lines
>     s/\n\s+/ /g;      # unfold wrapped headers

The ^M is a single character created by typing ctrl-v then ctrl-m.

***resend
591c591
<
---
>      s/[\^M]//g;      # strip DOS <CR> from end of lines

If you are familiar with unix patch or diff, the above line is
inserted at line 59 in majordomo.pl, and replaces a blank line
591 in resend.  Another solution, instead of stripping out the
carriage return would be to actually accept ^M or CR/LF as an
acceptable line termination sequence.

The above line numbering assumes you have an unpatched 1.94.5
version of majordomo.  If not, you may need some help to locate
the actual place to insert the modification.

Happy New Year,
Dan Liston