Mail2News Mini-Howto

Bek Oberin gossamer@tertius.net.au,

Vertaald door: Ellen Bokhorst bokkie@nl.linux.org v1.2, november 2000

In dit document wordt beschreven hoe je newsserver en de mail2news software in te stellen om discussielijsten te koppelen aan lokale nieuwsgroepen.

1 Copyright en dergelijke

Het copyright wordt opgelegd door de auteur. Het is toegestaan het document in elektronische vorm en op CD’s te distribueren op voorwaarde dat het volledig in het oorspronkelijke formaat behouden blijft. Het is ook toegestaan een kopie van dit document voor persoonlijk gebruik af te drukken.

Het geheel of gedeeltelijk opnieuw publiceren van dit document zonder permissie van de copyright houder met alle andere bedoelingen dan hiervoor is aangegeven, is verboden.

2 Introductie

Waarom zou je het verkeer op een discussielijst willen posten naar lokale nieuwsgroepen?

Als meer gebruikers zich inschrijven op dezelfde discussielijst, dan zal er verkeer in duplo zijn. Door de site in te schrijven op een lijst (als de eigenaar van de lijst dit toestaat) en het emailverkeer naar de lokale newsserver door te sluizen, is het mogelijk discussielijsten voor alle sitegebruikers toegankelijk te maken of de beveiligings faciliteiten van ’innd’ te gebruiken om de toegang tot bepaalde gebruikers te beperken. Een dergelijk siteaanmelding (vooral als het een aantal lijsten met veel verkeer betreft) kan een benoemenswaardige besparing van bandbreedte opleveren.

Ook biedt het inlezen van het verkeer op de lijst via een newsreader het voordeel van threads en scoring/killfiles die niet in alle mailreaders beschikbaar zijn. En uiteraard houdt het de inbox vrij voor mogelijk dringende persoonlijke email.

In deze mini-HOWTO wordt het instellen van het ’mail2news’ script beschreven om dit te bewerkstelligen.

2.1 mail2news opsporen

Je kunt het mail2news package inclusief het script, deze HOWTO en andere documentatie downloaden vanaf:

http://www.tertius.net.au/~gossamer/code/mail2news/

3 Overzicht van het systeem

Hoe het systeem werkt is waarschijnlijk het eenvoudigst te begrijpen door een bericht vanuit de discussielijst naar de nieuwsgroep op te sporen en dan een bericht gepost naar de lokale nieuwsgroep (en doorgestuurd naar de discussielijst) en te bekijken hoe dat wordt afgehandeld.

3.1 Mail van de discussielijst

Wanneer mail van de discussielijst op de lokale computer arriveert, zoekt procmail uit aan welke nieuwsgroep het toebehoort, en stuurt het ’t inkomende bericht via een pipe door naar mail2news.

Het mail2news script verwerkt het bericht, past er newsheaders op toe en gebruikt vervolgens rnews of inews om het bericht naar de nieuwsgroep te posten.

3.2 Berichten gepost naar de lokale nieuwsgroep

De lokale nieuwsgroep is ingesteld als een moderated groep, aangezien dit het mogelijk maakt voordeel te hebben van de emailmogelijkheden van innd. Alle berichten die naar een moderated groep worden gepost, worden niet onmiddellijk aangeleverd aan de groep. In plaats daarvan worden de berichten naar de moderator van de groep gemaild.

Door de moderator van de lokale nieuwsgroep als een discussielijstadres te declareren, worden alle lokaal geposte berichten naar de nieuwsgroep automatisch door innd uit de discussielijst gemaild en verschijnen ze slechts zodra ze terug zijn ontvangen via mail2news die de benodigde ’approved’ regel aan de berichten toevoegt en ze dus acceptabel zijn voor innd om naar de nieuwsgroep te posten.

4 Instellen van mail2news

Plaats het mail2news script op een daarvoor geschikte lokatie. Ik geef de voorkeur aan /usr/local/bin, maar wat de lokatie zal zijn hangt van jezelf af.

Je moet als volgt het script wijzigen:

• Zorg dat je bovenaan het script verwijst naar de lokale Perl binary. Je kunt er waarschijnlijk achter komen waar Perl is geïnstalleerd door het achter de prompt intikken van ’whereis perl’ of ’which perl’. Als je het niet kunt vinden, kun je het beste /usr/bin/perl invoeren:

     #!/usr/bin/perl
     # verwijs naar de juiste lokatie van perl

• Wijzig de volgende regels zodanig dat ze naar het programma waarmee wordt gepost verwijzen (ik gebruik rnews, inews werkt ook) en naar je news host:

     # $inews = "/usr/bin/inews";
     # $iopts = "-h -o \"mail2news gateway\"";
     $inews = "/usr/bin/rnews";
     $iopts = "";
     $postinghost = "je.news.server";   # verwijst naar je newsserver

• Zorg dat het script uitvoerbaar is:

     chmod 755 /usr/local/bin/mail2news

5 Procmail

Het procmail configbestand is /.procmailrc. Als je niet reeds een procmailrc bestand hebt, maak je die gewoon aan.

Maak voor iedere discussielijst een record aan die naar je lokale nieuwsserver zal worden doorgestuurd. In de meeste gevallen zal iets als dit de truuk doen, maar zou in gebreke kunnen blijven voor mail die middels een Bcc naar de mailinglijst wordt gestuurd.

Als je discussielijst bijvoorbeeld ’jokes@netizen.com.au’ is en je wilt dat de nieuwsgroep ’lists.jokes’ wordt genoemd, zou je record er ongeveer zo uit komen te zien:

:0
* TOjokes@netizen.com.au
|/usr/local/bin/mail2news lists.jokes

Op de tweede regel bevindt zich geen spatie tussen ’TO’ en het adres van de lijst.

Je moet een lege regel plaatsen tussen de regels voor iedere groep. Plaats er zoveel regels in als je wilt, waarbij je gebruik maakt van dezelfde 3 regels voor iedere groep, maar waarbij je het adres van de lijst en de nieuwsgroep wijzigt.

6 Instellen van de nieuwsgroepen en newsserver (innd)

Met ctlinnd maak je de nieuwsgroepen aan op je newsserver. Denk eraan dat dit lokale nieuwsgroepen moeten zijn, dus begin ze met een onderscheidende naam, zodat je ze uit je news distributies kunt filteren (in je newsfeeds bestand).

Je moet innd ook opgeven dat de groep moderated is (met behulp van ctlinnd). Denk er aan, innd is nogal gevoelig wat betreft de eigenaar en permissies van een bestand, dus je moet met innd op het niveau van de newsuser uitwisselen. Een moderated groep geef je op door de m aan de opdracht newgroup mee te geven.

ctlinnd newgroup lists.jokes m

De m vertelt innd dat de groep moderated is.

Wijzig het newsfeeds bestand om er zeker van te zijn dat deze lokale groepen niet worden gedistribueerd (tenzij je dit specifiek wilt laten plaatsvinden).

Als je discussielijst bijvoorbeeld local.site.group wordt genoemd, dan zou je waarschijnlijk !local* aan het tweede veld toe willen voegen van je up (en mogelijk je down) stream newssites in je newsfeeds bestand.

Om er nu zeker van te zijn dat berichten van gebruikers automatisch door innd naar de lijst worden gezonden, wijzig je /etc/news/moderators waarin je een regel opneemt die het emailadres van de discussielijst als de moderator declareert.

lists.jokes:jokes@netizen.com.au

7 Als het niet werkt...

Als er iets niet werkt, moet je het pad dat de meldingen volgen opsporen om precies te zien waar het verkeerd gaat. Handige hulpmiddelen hierbij zijn de mail en news logs.

8 De toekomst

Een probleem met berichten die op deze wijze worden gepost is dat er een Newsgroups: header in voorkomt en nog wat andere rommel die de newsserver introduceert. Dit is niet zo’n belangrijk probleem, maar het maakt de berichten "rommelig". Het zou fijn zijn als er een programma zou zijn dat dit onderschept en de headers zou herschrijven voor ze verder te versturen.