#! /bin/sh # Establish a mail<->news gateway # Usage: newsmailgate mailing-list newsgroup # Assumptions: # 1. Linux INN-1.7.2 # 2. Being run as the "news" user. HOST=`hostname` MLDIR=lists if [ $# != 2 ]; then echo "Usage: create-newsmailgate mailing-list newsgroup" exit 1; fi ML=$1 NG=$2 # Go home cd MYHOME=`pwd` if [ ! -d $MLDIR ]; then mkdir $MLDIR fi if [ ! -f .qmail-nobody ]; then echo "# Throw away any mail sent to this address" > .qmail-nobody fi # Create moderated newsgroup and make moderated posts go to mailing list. /usr/lib/news/bin/ctlinnd newgroup $NG m (echo "$NG:$USER-$ML@$HOST"; cat moderators) > moderators.new && \ mv moderators.new moderators # Modify newsfeeds file. (cat newsfeeds - > newsfeeds.new << EOF # BEGIN: $ML mailing list $HOST/$HOST:\\ !*,$NG\\ /world\\ :Tp:/var/qmail/bin/qmail-inject -f $USER-nobody $USER-$ML@$HOST # END: $ML mailing list EOF ) && mv newsfeeds.new newsfeeds # Create Mailing list. ezmlm-make -AIt -5 $USER@$HOST $MYHOME/$MLDIR/$ML .qmail-$ML $USER-$ML $HOST # Add "Approved:" header echo "Approved: $USER-$ML@$HOST" >> $MYHOME/$MLDIR/$ML/headeradd # Add posting alias. echo "| $MYHOME/postlistmail $NG" > .qmail-$ML-post # Added news posting subscription. ezmlm-sub $MYHOME/$MLDIR/$ML $USER-$ML-post@$HOST # Now reload INN control files /usr/lib/news/bin/ctlinnd reload all "Mailing List" exit 0