[PHP-users 28511] Win環境でのメールの送信時刻のエラーについて

ファルコン 稲田 inada.tomonori @ kk-falcon.jp
2006年 2月 21日 (火) 10:20:14 JST


 はじめまして。
 Win環境のPHPから送信したメールの送信時刻が正しくない点について、ご教授ください。

 環境、症状などを以下に示します。

使用環境:
 OS:Windows2K
 WebServer:Apache2.0.54
 PHP:4.3.11→4.4.2(Win32用バイナリをダウンロード)
 ブラウザ:InternetExplorer6
 メールクライアント:OutlookExpress6

エラー内容:
 上記の環境で動作しているPHPで社内LANにWEBのプログラムを公開しています。
 また、PHPはWEBからの指示で外部のレンタルサーバに向けてメールの送信を行います。 

 このとき、PHPで外部メールサーバに送られるメールのヘッダが次のような内容になっています。
(始まり)----------------------
Return-Path: <a @ xxx.yyy>
Delivered-To: b @ zzz.zzz
Received: xxxxxxxxx ; 21 Feb 2006 00:18:05 -0000
Received: xxxxxxxxx ; 21 Feb 2006 00:18:05 -0000
Received: xxxxxxxxx ; Tue, 21 Feb 2006 03:11:29 +0900
Received: xxxxxxxxx ; Tue, 21 Feb 2006 09:17:59 +0900
Date: Tue, 21 Feb 2006 09:17:56 ク0900
Subject: subject
To: b @ zzz.zzz
From: a @ xxx.yyy
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
(終わり)----------------------
 これをメールクライアントで受けると18:17:56と+9時間に認識されてしまいます。
 送信時刻の9:17:56はサーバの時間(ローカル時間として)と合致しており、"ク0900"の
部分が正しくありません。
 Date:以下の行はPHPが生成しているようで、サーバ上で別のプログラムを使用してメールを送るとDate:の行は生成されず、時刻もずれません。

エラーの発生条件、再現性:
 環境変数に"TZ=JST-9"を設定すると、PHPの認識する時間がサーバのそのままの時間か、GMTに変換された時間かが変わりますが、メールでは同様に送信時間がずれる状況にあります。
 発生時期が定かではないのですが、4.3.11から4.4.2に変更した時期とほぼ一致していると思われます。

 Date:行の内容を正しくする、もしくは生成されないようにするにはどのようにすればよいのでしょうか。
 上記内容について、メーリングリストやインターネットを検索しましたが、適当な情報を見つけられませんでした。
 稚拙な質問かもしれませんが、ご教授下さいますようお願いいたします。


稲田 智範



PHP-users メーリングリストの案内