海外サーバーでwwwmailを使用するには?

[上に] [前に] [次に]
たっくん [E-Mail] 2000/02/15(火) 04:47:36
送信日時が9時間ずれてしまうのですが、
どうすればよいのでしょう(T_T)
$ENV{'TZ'} = "JST-9";というのを
wwwmail.cgiのどこかにいれればよいのですか?

ラウォッチ 2000/02/15(火) 12:02:15
wwwmail.cgiで送信日時の処理はないみたい。

送信日時って、SMTPの Date:ことかなぁ。
これだったら、海外サーバーなので、たっくんさんだけ日本時間にするのは無理かも!?

2000/02/15(火) 12:52:16
CGIのプロセスとsendmailのプロセスが別ですから無理です。

B-Cus 2000/02/15(火) 14:56:44
> $ENV{'TZ'} = "JST-9";というのを
でできないっけ?

> CGIのプロセスとsendmailのプロセスが別ですから無理です。
環境変数は子プロセスに伝わるから。

上記のやり方でできると思うけど、もしだめなら
> $mailhead  = "To: $mailto\n";
の後に JST に直した Date ヘッダ
 $mailhead .= "Date: .... JST\n";
を追加すればいいでしょう。

2000/02/15(火) 15:42:27
>環境変数は子プロセスに伝わるから。

そうでした!できるはずですね。

ラウォッチ 2000/02/15(火) 16:00:42
確かに、ロジックで出力した Date: ヘッダのほうが優先されました。
したがって、wwwmail.cgiのロジックに

$ENV{'TZ'} = "JST-9";
($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime(time);
@week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
@mname = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
$date = sprintf("%s, %d %s %04d %02d:%02d:%02d +0900 (JST)",
                $week[$wday],$mday,$mname[$mon-1],$year+1900,$hour,$min,$sec);

を追加して、B-Cusさんの
> $mailhead .= "Date: .... JST\n";

$mailhead .= "Date: $date";
にすれば、たぶんいけるでしょう!

ラウォッチ 2000/02/15(火) 16:05:26
間違えた
$mailhead .= "Date: $date";

$mailhead .= "Date: $date\n";
です。

たっくん 2000/02/16(水) 01:25:29
[[解決]]
ラウォッチさんに書いて頂いたのをそのままコピー&ペーストしまして
無事解決致しました。
皆様ありがとうございました。\(^O^)/

B-Cus 2000/02/16(水) 01:53:13
> $mname[$mon-1]
一ヵ月ずれてます。

ラウォッチ 2000/02/16(水) 09:09:04
B-Cus さん、ご指摘、ありがとうございました。
即行で作って、テストはしたつもりだったんですが...。
以後、気をつけます。

たっくん 2000/02/16(水) 23:45:16
[[解決]]
おはずかしいです〜(^=^;)
ヘッダの所のDateが「GMT」から「+9JST」に変わったので喜んで使ってました(^。^;)A
B-Cusさん、ラウォッチさんありがとうございました。m(_ _)m

[上に] [前に] [次に]