Mail2News Gateway mit Inn

Ich möchte hier kurz beschreiben, wie man Mails an eine bestimmte Adresse in eine Newsgroup einspeisen kann. Ich gehe dabei davon aus, dass der Newsserver Inn ist, ein MTA wie Postfix Mails über SMTP annimmt (es geht vermutlich auch mit Fetchmail mit nachgeschaltetem Procmail) und unser Server über foobar.dyndns.org ansprechbar ist.

Zuerst muss eine neue Newsgroup angelegt werden

su - news
/usr/lib/news/bin/ctlinnd newgroup mailinglists.kernel

Nun legen wir als root einen Alias in „/etc/aliases“ an, an den Mails geschickt werden können:

ml_kernel: |" /usr/lib/news/bin/mailpost mailinglists.kernel "

Anschließend ist

newaliases

auszuführen.
Die Zeile in /etc/aliases bewirkt, dass Mails an ml_kernel@foobar.dyndns.org an das Kommando „/usr/lib/news/bin/mailpost mailinglists.kernel“ gepipt werden. mailpost bereitet die Mail auf, leitet es an „inews“ weiter, welches die News an Inn schickt.

Da inews und mailpost als nobody ausgeführt werden, muss sichergestellt werden, dass sie Lesezugriff auf /etc/news/inn.conf haben. Bei mir war es notwendig, „chmod +x /etc/news“ auszuführen.

Nun sollten Mails an ml_kernel@foobar.dyndns.org in die Newsgroup mailinglists.kernel gepostet werden.

Sollten Fehler auftauchen, ist es meist sehr sehr mühsam, diese zu finden. Ein Blick in /var/log/mail ist immer sinnvoll, Logs in /var/log/news/ bergen selten nützliche Infos. Nervig ist, dass Fehlermeldungen/Ausgaben von mailpost oft nirgends angezeigt werden. Hier kann folgende Erweiterung in der aliases helfen:

ml_kernel: |" /usr/lib/news/bin/mailpost mailinglists.kernel >> /tmp/mail2news.log 2>> /tmp/mail2news.log"

mailpost Fehler auf Grund falscher Berechtigung

Wenn man mit mailpost herumgespielt hat (als User ungleich nobody), so wird man später das Problem haben, das nobody auf eine Datenbank zugreifen will, aber keine Rechte dazu hat:

Command died with status 13: " /usr/lib/news/bin/mailpost mailinglists.xyz ". Command output: ndbm store returned -1, errno 13, key "a3d939dac03482b5d9e8f5fc39bba027.squirrel@mein.subbie.net" at /usr/lib/news/bin/mailpost line 370, <STDIN> line 83.

Das einfachste ist, diese Datenbanken zu löschen (sie enthalten die Message-IDs von bisher geposteten Mails)

rm /var/spool/news/tmp/mailpost-msgid.dir /var/spool/news/tmp/mailpost-msgid.pag

Ein „chown“ sollte auch gehen, und wäre wohl der saubere Weg.

Allgemeiner Tipp: Arbeitet am besten gleich als nobody („su – nobody“), wenn ihr solche Sachen testen wollt.