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


記事No: 11383
投稿日: 2013/02/09(Sat) 23:10:17
タイトルpostmail6.62 自動返信メール
ID情報: unicom
投稿者: 吉田幸二
URLhttp://fuku2call.net/

大変お世話になっています。
postmail ver.6.62を利用させていただいています。
自動返信メール機能で、tmplフォルダの中に返信用のtxtファイルを数種類用意して、入力フォームのラジオボタンの選択によって各々異なったメールを返信させたいと考えています。
例えば、ラジオボタンの選択が「A」の場合にreplyA.txtで返信、「B」の場合はreplyB.txt、「C」の場合はreplyC.txtというようにすることは可能でしょうか?
CGIはあまり詳しくありませんが、ご教示いただければ幸いです。
よろしくお願いします。


記事No: 11385
投稿日: 2013/02/10(Sun) 07:39:37
タイトルRe: postmail6.62 自動返信メール
ID情報: kudocgi
投稿者: KUDO CGI WORKS
URLhttp://www.kudocgiworks.net

入力フォームのラジオボタンを

<input type="radio" name="syubetsu" value="A" />
<input type="radio" name="syubetsu" value="B" />
<input type="radio" name="syubetsu" value="C" />

としました場合、

postmail.cgiの

# 自動返信ありのとき
my $resbody;
if ($cf{auto_res}) {

# テンプレ
open(IN,"$cf{tmpldir}/reply.txt") or &error("open err: reply.txt");
$resbody = join('', <IN>);
close(IN);

# 改行
$resbody =~ s/\r\n/\n/g;
$resbody =~ s/\r/\n/g;

# 変数変換
$resbody =~ s/!date!/$date1/g;
$resbody = $j->set(\$resbody,'sjis')->jis;
}

の部分を下記のように修正してください。


# 自動返信ありのとき
my $resbody;
if ($cf{auto_res}) {

my$tmpl_file;
if ( $in{syubetsu} eq "A" ) { $tmpl_file="replyA.txt"; }
elsif ( $in{syubetsu} eq "B" ) { $tmpl_file="replyB.txt"; }
elsif ( $in{syubetsu} eq "C" ) { $tmpl_file="replyC.txt"; }
else { $tmpl_file="reply.txt"; }

# テンプレ
open(IN,"$cf{tmpldir}/$tmpl_file") or &error("open err: $tmpl_file");
$resbody = join('', <IN>);
close(IN);

# 改行
$resbody =~ s/\r\n/\n/g;
$resbody =~ s/\r/\n/g;

# 変数変換
$resbody =~ s/!date!/$date1/g;
$resbody = $j->set(\$resbody,'sjis')->jis;
}


当方で動作確認はしておりませんので、うまく動作しない場合は
お知らせください。
どうぞよろしくお願いいたします。

┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏

┏━━━┓各種CGIスクリプト設置代行・カスタマイズ
┃\_/┃KUDO CGI WORKS
┗━━━┛
┏┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌
┏┌
┏┌ URL http://www.kudocgiworks.net
┏┌ E-mail info@kudocgiworks.net
┏┌
┏┌ 最新情報・お得情報・便利情報を発信中!!
┏┌ Facebook http://www.facebook.com/kudocgiworks
┏┌ ★★★facebookのアカウントをお持ちの方は
┏┌ ★★★是非『いいね』のクリックをお願いします!


記事No: 11387
投稿日: 2013/02/10(Sun) 21:42:49
タイトルRe^2: postmail6.62 自動返信メール
ID情報: unicom
投稿者: 吉田幸二
URLhttp://fuku2call.net

お世話になります。
早速のご教示、ありがとうございます。
ご指示通りに試したつもりですが、うまくいきません。

HTMLに入力項目を入力して「送信」ボタンを押すと通常であれば「確認画面」に移動するはずですが、下記のようなエラーメッセージが出ます。

Software error:
Global symbol "%in" requires explicit package name at postmail.cgi line 234, <DATA> line 855.
Global symbol "%in" requires explicit package name at postmail.cgi line 235, <DATA> line 855.
Global symbol "%in" requires explicit package name at postmail.cgi line 236, <DATA> line 855.
Execution of postmail.cgi aborted due to compilation errors.

line数は下記の通りです。<DATA>line855は、意味が良くわかりません。
line233 > my$tmpl_file;
line234 > if ( $in{syubetsu} eq "A" ) { $tmpl_file="replyA.txt"; }
line235 > elsif ( $in{syubetsu} eq "B" ) { $tmpl_file="replyB.txt"; }
line236 > elsif ( $in{syubetsu} eq "C" ) { $tmpl_file="replyC.txt"; }
line237 > else { $tmpl_file="reply.txt"; }

お気づきの点があれば、ご教示ください。
よろしくお願いします。


記事No: 11388
投稿日: 2013/02/10(Sun) 22:40:55
タイトルRe^2: postmail6.62 自動返信メール
ID情報: unicom
投稿者: 吉田幸二
URLhttp://fuku2call.net

お世話になります。
先ほどメールした問題は解決しました。
追加部分のところの「$in」を「$$in」に変更して返信メールが届くようになりました。
ところが、返信メールの本文が文字化けしていまして、これについてはもう少し調べて状況を把握してから質問いたします。

よろしくお願いします。


記事No: 11390
投稿日: 2013/02/11(Mon) 06:11:20
タイトルRe^3: postmail6.62 自動返信メール
ID情報: kudocgi
投稿者: KUDO CGI WORKS
URLhttp://www.kudocgiworks.net

「$in」ではなく「$$in」でしたね。
大変失礼いたしました。

返信メールのテンプレートの文字コードがシフトJIS以外になっていないでしょうか。
ご確認ください。
文字コードはシフトJISでお願いします。

┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏

┏━━━┓各種CGIスクリプト設置代行・カスタマイズ
┃\_/┃KUDO CGI WORKS
┗━━━┛
┏┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌
┏┌
┏┌ URL http://www.kudocgiworks.net
┏┌ E-mail info@kudocgiworks.net
┏┌
┏┌ 最新情報・お得情報・便利情報を発信中!!
┏┌ Facebook http://www.facebook.com/kudocgiworks
┏┌ ★★★facebookのアカウントをお持ちの方は
┏┌ ★★★是非『いいね』のクリックをお願いします!


記事No: 11391
投稿日: 2013/02/11(Mon) 10:00:56
タイトルRe^4: postmail6.62 自動返信メール
ID情報: unicom
投稿者: 吉田幸二
URLhttp://fuku2call.net

> 返信メールのテンプレートの文字コードがシフトJIS以外になっていないでしょうか。
> ご確認ください。
> 文字コードはシフトJISでお願いします。

報告し忘れていましたが、postmail(UTF-8版)を使用していましたので、いただいた修正部分の
> # 変数変換
> $resbody =~ s/!date!/$date1/g;
> $resbody = $j->set(\$resbody,'sjis')->jis;
> }
の「sjis」を「utf8」に戻して、文字化けは解消しました。

いろいろとありがとうございました。


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