=head1 NAME

news2mail - Channel script to gateway news into e-mails

=head1 SYNOPSIS

B<news2mail>

=head1 DESCRIPTION

B<news2mail> runs as a channel process underneath B<innd>.  It is set
up as channel feed in F<newsfeeds>, with different mailing-lists as funnel
entries pointing to it (see below); B<news2mail> expects the token of an
article followed by a sequence of list names.

B<news2mail> uses the configuration file I<pathetc>/news2mail.cf to map
mailing-list names to e-mail addresses.  B<news2mail> causes the mail
transport agent (usually B<sendmail>, as set in the I<mta> parameter in
F<inn.conf>) to queue the messages for later delivery (to avoid DOS attacks
by mass postings).  You must run C<sendmail -q> periodically to get the queue
processed.

If the gatewaying is being set up with a software like Mailman which has the
feature of pulling and posting news articles on its own, you should just rely
on that feature (and grant Mailman read and post access to the newsgroup),
and do not use B<news2mail> at all.  It will indeed save you the time of
configuring it correctly and investigating possible circular loops or rejects.

There is also another possibility to gate a newsgroup to a mailing-list,
that is making the newsgroup a moderated newsgroup, and setting the Mailman
list address as the moderator address of the newsgroup in the moderators(5)
configuration file, and having everything go through Mailman.  In this setup,
Mailman can even be used as a moderation interface.

=head1 CONFIGURATION FILE

The configuration file format is simple: comments (starting with a hash sign
C<#>) and blank lines are ignored.  All other lines have two or three fields
on them.  The first is the list name and is what B<innd> uses (i.e. the site
field of the entry in the F<newsfeeds> file).  The second field is the
actual e-mail address to send the article to.  The third field is optional:
it sets the envelope-from address (for instance a list member's address;
if not set, it defaults to the C<news> user).

In e-mail messages, the To header field body will have the mailing-list
address (i.e. the second field).  Besides, B<news2mail> strips most article
header fields from the article before mailing.

In F<newsfeeds>, the channel feed should look like:

    news2mail!:!*:Ac,Tc,Wn*:<pathbin>/news2mail

and for each mailing-list, you only have to add to F<newsfeeds> an entry list
like:

    list-big-red-ants/lists.ucsd.edu\
        :!*,rec.pets.red-ants\
        :Ap,Tm:news2mail!

Please note the use of C<Ap> and the exclusion of the list owner domain
to protect the list from feeding back new arrivals from the list.
The site name used in the F<newfeeds> entry for a mailing-list (above
C<list-big-red-ants>) must be the same as the first field in an entry in
F<news2mail.cf>.  For instance:

    # newsfeeds-name   list-to-address      [list-sender-address]
    list-big-red-ants  ants@lists.ucsd.edu  news+ants@news.server.org

=head1 FILES

=over 4

=item I<pathbin>/news2mail

The Perl program itself used to gateway news into e-mails.

=item I<pathetc>/news2mail.cf

The configuration file which specifies the mapping to use for gatewaying.

=back

=head1 BUGS

The B<news2mail> program is set up as a funnelled channel in F<newsfeeds>,
implying multiple matches should be handled as one S<- and> multiple matching
funnelled feeds will result in a single call to the script.  Therefore,
since only one mail is sent, crossposts are not currently properly handled
as for the envelope-from address (which then defaults to the C<news> user).

=head1 HISTORY

B<news2mail> was written by Brian Kantor in 1998.  This man page was written
by James Brister and converted to POD by Julien Elie.  The third optional
field in F<news2mail.cf> was added by S<D. Stussy> in 2008.

=head1 SEE ALSO

innd(8), newsfeeds(5).

=cut
