The FreeBSD Diary

The FreeBSD Diary (TM)

Providing practical examples since 1998

If you buy from Amazon USA, please support us by using this link.
[ HOME | TOPICS | INDEX | WEB RESOURCES | BOOKS | CONTRIBUTE | SEARCH | FEEDBACK | FAQ | FORUMS ]
Allowing non-member submissions on closed mailing lists 23 March 2000
Need more help on this topic? Click here
This article has no comments
Show me similar articles
Majordomo is a mailing list I've fallen in love with.  It's served me well over the time I've used it.

A mailing list can be either open (anyone can send to it) or closed (only list members can send to the list).   On one list I run, some members had multiple email addresses.  They wanted to be able to send from any of those addresses.  One solution is to subscribe each of the addresses to the list.  But this isn't very nice as it means that person will receive multiple copies of each message.  That's not very nice.

This article shows how I found a way to allow people to send from more than one address but only receive one copy of each message.  Note that if you are running an open list, this article is not for you.

The bounced messages
Here is what a bounced message looks like:
Date sent: Mon, 20 Mar 2000 13:49:37 +1200 (NZST)
From:      owner-yourlist@host.yourdomain.org
To:        owner-yourlist@host.yourdomain.org
Subject:   BOUNCE yourlist@host.yourdomain.org: Non-member submission
                             from [James Tyson <james@something.com>]

It turns out that James wants to be able to send from his work address but only receive the list at home.  So he has subscribed his home address (james@hishome.org).   In the above message, he sent to the list from his work address, which is not subscribed.  The message is then bounced to the list administrator (that's me, and probably you).

The solution is to use the restrict_post keyword.

Of course, the simplest solution is to use an open list.  But that will not appeal to everyone.

restrict_post
The restrict_post keyword is specified within your list configuration file.  This is normally located at:
/usr/local/majordomo/lists/<listname>-config

where <listname> is the name of your list.  In the above bounced message, the list name is "yourlist".  The following is an extract from the configuration file and describes the keyword functionality:

# restrict_post       [restrict_post] (undef) <resend>
  # If defined, only addresses listed in these files (colon or space
  # separated) can post to the mailing list. By default, these files 
  # are relative to the lists directory. These files are also checked
  # when get_access, index_access, info_access, intro_access,      
  # which_access, or who_access is set to 'list'. This is less useful
  # than it seems it should be since there is no way to create these
  # files if you do not have access to the machine running resend.
  # This mechanism will be replaced in a future version of           
  # majordomo/resend.    

This is exactly what we want!  So I created a new file and called it yourlist-sendonly.  I added James' work address to this file.  The file now looks like this:

# more /usr/local/majordomo/lists/yourlist-sendonly
james@hishome.org    

The file is structured exactly like the main list file (which in this case would be /usr/local/majordomo/lists/yourlist) to which people subscribe and unsubscribe.

Improvements
The above solution does what is needed and it works very well.   However it does require manual intervention by the list owner.  There is a better solution.  Create another list named yourlist-sendonly and let people subscribe to that list as well.  I would make it a moderated list.   Nobody should be able to send to that list.  The list is actually used by the main list and is for reference only.  The addresses on that list are not used by anyone.

I have not tried this improvement, but I suspect the steps would be as simple as the following:

  1. create a mailing list
  2. make the list moderated (set moderate = yes in your list configuration file)
  3. make the changes as above to the restrict_post option of your main list and add the file name for the sendonly list.
  4. advertise the existence of the other list and let the posting begin.

If you do try the above, I'll be interested in your comments.   Thanks.


Need more help on this topic? Click here
This article has no comments
Show me similar articles