Allowing non-member submissions on closed mailing lists
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:
- create a mailing list
- make the list moderated (set moderate = yes in your list configuration file)
- make the changes as above to the restrict_post option of your main list and
add the file name for the sendonly list. - 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.