======== Mail2News.j ========
  Mail2News ߥ˥ϥġ
  v1.0, 4 November 1996

  :   Robert Hart, InterWeft IT Consultants Melbourne, Australia
          iweft@ipax.com.au


  ܸ :   (kei@sm.sony.co.jp)
       : ƣ   (nozomi@biol.tsukuba.ac.jp)

  ΥɥȤǤϡᥤ󥰥ꥹȤʥ˥塼롼פ
  Ϥ뤿ɬפ mail2news.pl ȥ˥塼ФΥåȥå
  ˡҲ𤷤ޤ


== Ԥ ==
ϡLinux MINI-HOWTO Mail2News Ǥ
¿ޤƼϤ
ޤƤθꡢäȤ狼䤹Ƥʤɤޤ顢
ԤޤǥեɥХå򤪴ꤤפޤ
==============




  1.  ʤ

  ΥɥȤԤݻƤޤꥸʥη
   ݻƤ¤ˤơŻŪʼʤ CD ˤäۤ
  ȤĤޤ
  ĿŪʻѤΤˤΥɥȤ뤳ȤĤޤ

  ΥɥȤΰʬޤ򡢾嵭ʳˡǡ
  ݻԤεĤʤۤ뤳Ȥڶػߤޤ

  ΥɥȤ InterWeft IT Consultants (Melbourne, Australia)
  ˤäľܥݡȤƤޤ

  ΥɥȤκǿǤ InterWeft IT Consultants 
  <http://203.29.72.65/> ΡInterWeft WWW Ȥˤޤ

  (:ܸؤĤϸԤ餤Ƥޤ)


  Ԥ : Ԥ Robert Hart ˳ǧȤäȤꥸʥ
   (ʸΤޤޤ) ɽޤߤȤΤȤǤΤǡ
  ʲˤξϤθʸ⤽Τޤ޷Ǻܤޤ

  1.  Copyright and such

  The copyright of this document is retained by the author. Permission
  is granted to distribute the document by electronic means and on CDs
  provided that it is kept entirely in its original format. Permission
  is also granted to print a copy of this document for personal use.

  The republishing of this document in part or in whole without the
  permission of the copyright holder by any means other than as noted
  above is prohibited.

  This document is directly supported by InterWeft IT Consultants
  (Melbourne, Australia).

  The latest version of this document is available at the InterWeft WWW
  site at InterWeft IT Consultants <http://203.29.72.65/>.




  2.  ȥ

  󥿡ͥåȤ³˻ȤȤΤǤХϸ¤Ƥޤ
  ۤȤɤΥ󥿡ͥåȥȤǤϡθ¤줿Хͭ
  ȤˡϺƤޤ

  2ͰʾΥ桼Ʊᥤ󥰥ꥹȤɤƤ顢
  ʤʣ (̵̤) ȥեåƤ뤳Ȥˤʤޤ
  Τ褦ʽʣ󤢤äꡢΥᥤ󥰥ꥹȤ
  ȥեå⤤ˤϡ񤵤Х礭ʤΤȤʤޤ

  ᥤ󥰥ꥹȤδԤƤΤʤ顢
  ᥤ󥰥ꥹȥ桼̾ (ML) ɤ˥塼
  Фή (ʸ:gate) ȤˤäơΥᥤ󥰥ꥹȤ
  Ƥ򥵥ȤΥ桼ɤळȤǤޤ
  ޤinndפΥƥǽȤСΥ桼Τߤ
  ¤뤳ȤǤޤ

  ˹ȥեåΥᥤ󥰥ꥹȤˤϡ
  Τ褦ʥȹɤˤäƥХξޤ뤳ȤǤޤ

  ᥤ󥰥ꥹȤƤ˥塼꡼ɤळȤˤ¾ˤå
  ޤۤȤɤΥᥤեȥɤǤϥݡȤƤʤ
  ֥åɡפȤȤǤ뤫Ǥ(: ¸ΤΤȤꡢ
  åɤȤϡȯȡФե¤ƥ
  Ǥ褦ʻȤߤǤ)ޤĿŪʶ۵ޤΥᥤΤ
  ᥤܥå̤ƤȤǤޤ

  Υߥ˥ϥġǤϡȤ򤦤ޤ뤿Ρmail2news.pl
  ȤץȤҲ𤷤ޤ




  2.1.  mail2news.pl 򸫤Ĥ

  ԤϡCPAN (Comprehensive Perl Archive Network) Ǥ mail2news.pl
  򸫤Ĥ뤳ȤǤޤǤñ˸Ȥ
  ޤ󡣤ޤȤˤ sunsite.unc.edu  ftp.redhat.com 
  ɤˤϤޤ

   Perl ץȤϤۤĹʤΤǡΥϥġκǸˤ
  źդƤޤ




  3.  ƥγ

  餯ΥƥबɤΤ褦ưΤ򤹤ִñ
  ˡϡᥤ󥰥ꥹȤ줿åɤΤ褦˥˥塼
  롼פȿǤ줿ꡢ˥塼롼פ˥ݥȤ줿å
  ɤΤ褦ˤƥᥤ󥰥ꥹȤ뤫ʤɤפꡢ
  餬ɤΤ褦˰Τ򸫤Ƥߤ뤳ȤǤ礦

  3.1.  ᥤ󥰥ꥹȤΥᥤ

  ᥤ󥰥ꥹȤΥᥤϡιɼΥᥤ륢ɥ쥹Ф
  ޤ
  Ǥ顢̤ʥᥤ륨ꥢᥤ󥰥ꥹȤϿƤС
  Υᥤ󥰥ꥹȤȤΤȤϡ٤ƤΥɥ쥹ФƤ
  뤳Ȥˤʤޤ

  ᥤ󥰥ꥹȤΥᥤ뤬ʥޥ夹ȡ
  ᥤ륨ꥢѥ( : sendmail.cf ǡ | ȤäƼ¸
  ޤ͡)Ȥäơmail2news.pl Ϥޤ
  ޤΥᥤ륨ꥢϥʥ˥塼롼פΰꤹ
  ȤˤȤޤ

  mail2news.pl ץȤϤΥå˥塼Υإåʬ
  Ѥơrnews ޤ inews ̤ƤΥå˥塼
  롼פ˥ݥȤޤ




  3.2.  ˥塼롼פ˥ݥȤ줿å

  ˥塼롼פǥ졼Ȥʥ˥塼롼פȤꤷޤ
  뤳Ȥǡinnd  ᥤ뵡ǽȤȤǤ뤫Ǥ

  ǥ졼Ȥʥ˥塼롼פ˥ݥȤ줿åľܤ˥˥塼
  롼פˡ˥塼롼פΥǥ졼()
  ᥤޤ

  ˥塼롼פΥǥ졼Ȥƥᥤ󥰥ꥹȤΥɥ쥹
  ꤹ뤳Ȥˤäơ˥塼롼פ˥ݥȤ줿
  åϡinnd ˤäƼưŪ˥ᥤ󥰥ꥹȤФ
  ޤΤ褦ˤФ줿å ᥤ󥰥ꥹ
  Ф֤äƤ˥˥塼롼פˤޤݥ
  ޤ(ʣ뤳Ȥʤ)

  mail2news.pl ˤäơapproved׹ԤդäޤΤǡinnd
  Ϥޤ뤳ȤǤޤ(: פ˥ǥ졼
  ʥ˥塼롼פʤΤɡapproved׹ԤΤǤ
  Τޤ(٤ϥǥ졼Ȥ뤳Ȥʤ)˥塼롼פ˥ݥ
  롢ȤȤǤ͡)




  4.  mail2news Υåȥå

  ޤmail2news.pl ŬʤȤ֤ޤξˤ
  /usr/local/scripts ֤ƤޤʤιʤȤ֤
  

  ʲΤ褦ˤΥץȤԽƤ:

    ץȤƬʬperl ΥХʥ꤬ɤˤΤꤷޤ
     ___________________________________________________________________
     #!/usr/bin/perl
     # point at the correct location of perl
     ___________________________________________________________________


    ξˤϼ3Ԥ꤬ޤȥȤƤޤä
      ꤢޤ
     ___________________________________________________________________
     ( $version  ) = $] =~ /(\d+\.\d+).*\nPatch level/;
     die "$program: requires at least version 3 of perl\n"
             if $version < 3;
     ___________________________________________________________________


    ιԤˤϡʤΥ˥塼ݥȥץꤷƤ
      (ξˤ rnews Ǥ)ޤ˥塼ۥȤꤷޤ
     ___________________________________________________________________
     # $inews = "/usr/bin/inews";
     # $iopts = "-h -o \"mail2news gateway\"";
     $inews = "/usr/bin/rnews";
     $iopts = "";
     $postinghost = "your.news.server";   # points at your news server
     ___________________________________________________________________

    ץȥեˤϼ¹ԲǽѡߥåꤷƤޤ
      (⡼ 755)




  5.  ᥤ륨ꥢ

  /etc/aliases Խơ˥塼˥ѥפᥤ󥰥ꥹȤ
  ȥ꡼ޤ줾Υȥ꡼ϰʲΤ褦ʷǤ:
  ______________________________________________________________________
  <subscribed email address to list>: \
          "| /usr/local/scripts/mail2news.pl <local news group name>"

  㤨Хᥤ󥰥ꥹȤΥᥤ륢ɥ쥹(ɥᥤ륢ɥ쥹)
  site_list ǡϤᥤ뤬ݥȤ٤˥塼롼̾
  local.site.group ȤȡꥢϰʲΤ褦ˤʤޤ:

  # The site subscription address for blah-blah@some.mailing.list
  site_list: "| /usr/local/scripts/mail2news.pl local.site.group"
  ______________________________________________________________________

  ʥ˥塼롼פή(ʸ gated)ɬפΤᥤ
  ꥹȤ줾ˤĤƤΤ褦ʥȥ꡼ˡ
  ˥塼о newaliases ޥɤ¹Ԥޤ



  6.  ˥塼롼פȥ˥塼 (innd) Υåȥå

  ctlinnd Ȥäơʥ˥塼о˥˥塼롼פ
  ޤʥ˥塼롼פǤ顢¾ΥȤ
  Υ˥塼롼פۿƤϤޤ󡣤ϥ˥塼ۿ
  եǥե륿󥰤ǤޤΤǡΤȤ˻ꤷ䤹
  ˥塼롼̾ĤƤۤǤ礦
  ( : Ȥ local. ǻϤޤ˥塼롼̾ˤƤС
  Υ롼װʲΥ˥塼ۿػߤ뤳ȤñˤǤޤ
  ͡)

  ޤinnd ǡΥ˥塼롼פǥ졼°
  Ƥޤ(ctlinnd Ȥä)
  innd ϡեΥ桼 ID 䡢ѡߥå˸
  Ȥ˺ʤǤǤ顢ԤʤȤˤ
  news 桼ˤʤäǤ礦ǥ졼°
  ꤹˤϡΤ褦ˡctlinnd  newgroup ޥɤ m 
  ꤷޤ

  ______________________________________________________________________
          ctlinnd newgroup <newgroup name> m <newsadmin>
  ______________________________________________________________________

  m  Υ롼פϥǥ졼ȤǤ뤳ȤꤷƤޤ

  ˡʥ˥塼롼פ¾ΥȤ˽ФƤʤ褦ˡ
  ˥塼ۿե (newsfeeds) Խޤ
  (˥塼롼פ¾ΥȤۿ롢ʤˤ̤ͳ
  Τ)

  ȤСʥᥤ󥰥ꥹȤ local.site.group ä
  ȡήΥ˥塼(餯ήФƤƱͤǤ礦)
  ˤĤƤΥ˥塼ۿե(newsfeeds)ˡ
	!local*
  ʤɤȵҤ櫓Ǥ

  ˡ˥塼롼פ˥ݥȤ줿å innd 
  ̤ƼưŪ˥ᥤ󥰥ꥹȤ褦ˤ뤿ˡ
  /etc/news/moderators Խޤ

  ʲΤ褦ˡΥ˥塼롼פΥǥ졼Ȥƥᥤ󥰥ꥹȤ
  ᥤ륢ɥ쥹ꤹԤɲäޤ
  ______________________________________________________________________
  some.site.list:list@mail.list.site
  ______________________________________________________________________




  7. ᥤ󥰥ꥹȤ mail2news ꥢϿ롣

  ơᥤ󥰥ꥹȤ˥ꥢϿ֤Ǥ

  Υᥤ󥰥ꥹȤιˡǧƲĤ
  ᥤ󥰥ꥹȤǤϡɿ줿ᥤ륢ɥ쥹Ȥϰۤʤä
  ɥ쥹ǤɤդƤȤޤ
  (Υɥ쥹˹ɤΰջ֤뤫ɤǧޤ)

  ޤΤ褦ʹɷ֤ʤᥤ󥰥ꥹȤ⤢ޤ
  Τ褦ʾˤϡɿߤ֤Ǥäɬפ뤫
  ޤ
  ˤϤˡޤִñʤΤ Netscape Υᥤ
  åȥåפŪμꥢɥ쥹 (Ū) ꤹ롢Ȥ
  ˡǤ

  ɿߤդȡᥤ󥰥ꥹȥФ
  ֥륫ץåΤ褦ʤΤ˥塼롼פ˸
  ϤǤʤФ٤ƤޤԤäƤޤοᥤ
  ꥹȤˡ˥塼åݥȤƥƥȤƤߤޤ礦
  (:ƥȤȤϤ̵̣ʥݥȤǤʤΤǤޤ礦͡)

  ݥȤåϤˤϥ˥塼ȿǤʤϤǤ(⤷
  ȿǤƤޤäƤ褦ȡʤˤְäƤޤ)
  åϥᥤǳФ졢ᥤ󥰥ꥹȥФޤ֤
  ޥ夷ʥ˥塼롼פ˥ݥȤ롢
  ȤƧफǤ

  ⤦ޤС˥塼̤Ƥޤᥤ󥰥ꥹ
  ȤΤȤ꤬ǤƤ뤳Ȥˤʤޤ


  8.  ޤưʤ...

  ʤˤޤưʤˤϡå̤٤ϩפ
  ɤǼԤƤΤ褯Ĵ٤ɬפޤ
  ˤϡᥤ˥塼Υå򸫤ƤߤΤǤ礦

  Robert Hart
  Melbourne, Victoria, Australia October 1996




  9.  mail2news.pl ץ

  ______________________________________________________________________
  #!/usr/bin/perl

  ($program = $0) =~ s%.*/%%;
#( $version  ) = $] =~ /(\d+\.\d+).*\nPatch level/;
  #die "$program: requires at least version 3 of perl\n"
  #        if $version < 3;

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

  if ($#ARGV < 0) {
      # $newsgroup = "test";
      # we'll expect the newsgroup line in the body
  } elsif ($#ARGV == 0) {
      $newsgroup = $ARGV[0];
  } else {
      die "usage: $program [newsgroup]\n";
  }

  # in case inews dumps core or something crazy
  $SIG{'PIPE'} = "plumber";
  sub plumber { die "$program: \"$inews\" died prematurely!\n"; }

  open (INEWS, "| $inews $iopts") ||
      die "$program: can't run $inews\n";

  # header munging loop
  while (<STDIN>) {
     last if /^$/;

     # transform real from: line back to icky style
     s/^From:\s+(.*) <(.*)>/From: $2 ($1)/;

     s/Message-Id/Message-ID/;

     # transform from_ line to path header; also works locally
     s/^From\s+(\S+)@(\S+).*/Path: $2!$1/
       || s/^From\s+(\S+)[^@]*$/Path: $1\n/;

     print INEWS
  #       if /^(Date|From|Subject|Path|Newsgroups|Organization|Message-ID):/i;
     if /^(Date|From|Subject|Path|Newsgroups|Message-ID):/i;
     $saw_subject |= ( $+ eq 'Subject' );

     $saw_msgid |= ( $+ eq 'Message-ID' );

  #   $saw_newsgroup |= ( $+ eq 'Newsgroups' );
  }

  warn "$program: didn't expect newsgroup in both headers and ARGV\n"
      if $newsgroup && $saw_newsgroup;

  die "$program: didn't get newsgroup from either headers or ARGV\n"
      unless $newsgroup || $saw_newsgroup;

  $approved = $newsgroup;
  $approved =~ s/\./'-'/eg;

  ($sec,$min,$hour,$mday,$mon,$year)=localtime(time);
  $madeupid = "\<$year$mon$mday.$hour$min$sec.$$\@kepler.hedland.edu.au\>";

  printf INEWS "Newsgroups: %s\n", $newsgroup if $newsgroup;
  printf INEWS "Approved: %s\@kepler.hedland.edu.au\n", $approved;
  print  INEWS "Subject: Untitled\n" unless $saw_subject;
  printf INEWS "Message-ID: %s\n", $madeupid unless $saw_msgid;
  printf INEWS "NNTP-Posting-Host: %s\n", $postinghost;
  print  INEWS "Organisation: (mail2news gateway)\n";
  print  INEWS "\n";

  print INEWS while <STDIN>;   # gobble rest of message

  close INEWS;
  exit $?;
  ______________________________________________________________________

