投稿日:2006年02月25日 作成鷹の巣

No.20231 postmail.cgiが受信すると1月1日になる



postmail.cgiが受信すると1月1日になる

No.20231 投稿時間:2006年02月25日(Sat) 16:02 投稿者名:USAGISOFT URL:

はじめまして。
よろしくおねがいします。
postmail.cgiなんですが
テスト・debugとも正常でした。
しかし、メーラー(outlookExpress)で受信すると2006/1/1の受信になってしまいます。
ソースではきちんと今日になっているのですが、
いったいなにが悪いのでしょうか?


メール本文内の日付でしょうか。

No.20232 投稿時間:2006年02月25日(Sat) 16:59 投稿者名:鷹の巣 URL:http://sakaguch.com/

> postmail.cgiなんですが
> テスト・debugとも正常でした。
> しかし、メーラー(outlookExpress)で受信すると2006/1/1の受信になってしまいます。

USAGISOFTさん。今日は。
1)OSとWebサーバーの種類を教えてください。
2)perlのバージョンとperlは、何をご使用ですか。(perl.exeまたはperlis.dll)
3)以下の設定部分がどのように変更されているのか教えてください。

# PostMail(フォームメール)改造版 2005.10.16 作成:鷹の巣
# 2005.11.05 Rev.1.100 オリジナル版v3.3のセキュリティ対策に伴う変更

#-------------------------------------------------
# ▼基本設定
#-------------------------------------------------

# メールソフトまでのパス
# → sendmailの例 :/usr/lib/sendmail (UNIXのsendmail)
# → BlatJの例 :c:\blatj\blatj.exe (Windowsのblatj.exe)
# → sendmaneの例 :c:\sendmane\sendmane.exe(Windowsのsendmane.exe)※鷹の巣が追加
# → Net::SMTPモジュールの例 :空白にすること。 ※鷹の巣が追加
my $mailprog = '';

# 送信元へ控え (CC) を送る
my $cc_mail = 1;

#-------------------------------------------------
# ▼追加設定 ※鷹の巣が追加
#-------------------------------------------------
# コマンドラインからの設定値チェックモード
my $cmd_data_check = 0;

# デバッグモード
$DEBUG = 1;

# セーフモード
$SAFE = 1;

# 送信に使用するSMTPサーバーの設定($mailprog = ''で、Net::SMTPモジュールを使用する場合のみ有効。)
my $mailserver = '127.0.0.1';

#-------------------------------------------------
# ▲設定完了
#-------------------------------------------------

> ソースではきちんと今日になっているのですが、

4)メール本文内の日付でしょうか。
それともメールヘッダ部分の日付でしょうか。(メールのプロパティで見て下さい。)


設定は。

No.20243 投稿時間:2006年02月26日(Sun) 05:10 投稿者名:USAGISOFT URL:

鷹の巣さま。お世話になります。
まずperlですがActivePerl-5.6.1.633-MSWin32です。
OSはWINDOWSXPSP1、WEBサーバーはBlackJumboDogです。
設定は
#-------------------------------------------------
# ▼基本設定
#-------------------------------------------------

# 文字コード変換ライブラリ
require './jcode.pl';

# MIMEエンコードライブラリを使う場合(推奨)
# → メールヘッダの全角文字をBASE64変換する機能
# → mimew.plを指定
my $mimew = './mimew.pl';

# メールソフトまでのパス
# → sendmailの例 :/usr/lib/sendmail (UNIXのsendmail)
# :c:\blatj\blatj.exe
# → sendmaneの例 :c:\sendmane\sendmane.exe(Windowsのsendmane.exe)※鷹の巣が追加
# → Net::SMTPモジュールの例 :空白にすること。 ※鷹の巣が追加
my $mailprog = '';

# 送信先メールアドレス
my $mailto = 'usagisoft@usagisoft.net';

# 送信前確認
# 0 : no
# 1 : yes
my $preview = 1;

# メールタイトル
my $subject = 'サンプル注文メール';

# 本体プログラムURL
my $script = './postmail.cgi';

# 確認画面テンプレート
my $tmp_conf = './tmp_conf.html';

# 一般エラー画面テンプレート
my $tmp_err1 = './tmp_err1.html';

# 入力エラー画面テンプレート
my $tmp_err2 = './tmp_err2.html';

# 送信後画面テンプレート
my $tmp_thx = './tmp_thx.html';

# 送信後の形態
# 0 : 完了メッセージを出す.
# 1 : 戻り先 ($back) へ自動ジャンプさせる.
my $reload = 0;

# 送信後の戻り先
# → http://から記述する
my $back = 'http://usagisoft.net/saviz/';

# 送信は method=POST 限定 (0=no 1=yes)
# → セキュリティ対策
my $postonly = 1;

# アラーム色
my $alm_col = "#dd0000";

# ホスト取得方法
# 0 : gethostbyaddr関数を使わない
# 1 : gethostbyaddr関数を使う
my $gethostbyaddr = 0;

# 送信元へ控え (CC) を送る
# 0=no 1=yes
# *セキュリティ上この機能は推奨しません.
# *name="email" のフィールドへの入力が必須となります.
# 鷹の巣が改造しています。0にする場合は、postmail.htmlの
# 「控えを送る(送信元へ写しを送信)」行を削除して下さい。
my $cc_mail = 1;

#-------------------------------------------------
# ▼追加設定 ※鷹の巣が追加
#-------------------------------------------------
# コマンドラインからの設定値チェックモード
# 最初のコマンドラインからの設定値チェック時のみ「1」とし、通常は、「0」にすること!!!
my $cmd_data_check = 0;

# デバッグモード
# 最初の動作試験時のみ「1」とし、運用直前にセキュリティ上「0」にすること!!!
# デバッグモードでは、Webサーバーから、簡易チェック
# http://~~/postmail.cgi?mode=check
# が行えます。また、エラー表示には行番号が表示されます。
$DEBUG = 0;

# セーフモード
# セーフモードは、Net::SMTPモジュールを使用する時以外で有効となります。
# Perl.exeであっても、PerlIS.dllと同じ動作になります。(送信時に一時ファイルを作成します。)
# 最初の動作試験時のみ「1」とし先ずは、確実にメールが送信できることを確認して下さい。
# 但し、UNIXのsendmailを使用する場合には、必ず「0」にして下さい。
#
# セーフモードの利点
# 1.メール本文が長い(大きい)場合にコマンドプロンプト画面のバッファサイズの影響を排除できる。
# (コマンドプロンプト画面のタイトルバーで右クリックして、プロパティのレイアウトタブにて、
# 画面のバッファサイズを幅80の高さ300以上にしておかなくても良い。)
# 2.SMTPサーバーへの応答が多少速くなり、タイムアウトしにくくなる。
# セーフモードの欠点(普通の用途では、あまり欠点は表面化しないと思います)
# 1.一時ファイルの作成と消去を行うので、メール送信頻度が多い場合、ディスクの断片化が生じる。
# 2.速度の遅いディスクの場合に処理速度が多少低下する。
#
# Perl.exeの場合、送信成功確認後に「0」にすると、多少動作速度が速くなる場合があります。
# → UNIXのsendmail :$SAFE = 0(必ず「0」にすること)
# → WindowsのBlatJ :$SAFE = 1(Perl.exeの場合、「0」にしても良い)
# → Windowsのsendmane :$SAFE = 1(Perl.exeの場合、「0」にしても良い)
# → Net::SMTPモジュール:$SAFE = 無効。
$SAFE = 1;

# メール本文内のタイトル
my $title = 'サンプル注文メール';

# フォームメール入力ページ名
my $postmail_html = './postmail.html';

# 送信に使用するSMTPサーバーの設定($mailprog = ''で、Net::SMTPモジュールを使用する場合のみ有効。)
# SMTPサーバー名(自宅SMTPサーバーの場合はLAN内のブライベートアドレスや127.0.0.1でも可)
my $mailserver = 'usagisoft.net'; # 接続プロバイダのSMTPサーバーのホスト名
# my $mailserver = '192.0.34.166'; # 接続プロバイダのSMTPサーバーのグローバルIPアドレス
# my $mailserver = '192.168.0.2'; # SMTPサーバーのLAN内のブライベートIPアドレス
# my $mailserver = '127.0.0.1'; # 自己診断用IPアドレスで自宅SMTPサーバーがWebサーバーと同居
my $mailserver = '127.0.0.1';

#-------------------------------------------------
# ▲設定完了
#-------------------------------------------------
です。
BLATJをしようしています。
よろしくご教授ください。


ヘッダはきちんと今日の日付になっています。

No.20244 投稿時間:2006年02月26日(Sun) 05:27 投稿者名:USAGISOFT URL:


> 4)メール本文内の日付でしょうか。
> それともメールヘッダ部分の日付でしょうか。(メールのプロパティで見て下さい。)

ヘッダはきちんと今日の日付になっています。
メーラーがおかしいのでしょうか?


メールヘッダとメール本文内の日付が正しければ。

No.20248 投稿時間:2006年02月26日(Sun) 12:18 投稿者名:鷹の巣 URL:

> > > 4)メール本文内の日付でしょうか。


> > それともメールヘッダ部分の日付でしょうか。(メールのプロパティで見て下さい。)
> > ヘッダはきちんと今日の日付になっています。

メールヘッダ部分の日付が
Date: Sat, 26 Feb 2006 12:34:56 +0900
という様になっていて、メール本文(内容)の日付が正しければ、
WebサーバーとCGIとSMTPサーバーには問題がなく、

> メーラーがおかしいのでしょうか?

メーラーがおかしいということになります。


メーラーを変えると今度は日付が1970年1月1日になります。

No.20256 投稿時間:2006年02月28日(Tue) 02:46 投稿者名:USAGISOFT URL:

> > > > 4)メール本文内の日付でしょうか。
>
>
> > > それともメールヘッダ部分の日付でしょうか。(メールのプロパティで見て下さい。)
> > > ヘッダはきちんと今日の日付になっています。
>
> メールヘッダ部分の日付が
> Date: Sat, 26 Feb 2006 12:34:56 +0900
> という様になっていて、メール本文(内容)の日付が正しければ、
> WebサーバーとCGIとSMTPサーバーには問題がなく、
>
> > メーラーがおかしいのでしょうか?
>
> メーラーがおかしいということになります。
メーラーを変えると今度は日付が1970年1月1日になります。
どこがおかしいかメールで送ってもよろしいでしょうか?


目次掲示板過去ログ目次▲頁先頭