[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: OFF-TOPIC (How do you guys sort your mail?)



Richard L. Alhama <keyoz@iln.cyberspace.com.ph> wrote:

> How do you guys sort all this mail?

Personally, I gateway high traffic mailing lists such as several
debian-*@lists.debian.org 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.<listname>, 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 <list> that will feed mail to <list> 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 <list>@<your host> 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 <<HELP if exists $opts{'h'};
usage: $me [-acm] [-h] [-l listhost] [-o owner] [-p prefix] [file ...]
  -a         print aliases
  -c         print commands to create new groups
  -h         show help and exit
  -l host    default list host
  -m         print moderators
  -o owner   add owner-list aliases
  -p prefix  prefix for newsgroup names
HELP

$prefix = $opts{'p'} if exists $opts{'p'};
$prefix = $prefix . '.' unless $prefix =~ /(^|\.)$/;

for $list (<>) {
  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 $list\@$listhost\"\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:%s\@$listhost\n" }
    else { push @moderators, "$group:$list\@$listhost\n" }
  }
}
print @aliases if exists $opts{'a'};
print @commands if exists $opts{'c'};
print @moderators if exists $opts{'m'};

## EOF ##
<---------------

-- 
Christian "naddy" Weisgerber                  naddy@mips.rhein-neckar.de
  See another pointless homepage at <URL:http://home.pages.de/~naddy/>.


Reply to: