Richard L. Alhama <[EMAIL PROTECTED]> wrote:
> How do you guys sort all this mail?
Personally, I gateway high traffic mailing lists such as several
[EMAIL PROTECTED] ones into local newsgroups. There's no coping
without a threaded newsreader and a kill file.
There's a program mail2news, originally by Rich Salz of INN fame, that
will take care of the conversion. With Debian it's part of the newsgate
package.
The basic configuration is this:
- Create a local group for the list. Choose whatever name you consider
sensible. Personally I use list., with dashes replaced by
dots. Set this group to "moderated" and in INN's moderators file add
the group with the submission address of the list as moderator
address. Thus, you can post followups to the group and the news system
will send them as mail to the list.
- Create an alias that will feed mail to to mail2news.
mail2news will do the required conversions and feed the result to
inews.
Ex:
debian-user: "|/usr/bin/mail2news -n list.debian.user
-a debian-user@lists.debian.org"
IMPORTANT!!! Make sure that bounces generated at this point, e.g. due
to mail2news quitting with an error, don't go back to the list or its
admin. The details for this vary with the MTA. Smail is rather
flexible in this respect. I suggest adding this to your /etc/smail/
transports file:
aliases.news:
driver=aliasfile, owner=news, set_user=news;
file=/etc/news/aliases, proto=lsearch,
modemask=002, owners=root:news, owngroups=root:news
and putting the list aliases in the /etc/news/aliases (news:news,
0644) file, which is under the care of the news admin.
- Subscribe the @ address to the mailing list.
Typically you will be asked for confirmation and the confirmation
request will already drop into the newsgroup.
mail2news does have a few rough edges, and there are a few inherent
problems of this approach to be aware of. This type of gateway *will*
refuse to convert some messages and generate bounces (that MUST go to
the gateway admin and NEVER EVER to the list admin).
- mail2news occasionally refuses a message due to an invalid message ID.
I haven't tracked this down in the RFCs yet, it's rather rare.
- I think it's inews that refuses to post a message with an empty or no
subject line. This is no loss to me since my killfile would eliminate
such articles anyway, but you might differ.
- If the same message was sent to several mailing lists, the gateway
will only post the first instance. The copies to the other lists will
have the same message ID and are thus refused by the news server. This
is an inherent problem caused by the differences in the mail and news
schemes.
- A user interface problem: As a way to combat junk mail to the lists,
many lists nowadays only accept submissions from subscribed addresses.
If you post a followup in your local group, your message will carry
your normal address and not that of the list alias. With restrictive
lists you have to edit the headers appropriately or write a really
clever macro for your newsreader to handle this automatically.
Here's a snippet of Perl I wrote to simplify making the groups, aliases
and moderators entries for a bunch of lists. Use and modify at will.
Input is just a load of submission addresses, e.g.
debian-announce@lists.debian.org
debian-devel@lists.debian.org
debian-user@lists.debian.org
...
m2ncf >
#!/usr/bin/perl -w
#
# help generate the configuration entries
# required for mail2news
#
# input: a list of mailing list addresses, one per line
#
# 1998-03-21 naddy
require 5.0;
use Getopt::Std;
#use strict;# debugging only
# constants
my $PREFIX = 'list.'; # EDIT site preference
# variables
my $me = $0;
my %opts;
my ($list, $listhost, $group);
my $prefix = $PREFIX;
my (@aliases, @commands, @moderators);
# main
$me =~ s|.*/||;
getopts('achl:mo:p:', \%opts);
die <) {
chop $list;
($list, $listhost) = split /@/, $list, 2;
$listhost = $opts{'l'} if !defined($listhost) && exists $opts{'l'};
$group = $list;
$group =~ s/-/./g;
$group = $prefix . $group;
if (exists $opts{'c'}) {
push @commands, "ctlinnd newgroup $group m\n";
}
if (exists $opts{'a'}) {
if (!defined $listhost) {
warn "$me: no list host for $list, skipping\n";
next;
}
push @aliases, "$list:\t\"|/usr/bin/mail2news -n $group "
. "-a [EMAIL PROTECTED]"\n";
push @aliases, "owner-$list:\t$opts{'o'}\n" if exists $opts{'o'};
}
if (exists $opts{'m'}) {
if (!defined $listhost) {
warn "$me: no list host for $list, skipping\n";
next;
}
if ($prefix eq '') { push @moderators, "$group:[EMAIL PROTECTED]" }
else { push @moderators, "$group:[EMAIL PROTECTED]" }
}
}
print @aliases if exists $opts{'a'};
print @commands if exists $opts{'c'};
print @moderators if exists $opts{'m'};
## EOF ##
<---
--
Christian "naddy" Weisgerber