KENT-WEB サポートコーナー 過去ログ [ 0361 ]


記事No: 12785
投稿日: 2014/03/26(Wed) 18:37:45
タイトルPostmailの連続番号記載方法
ID情報: merico
投稿者: あずき
URLhttp://www.help-sheltie.net/cgi/postmail/postmail.html

お世話になっております。
この度postmail v7.1を使わせていただきました。
これに連続番号を追加したいのですが、方法を教えていただけますでしょうか?
過去ログに同じ質問がありましたが、バージョンが4.1で何処に入れて良いのかがわかりませんでした。
よろしくお願いします。


記事No: 12789
投稿日: 2014/03/26(Wed) 21:44:38
タイトルRe: Postmailの連続番号記載方法
ID情報: hamel
投稿者: Hamel
URLhttp://drc3.news-site.net/script1/

> お世話になっております。
> この度postmail v7.1を使わせていただきました。
> これに連続番号を追加したいのですが、方法を教えていただけますでしょうか?
> 過去ログに同じ質問がありましたが、バージョンが4.1で何処に入れて良いのかがわかりませんでした。
> よろしくお願いします。

これでいかがでしょうか?{上記過去ログを参照しました}

init.cgi内142行目あたり
# テンプレートディレクトリ【サーバパス】
$cf{tmpldir} = './tmpl';
↑の下あたりに

# 受注番号ログファイル
$cf{numfile} = './data/no.dat';

↑を追加

dataフォルダに「no.dat」というファイルを創りUPする
パーミッションを「606 or 666」に設定


postmail.cgi内 187行目あたり
#------------------------
# 送信実行
#------------------------
sub send_mail {

中略

206行目あたり
# ブラウザ情報
my $agent = $ENV{HTTP_USER_AGENT};
$agent =~ s/[<>&"'()+;]//g;

↑の下に下記を追加

#▼ここから▼
my ($count,$count2,$dat);
open(IN,"$cf{numfile}");
$count = <IN>;
close(IN);
($count, $dat) = split(/:/, $count);
$count++;
while (length($count) < 3) { $count = '0' . $count; } ## 番号の前に0を表示しない場合はこの行は不要
$count2="$date3 $count";
#▲ここまで追加▲

243行目あたり
# テンプレ変数変換
$mail =~ s/!date!/$date1/g;
$mail =~ s/!count2!/NO.[$count2]/; ## ←★追加

265行目あたり
# 変数変換
$reply =~ s/!date!/$date1/g;
$reply =~ s/!count2!/$count2/; ## ←★追加

334行目あたり
# MIMEエンコード

中略

345行目あたり
my $subject="$sub_me:No.$count2"; ## ←★追加

# --- 送信内容フォーマット開始
# ヘッダー
my $body = "To: $cf{mailto}\n";
$body .= "From: $from\n";
$body .= "Subject: $subject\n"; ##←変更
$body .= "MIME-Version: 1.0\n";
省略


380行目あたり
# 本文送信
open(MAIL,"| $scmd") or error("メール送信失敗");
print MAIL "$body\n";
close(MAIL);

↑の下に下記を追加
#▼ここから▼
open(DAT,"+< $cf{numfile}") || &error("Open Error: $cf{numfile}");
eval 'flock(DAT, 2);';
seek(DAT, 0, 0);
print DAT "$count\:$date1";
truncate(DAT, tell(DAT));
close(DAT);
#▲ここまで追加▲



mail.txt内10行目あたり

-------------------------------
受付番号 : !count2! ##←追加
送信日時 : !date!



reply.txt内4行目あたり

【受付番号】##←追加
[No.!count2!] ##←追加

【送信日時】

以上です


記事No: 12790
投稿日: 2014/03/26(Wed) 22:14:16
タイトルRe^2: Postmailの連続番号記載方法
ID情報: merico
投稿者: あずき
URLhttp://www.help-sheltie.net/cgi/postmail/postmail.html

Hamel様
ご回答を有難うございました。
早速修正して試しましたところ、送信ボタンを押したら下記のようなメッセージが出てしまいました。
もう一度お願いします。

Global symbol "$date3" requires explicit package name at postmail.cgi line 218, <DATA> line 855.
Global symbol "$subject" requires explicit package name at postmail.cgi line 351, <DATA> line 855.
Execution of postmail.cgi aborted due to compilation errors.

For help, please send mail to the webmaster (admin@paperboy.co.jp), giving this error message and the time and date of the error.


記事No: 12791
投稿日: 2014/03/26(Wed) 23:25:06
タイトルRe^3: Postmailの連続番号記載方法
ID情報: hamel
投稿者: Hamel
URLhttp://drc3.news-site.net/script1/

> Hamel様
> ご回答を有難うございました。
> 早速修正して試しましたところ、送信ボタンを押したら下記のようなメッセージが出てしまいました。
> もう一度お願いします。
>
> Global symbol "$date3" requires explicit package name at postmail.cgi line 218, <DATA> line 855.
> Global symbol "$subject" requires explicit package name at postmail.cgi line 351, <DATA> line 855.
> Execution of postmail.cgi aborted due to compilation errors.
>
> For help, please send mail to the webmaster (admin@paperboy.co.jp), giving this error message and the time and date of the error.

失礼しました、下記を忘れました。
203行目あたり
# 時間取得
my ($date1,$date2,$date3) = get_time();1 ##変更

345行目あたり
my $subject="$sub_me:No.$count2"; ## ←★追加
↑を追加してもエラーになりますか?


記事No: 12792
投稿日: 2014/03/27(Thu) 00:14:17
タイトルRe^4: Postmailの連続番号記載方法
ID情報: merico
投稿者: あずき
URLhttp://www.help-sheltie.net/cgi/postmail/postmail.html

Hamel様

有難うございます。
試しましたところ、先程とは違う下記のようなエラーが出ました。
またよろしくお願いします。

Software error:

syntax error at postmail.cgi line 207, near "my "
Global symbol "$agent" requires explicit package name at postmail.cgi line 207, <DATA> line 855.
Global symbol "$agent" requires explicit package name at postmail.cgi line 208, <DATA> line 855.
Global symbol "$date3" requires explicit package name at postmail.cgi line 218, <DATA> line 855.
Global symbol "$date1" requires explicit package name at postmail.cgi line 245, <DATA> line 855.
Global symbol "$agent" requires explicit package name at postmail.cgi line 247, <DATA> line 855.
Global symbol "$date1" requires explicit package name at postmail.cgi line 267, <DATA> line 855.
Global symbol "$date2" requires explicit package name at postmail.cgi line 353, <DATA> line 855.
Global symbol "$date2" requires explicit package name at postmail.cgi line 372, <DATA> line 855.
Global symbol "$date1" requires explicit package name at postmail.cgi line 388, <DATA> line 855.
syntax error at postmail.cgi line 422, near "}"
postmail.cgi has too many errors.

For help, please send mail to the webmaster (admin@paperboy.co.jp), giving this error message and the time and date of the error.


記事No: 12793
投稿日: 2014/03/27(Thu) 00:30:28
タイトルRe^5: Postmailの連続番号記載方法
ID情報: hamel
投稿者: Hamel
URLhttp://drc3.news-site.net/script1/

> Hamel様
>
> 有難うございます。
> 試しましたところ、先程とは違う下記のようなエラーが出ました。
> またよろしくお願いします。
>
> Software error:
>
> syntax error at postmail.cgi line 207, near "my "
> Global symbol "$agent" requires explicit package name at postmail.cgi line 207, <DATA> line 855.
> Global symbol "$agent" requires explicit package name at postmail.cgi line 208, <DATA> line 855.
> Global symbol "$date3" requires explicit package name at postmail.cgi line 218, <DATA> line 855.
> Global symbol "$date1" requires explicit package name at postmail.cgi line 245, <DATA> line 855.
> Global symbol "$agent" requires explicit package name at postmail.cgi line 247, <DATA> line 855.
> Global symbol "$date1" requires explicit package name at postmail.cgi line 267, <DATA> line 855.
> Global symbol "$date2" requires explicit package name at postmail.cgi line 353, <DATA> line 855.
> Global symbol "$date2" requires explicit package name at postmail.cgi line 372, <DATA> line 855.
> Global symbol "$date1" requires explicit package name at postmail.cgi line 388, <DATA> line 855.
> syntax error at postmail.cgi line 422, near "}"
> postmail.cgi has too many errors.
>
> For help, please send mail to the webmaster (admin@paperboy.co.jp), giving this error message and the time and date of the error.

私の環境で試してもエラーにはなりません
203行目に
# 時間取得
my ($date1,$date2) = get_time();

↑のような所がありますが、それを↓のようにしてください

# 時間取得
my ($date1,$date2,$date3) = get_time();

「$date3」を追加するだけです。


記事No: 12794
投稿日: 2014/03/27(Thu) 02:52:17
タイトルRe^6: Postmailの連続番号記載方法
ID情報: merico
投稿者: あずき
URLhttp://www.help-sheltie.net/cgi/postmail/postmail.html

Hamel様

有難うございました。
無事連続番号を記載する事ができました。
原因ですが

# MIMEエンコード
省略
$from = $email;
}
my $subject="$sub_me:No.$count2"; ## ←★追加

# MIMEエンコード
省略
$from = $email;
my $subject="$sub_me:No.$count2"; ## ←★追加
}
のように追加をする場所を間違えていたためでした。
何度もお手数をおかけして申し訳ありませんでした。
本当に有難うございました。


[検索ページ] [掲示板]