[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:33011] A News to Mail Gateway


梶木@TAOです

ML を mail2news などでニュースとして購読している人が、
ニュースリーダーから ML に記事を投稿する際に不要なヘッダを
取り除くためのフィルターを作りましたので、ご参考までに
投稿します。

[背景]
私は Mail2News mini HOWTO にて ML の記事を INN に転送して
ニュースとして購読しています。この方法では、ML の投稿先の
メイルアドレスを moderator として設定し、ニュースリーダーから
ML に直接、記事をメイル投稿する実装になっていました。

ところが、これだと Newsgroups: などの余計なヘッダが付いた
ままで、ML に記事が流れてしまい、あまり良くないという
ご指摘を戴きました。調べてみると、jlug.ml.users からも
Newsgroup: jlug.ml.users というヘッダが付いたメイルが流れて
きています。

これでは別の Newsgroup 名で購読している人には配送されない
かも知れません。そこで、ML に直接メイル投稿する前に
フィルターにかけて余計なヘッダを取り除く、news2mail の
gateway を設けました。

私は自分のメイルアドレスを moderator に設定し、procmail にて
ML 毎に異なる投稿先に選別して投稿する方法で実装しました。

これまで迷惑だと感じてた人、ごめんなさい。お詫びに、
短いので procmail の設定と news2mail プログラムを添付します。

# 著作権は主張しませんので、自由に料理して下さい
# 動作保証はしません。 At your own risk.

----
:0 HD
* ^Newsgroups: local\.ml\.a-list
| /usr/local/bin/news2mail.pl a-list _at_ mailing.list | /usr/sbin/sendmail -t

:0 HD
* ^Newsgroups: local\.ml\.b-list
| /usr/local/bin/news2mail.pl b-list _at_ mailing.list | /usr/sbin/sendmail -t
----
#!/usr/bin/perl
#
# News to Mail Gateway
#     1998 Programed by Yoshi. Kajiki  <kajiki _at_ 3dpro.tao.go.jp>
#
# Usage: cat article | news2mail.pl receiver | sendmail -t
#

### Get Argument ###
if ($#ARGV == 0) {
    $receiver = $ARGV[0];
} else {
    die "Usage: cat article | news2mail.pl receiver_address | sendmail -t\n";
}

### Remove Illigal Headers ###
while (<STDIN>) {
    if (/^$/) { last }

    if (/^To:/) { $_ = "To: $receiver\n" }
    if (/^Path:/) { next }
    if (/^Newsgroups:/) { next }
    if (/^Organization:/) { next }
    if (/^Lines:/) { next }
    if (/^NNTP-Posting-Host:/) { next }
    if (/^X-/) { next }

    print $_;
}

print "\n";

### Through Body ###
while (<STDIN>) {
    print $_;
}

print ".\n";
----

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」