For the scoop on Majordomo, see:
http://www.greatcircle.com/majordomo/majordomo-faq.
The rest of this email is for Michael (mainly), taken from the FAQ, though I can't suggest anything for the unsubscribe problem off the top of my head w/o some knowledge of the versions of sendmail, perl, etc. that arachne.cz's running. Maybe you could ask the majordomo-users list, Michael: http://www.greatcircle.com/lists/majordomo-users/
***
- How can I restrict a list such that only subscribers can send mail to the list? See the restrict_post variable in the config file. Just set it to the filename that holds the list of subscribers, which is just simply the name of the list. ("restrict-post = listname"). However, there is an issue to keep in mind. Majordomo works by filtering the messages coming in through the "listname" alias, doing its dirty work, then passing the resulting message out to another alias you define like "listname-outgoing". If you trust people to not send mail directly to the "listname-outgoing" alias, then you'll be fine. If however you're not trusting, there are several steps to make sure people don't bypass the restrictions of the list.
There are several methods. First you need to change your "listname-outgoing" alias such that it is not obvious. (That means don't use something easy to guess like "-outgoing" or "-list"). Next, you need to make it such that people can't find out what your -outgoing alias is.
You can use the "@filename" directive of resend. Put the all the normal command-line options of resend into a file readable only by the majordomo user/group. Then the alias for the list simply becomes ".../resend @/path/to/filename". This will make it such that you can't find out the -outgoing address by connecting to your mailer and doing an EXPN or VRFY. The "@filename" directive seems to have fallen into undocumentation for some reason. This should be fixed in future releases. This doesn't prevent a user reading the local /etc/aliases file (if they can), however.
Another approach is to simply disable EXPN or VRFY altogether. See the documentation for your mailer on how to do this. In sendmail this is done by adding "noexpn" to the "O PrivacyOptions=" line in your sendmail.cf (multiple options are separated with a comma). However this doesn't prevent a local user reading the aliases file. This isn't generally a problem if your mail server is restricted to staff only users.
Unfortunately, Sendmail 8.x will log your -outgoing alias in the "Received:" lines. To prevent this you need to specify more than one address for the list name argument to resend. (for example "mylist:|"/usr/local/lib/majordomo/wrapper resend -h foo.org -l mylist mylist-seekrit,nobody"" where nobody is an alias for /dev/null) For Sendmail 8.x you must /not/ define an alias 'owner-mylist-seekrit' to be something like 'owner-mylist,' (with the comma). Otherwise sendmail will set the envelope address of outgoing mail to contain your secret outgoing alias. Again if you're using the @filename directive, the entire command line is simply put into the specified file (starting with "-h foo.org ...".
Here's another creative idea from [EMAIL PROTECTED] (Matt Perry):
/I've had a report that this no longer works with sendmail 8.9.1, but that it does work with 8.9.3./
Sendmail allows you to rewrite incoming and outgoing addresses. The one that handles incoming is virtualusertable.text. For a list called test with the test-outgoing alias, I put the following into my virtualusertable.text file and remade the db with the appropriate command:
[EMAIL PROTECTED] error:nouser User unknown
Sendmail can still get to the alias and expand it into the list of recipients. However, any mail that appears at port 25 marked for [EMAIL PROTECTED] will bounce back with "User unknown".
Finally it should be noted that it is impossible with any of these methods above to prevent people from forging mail as someone who is subscribed to the list, and sending to the list that way. Of course a spammer can also subscribe to the list legitimately and then send spam. The restrict_post option blocks the vast majority of problems, however.
- How can I stop people from using my mailing list to spam my subscribers? [From [EMAIL PROTECTED] (Michael Richardson) ]
There are two approaches to solving spam. They are complementary.
The most general solution is to make sure that your list host will not accept spam. See http://spam.abuse.net/ for extensive recipes on this.
The majordomo specific way is to use the "restrict_post" mechanism to disallow posts from addresses that are not on the list. Please see section 3.6 <http://www.greatcircle.com/majordomo/majordomo-faq.html#3.6> for some of the pitfalls of using restrict_post. They all apply. My experience is that spammers have not yet learnt about the "-outgoing" alias, and the techniques in section 3.6 would apply when they do.
The major objection to using restrict_post to deflect spam is that it may deflect posts from legitimate people -- people who've subscribed with one address but are posting from another address. It may also restrict cross-posts from other lists, or from people who read the list via news.
The solution to the above objections is twofold:
1. the moderator must forward legitimate posts. This can be a pain,
but it does work.
2. the restrict_post header can be extended.The typical way to do #2 is to set restrict_post to:
mylist:mylist-nomail
Then, create a configuration file and password for "mylist-nomail", but DO NOT create any aliases. (If you use something like mj_build_aliases, then don't set the owner)
The moderator, or subscribers may then subscribe themselves to this second list. Subscribers to the -nomail list will then be allowed to post to the first list, but won't receive duplicate copies of the first list.
may this reach you smiling!
Sincerely, david
