[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[mhc:00121] Re: ソートするとメールが消えてしまいます



大原です。

解決しっぱなしではアレですので、summary もどきです。

ito@xxxxxxxxxxxxxxxxxxxxxxxxx (Toru Ito) さんの、
"Fri, 25 Jun 1999 07:50:16 +0900" にだした、
「[mhc:00114] Re: ソートするとメールが消えてしまいます 」というメールにて…… :

> pan> 大原さん、こんばんは、お陰様で正常に動作致しました。(__)
>  無事動かれた様で、良かったです!
> # 結局…お役に立てなくて申し訳無かったですm(__)m

伊藤さんからの情報もとても役に立ちました。ありがとうございます。

> # って事はimlsも"imls"だけで動きません? (感だけで言ってますが…^^;)

これは、imls へ PATH が通っていさえすれば "imls" だけで動きますね。
mscan2 の中で、perl を "-S" オプション付きで起動しているので、
perl が imls を PATH から探し出してくれるからです。


で、乃村さんからも指摘があったように、環境変数 PATH は、
Meadow の exec-path から継承されることはないです。
で、どうなるかということなんですが、どうも、
AUTOEXEC.BAT で設定しておいた PATH が参照されるようです(憶測)。

なので、Windows95/98 では、mhc の通常のインストール手順の他に、

・perl.exe と imls に (環境変数) PATH を通っているか確認する。
・mscan2 の中で、
  $SCAN = "imls"; $PERL = "perl";
  を設定する。
・HOME が設定されていなければ、$MailDir に適当なディレクトリを設定する。

とすれば mhc がきちんと動く、ということになります。

#Mew/IM をふつ〜にインストールすると、
#perl.exe や imls には PATH が通っていると思います。



というわけで、結論ですが、mscan2 のデフォルトの設定は、

$SCAN = "imls";
$PERL = "perl";  ## Only Win95/98 needs this.

にしておいた方が良いと思います。

これでハマるひとは、cron で生 today を起動してるひと(ていうか私)
くらいだと思います。



最後に、Win95/98 でも動く today を添付します。

perl -S today --mail=os@xxxxxxxxx --tilltomorrow

みたいな内容のバッチファイルを用意して、
深夜零時すぎか、朝一で起動すると嬉しいかも知れません。

----
OHARA Shigeki (大原重樹) <os@xxxxxxxxx>
#!/usr/local/bin/perl

$IMPUT  = 'imput';
$MSCAN2 = 'mscan2';
$PERL   = 'perl';  ## for only WIN95/98.
#$USER   = 'user';

if ($^O =~ /win/i) {
    ## for only WIN95/98.
#    $MSCAN2 = "$PERL -S $MSCAN2";
    $IMPUT  = "$PERL -S $IMPUT";
}

($sec, $min, $hour, $day, $mon, $year) = localtime(time);
$year += 1900; $mon++;

foreach (@ARGV) {
    $tilltomorrow = 1 if (/^--tilltomorrow$/);
    $address = $1 if (/^--mail=(.+)/);
}

$USER = $USER ||
    $ENV{'USERNAME'} || $ENV{'USER'} || $ENV{'LOGNAME'} || $address;

if ($^O =~ /win/i) {
    $schedule  = `$PERL -S $MSCAN2 --date=today`;
    $schedule2 = `$PERL -S $MSCAN2 --date=tomorrow` if ($tilltomorrow);
} else {
    $schedule  = `$MSCAN2 --date=today`;
    $schedule2 = `$MSCAN2 --date=tomorrow` if ($tilltomorrow);
}

exit(0) if (($schedule eq '') && ($schedule2 eq ''));

if ($address) {
    open(STDOUT, "| $IMPUT $address");
    select STDOUT; $| = 1;

    print "To: $address\n";
    print "From: secretary-of-$address\n";
    print "Subject: Today's schedule ($year-$mon-$day).\n";
    print "\n";
    print "${USER}'s schedule ($year-$mon-$day):\n\n";
}

print $schedule if ($schedule);

if ($schedule2) {
    ($schedule) ? print "\n" : print "Tomorrow ... :\n\n";
    print $schedule2;
}

close(STDOUT);

exit 0;