cddd2f89d8fa0559b0662e4f79b4bb0c95553414
[infodrom.org/oldenburg.linux.de] / src / Service / mail2news.wml
1 #include "LUGO.style"
2
3 <PAGE name="Mail-to-News">
4
5 <H3>Ein Mail-to-News Gateway</H3>
6
7 <em>Von Torsten Neumann</em> <p>
8
9 Um Mails aus Mailinglisten, z.B. der Linux-Stammtisch-Mailingliste leichter
10 lesen und beantworten zu k&ouml;nnen, hab ich bei mir daheim ein
11 kleines Mail2News Gateway installiert. Das geht etwa so :<P>
12
13 <OL>
14 <LI>In die Datei ~/.forward einen Eintrag
15   <PRE>
16   "|/usr/bin/filter -vo /home/torsten/.elm/filter-errs"
17   </PRE>
18
19 <LI> Die Datei ~/.elm/filter-rules sollte dann folgendes enthalten
20   <PRE>
21   if (sender ~ /linux-stammtisch/) then execute '/usr/bin/mail2news ml.linux.stammtisch'
22   if (to ~ /linux-stammtisch/) then execute '/usr/bin/mail2news ml.linux.stammtisch'
23   if (to "torsten") then leave
24   </PRE>
25
26 <LI> Einrichten einer Newsgruppe ml.linux.stammtisch<P>
27   Alle Anleitungen dazu gelten fuer INN, Cnews erfordert ein anderes
28   Vorgehen. Eigent&uuml;mer der Dateien ist user.news.
29   <PRE>
30      ctlinnd newgroup ml.linux.stammtisch m "local news-admin"
31   </PRE>
32   Und da die Gruppe moderated ist traegt man in die Datei moderators
33   (normalerweise wohl /usr/lib/news/moderators oder so) noch das folgende ein
34   <PRE>
35     ml.linux.stammtisch:linux-stammtisch@lists.infodrom.org
36   </PRE>
37
38 Achtung, wer Mails nach News gated sollte sicherstellen das davon nichts nach
39 draußen geht. (Das kann ziemlich viel Ärger geben) Daher sollte bei den
40 herausgehenden News sowas stehen wie bei meinem Eintrag für <a
41 href="<url infodrom>">Infodrom Oldenburg</a> :
42   <PRE>
43     indrom/infodrom.north.de\
44     :!junk,!ml.*/!local\
45     :Tf,Wfb:
46   </PRE>
47 <LI> Jetzt fehlt nur noch das Script das Mails in News umwandelt. (Meines ist
48 sicher verbesserungswürdig, ich verwerfe z.B. ganz viele Headerzeilen -
49 Achtung das ist nur okay wenn es lokal geschieht und der Artikel nicht
50 weitertransportiert wird) Das sollte die Rechte 755 kriegen und in
51 /usr/bin abgespeichert werden
52
53 <PRE>
54 #! /bin/sh
55 /usr/bin/renice 20 -p $$ >/dev/null 2>&1
56 /usr/bin/awk "
57     BEGIN {
58         print \"Path: imke.infodrom.north.de!not-for-mail\"
59         print \"Newsgroups: $1\"
60         print \"Organization: mail2news gateway at imke\"
61         print \"Distribution: local\"
62         print \"Sender: news@imke.infodrom.north.de\"
63         print \"Approved: news@imke.infodrom.north.de\"
64         subject=0
65     }
66     NR==1,/^\$/ {
67         test=tolower(\$1)
68         if ( test==\"from:\" ) { print \$0 }
69         if ( test==\"subject:\" ) { print \$0 ; subject=1 }
70         if ( test==\"sender:\" ) { print \"X-orig-\"\$0 }
71         if ( test==\"message-id:\" ) { print \$0 }
72         if ( test==\"date:\" ) { print \$0 }
73     }
74     /^\$/,NR<0 {
75         if ( subject==0 ) { print \"Subject: none\" ; subject = 1 }
76         print \$0
77      }" | /usr/bin/rnews
78 exit 0
79 </PRE>
80
81 <LI> Jetzt können die Mails aus dieser Mailingliste ganz einfach mit einem
82 normalen Newsreader (z.B. tin) gelesen wesen. Die Artikel werden sogar
83 gethreaded das heißt das mensch auch bei großen Maillinglisten noch etwas
84 Überblick hat.<P>
85 <LI> Das Schreiben in die Mailingliste geschieht nun auch ganz einfach (darum
86 ist die Gruppe ja moderated).
87 Einen neuen Artikel schreibt mensch wie einen ganz normalen Newsartikel
88 (Taste 'w' bei tin). Das Antworten geschieht dann entweder über ein
89 Followup ('f' bei tin) wenn alle die Antwort kriegen sollen, oder man
90 antwortet halt nur dem Autor per Mail (Taste 'm')
91
92 </OL>
93
94 <h3>Anmerkungen</h3>
95
96 <ol>
97 <li> Das Filter-Programm vom ELM wurde aufgrund vieler
98      Sicherheitslücken aus der Debian-Distribution herausgenommen.
99      Stattdessen sollte das viel flexiblere procmail verwendet werden.
100 <li> Inzwischen wurde das Programm <a href="http://www.mutt.org/">Mutt</a>
101      entwickelt, das selbst Threading unterstützt.
102 </ol>
103
104 </PAGE>
105
106 # Local variables:
107 # mode: html
108 # mode: auto-fill
109 # mode: iso-accents
110 # end: