記事No | : 12785 |
投稿日 | : 2014/03/26(Wed) 18:37:45 |
タイトル | : Postmailの連続番号記載方法 |
ID情報 | : merico |
投稿者 | : あずき |
URL | : http://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 |
URL | : http://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 |
投稿者 | : あずき |
URL | : http://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 |
URL | : http://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 |
投稿者 | : あずき |
URL | : http://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 |
URL | : http://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 |
投稿者 | : あずき |
URL | : http://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"; ## ←★追加
}
のように追加をする場所を間違えていたためでした。
何度もお手数をおかけして申し訳ありませんでした。
本当に有難うございました。