INN - mail gateway
< INN - debug | Configure the INN nntp server (2021/2022) | INN - cleaning and reporting - cronjobs >
The goal is to have a mailing-list mirrored on a newsgroup.
Posts have to be sent from the list to the group and from the group to the list as needed.
From list to news (Mailman)
(untested in 2022)
Pretty simple, in Mailman Web interface:
Mail gateway (Sympa)
Receiving the list
For all examples, we use a mailing list "test@culte.org" and a NNTP server "dodin.fr.nf". "dodin.fr.nf" MUST accept email (obviously), postfix (or equivalent) have to be configured and smtp (port 25) open in the Firewall if any.
From list to newsgroup
Group side as root
For a newsgroup, eg "test". Use the mailpost program (shipped with inn) to established the gateway. Create an alias in the MTA of dodin.fr.nf :
test: "|/usr/lib/news/bin/mailpost -b /var/spool/mailpost -t /var/tmp -d local culte.test"
then newaliases
debugging
# ll /var/spool/mailpost/
To see if mailpost writes there
# ls -l /var/spool/mailpost/ total 20 -rw-rw-r-- 1 nobody nobody 16 5 févr. 12:22 mailpost-msgid.dir -rw-rw-r-- 1 nobody nobody 16384 5 févr. 16:10 mailpost-msgid.pag
mailpost-msgid.pag changes (date, taille), not mailpost-msgid.dir
then send messages from root to test, then test@dodin.fr.nf. If they go through, good. Always add the post date in the text or the subject for reference
Then try from the list server. The "Sympa" one allows admin to send post directly from the admin web interface.
Try:
cat /var/log/mail* | grep "whatever"
Check that aliases works (see postfix configure here).
When a mail is sent to the list, test@dodin.fr.nf will receive it. And with mailpost, it will be posted on the newsgroup.
News side
As "news", create the group:
/usr/lib/news/bin/ctlinnd newgroup culte.test
debugging
execute often
inncheck -a -v -f --pedantic --perm
List side
Add a new subscriber to the mailing list. Its mail address must be handled by dodin.fr.nf.
You can use "test@dodin.fr.nf". It's a good idea to set the user as "don't receive my own mails", the only case when this user send a message is when this message is posted via newsgroup and it's already on the group.
September 11, 2022: when sending an article through newsgroup, I keep receiving warning because the list send the message back. May be (not yet tested) it's better have an user to send article to and an other to receive, or change something in sympa. (do not send me back my own articles?)
From group to mailing list
sympa method (can't make it work: moderation is refused (not allowed to post))
It's quite simple : mark the group as moderated. This is done while the server is running with: ctlinnd changegroup test m For group "test" and letter m, for "moderated". On my server the group is "culte.test" to separate the groups of my Linux User Group (http://culte.org) from more general ones. And set the moderation address to the mailing list address (mylist@mylistserver.org). In the file "~news/moderators" add culte.test:test@culte.org Change the mailpost alias using the -a flag of mailpost (the -a flag marks the message as accepted by a moderator): test: "| /path/to/mailpost -a culte.test" Then, when a message is sent to the list, it is approved by the moderator and then posted. When a message is directly posted, it's sent to the moderator (which is the whole mailing list). As other messages on the list, it's approved and posted. This last method can be usefull to create a complete message system : mail, news and web interfaces can be used to read and send messages.
Mailman method (should work also for Sympa)
As "news" edit "newsfeeds"
The line following is commented out by default, uncomment it.
news2mail!:!*:Ac,Tc,Wn*:<pathbin>/news2mail
Is to take as it is, only "<pathbin>" is for us /usr/lib/news/bin/
So:
news2mail!:!*:Ac,Tc,Wn*:/usr/lib/news/bin/news2mail
then, for a "test" list and culte.test group:
test/culte.org:!*,culte.test:Ap,Tm:news2mail!
The first field (test) is only a random name, it only have to be the same as in the other file. "culte.org" is the list server domain name. Warning: no blank space at the end of the line!
There is no need to have the list name here, so you have to read "test/culte.org", not "test@culte.org"...
As "news" edit news2mail.cf
test test@culte.org test@dodin.fr.nf
First field (test) is the same than in the other file. The second field is the target list and the last is the "sender" name for the header. If the list is only for subscribers, use the mail of a legitimate list user.
Debugging
Syntax is important and not always easy to understand. You can use very often "inncheck -a", and even
inncheck -a -v -f --pedantic --perm
That should see even excess spaces at the end of a line
< INN - debug | Configure the INN nntp server (2021/2022) | INN - cleaning and reporting - cronjobs >