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


記事No: 16256
投稿日: 2020/03/21(Sat) 18:55:09
タイトルCaptchaMail メッセージ本に前ページの項目を含める
ID情報: hiropii
投稿者: hiropii
URLhttp://www.kyobi-h.net/KH_test/real-estate/kitano-kashiya/index.html

CaptchaMail を便利に使わせていただいています。
私のホームページには、種類の違う商品ページのようなものが幾つかありまして、各ページにそれぞれお問合せフォームを置いています。
各ページから問合せが来たりするのですが、
受け取ったメールがどのページから寄せられたものかわからないため、送信内容欄に項目を設けて何についてかを書いて頂くように対処しています。
もしメールの表題にどこのページから送られてきたものかを表示させられたら便利だと思うのですが、何か手立てがありますでしょうか?
ご教授頂けましたら幸いです。


記事No: 16259
投稿日: 2020/03/23(Mon) 13:09:15
タイトルRe: CaptchaMail メッセージ本に前ページの項目
ID情報: hirayama
投稿者: hirayama
URLhttps://shade-search.com/sts/term/term.php

メールのタイトルに入れたい項目がたとえば「_物件名」だとしたら、
captmail.cgiのsub send_mail内 373ページぐらいの

my $sub_me = $$in{subject} ne '' && defined($cf{multi_sub}->{$$in{subject}}) ? $cf{multi_sub}->{$$in{subject}} : $cf{subject};
$sub_me = $j->set($sub_me,$cf{kcode})->mime_encode;



my $sub_me = $$in{subject} ne '' && defined($cf{multi_sub}->{$$in{subject}}) ? $cf{multi_sub}->{$$in{subject}} : $cf{subject};
$sub_me .= '(' . $$in{'_物件名'} . ')';
$sub_me = $j->set($sub_me,$cf{kcode})->mime_encode;

のように変更すれば、メールのタイトルに追加できると思います。


記事No: 16264
投稿日: 2020/03/26(Thu) 09:40:31
タイトルRe^2: CaptchaMail メッセージ本に前ページの項目
ID情報: hiropii
投稿者: hiropii
URLhttp://www.kyobi-h.net/KH_test/real-estate/kitano-kashiya/index.html

hirayama様
早くのご教授をありがとうございました。

ご指導のように組み込んで見ましたが、上手く動作をさせられませんでした。
また、お尋ねさせて頂く際の私の説明が不十分であったように思いますので、もう一度ご教授頂きたいことをお伝えします。

ホームページの物件ページをご覧になったお客様がお問い合わせフォームをクリックして、
遷移したフォーム画面の一番上の欄に物件ページの_物件名(物件ページに_物件名の記載が要るのでしょうか?)が自動で入力されているように出来れば、
何について問い合わせをしたかお客様自身も見れてご安心されます。
そして、その上でこちらに送信されてくるお問い合わせ内容メール本文に_物件名が記載されて来て事足りますが、表題にも入ると、より便利に使えると思います。
表題の方は出来なくても、前半の部分は是非とも実現したいことです。
このような希望でした。

また、お時間のあられる時に
再度のご教授をお待ちしています。


記事No: 16265
投稿日: 2020/03/26(Thu) 11:10:05
タイトルRe^3: CaptchaMail メッセージ本に前ページの
ID情報: hirayama
投稿者: hirayama
URLhttps://shade-search.com/sts/term/term.php

各ページからというのがどういうページなのか確認できなかったのですが、
「入力フォームを開く」という名前のリンクを押すと、「物件のお問い合わせ」というフォームが開きますが、このフォームの物件名入力欄に物件名を自動入力したいということですか。
そうすると、まず各ページにある「入力フォームを開く」という名前のリンクに物件名を入れておくのが前提となります。
各ページというのがどのようなページなのかわかりませんが、htmlで直接表示しているならGET送信すると、おそらく日本語だと思われる物件名が文字化けするおそれがあるので、
POST送信するフォーム形式にしておいた方がいいと思います。

その上でcaptmail.cgiで読み込んだ./tmpl/form.html内の物件ページのテキストフィールドのvalue=""内部分を、送られてきたデータに置き換える処理を
sub load_formに追記すればいいと思います。


記事No: 16269
投稿日: 2020/03/26(Thu) 19:27:34
タイトルRe^4: CaptchaMail メッセージ本に前ページの
ID情報: hiropii
投稿者: hiropii
URLhttp://www.kyobi-h.net/KH_test/real-estate/kitano-kashiya/index.html

大変お手数をお掛けしてすみません。

各ページというのは、今回の例ですと「北野貸家 8.0万円 / 3LDK」とお伝えすべきでした。
そして望んでいた動作は、ご指摘いただいた通り、
北野貸家 8.0万円 / 3LDKがフォームの上の欄に入っているということです。


「入力フォームを開く」のところにどのようなコードを書けば宜しいでしょうか?
ネットでGETとかPOSTとか書かれているサンプルコードを見て考えたのですが、
送る方は
<form method="POST" /> 
<input type="submit" name="submit_name" value="北野貸家 8.0万円 / 3LDK"/>
< /form>これではおかしいですか?


受け取る方は全く思いつきません。

仰ってくださっている手順はなんとなく解るような感じはありますが、
コーディングの基本も解らないので、もっと勉強しなくてはと思います。


記事No: 16270
投稿日: 2020/03/26(Thu) 23:25:01
タイトルRe^5: CaptchaMail メッセージ本に前ページの
ID情報: hirayama
投稿者: hirayama
URLhttps://shade-search.com/sts/term/term.php

><form method="POST" /> 
><input type="submit" name="submit_name" value="北野貸家 8.0万円 / 3LDK"/>
>< /form>これではおかしいですか?

formタグにはcaptmail.cgiへのURLが必要です。
投稿ボタンのvalueに物件名を入れるとそれがボタンに表示されてしまうので、hiddenで送ったほうがいいでしょう。
formの閉じタグは/前の空白は外して以下のような感じになると思います。

<form action="captmail.cgiへのURL" method="POST" /> 
<input type="hidden" name="submit_name" value="北野貸家 8.0万円 / 3LDK"/>
<input type="submit" value="入力フォームを開く">
</form>

フォームのテンプレート ./tmpl/form.htmlの物件名のinputタグは以下のような感じにします。
<input type="text" name="_物件名" value="!submit_name!" />

captmail.cgiがform.htmlの内容を読み込んでから表示するので、
captmail.cgiのsub load_form内、123行目辺り
# 文字変換
$tmpl =~ s/!str_crypt!/$str_crypt/g;
$tmpl =~ s/!([a-z]+_cgi)!/$cf{$1}/g;
の下あたりに

$tmpl =~ s/!submit_name!/$$in{'submit_name'}/g;

を追加します。

入力された物件名をメールのタイトルに入れるのは先に書いた方法で行けると思います。


記事No: 16271
投稿日: 2020/03/27(Fri) 11:33:22
タイトルRe^6: CaptchaMail メッセージ本に前ページの
ID情報: hiropii
投稿者: hiropii
URLhttp://www.kyobi-h.net/KH_test/real-estate/kitano-kashiya/index.html

ご指導をありがとうございます。
知識がない者へも解説入りの解りやすいご案内で勉強になります。

早速各所へ作成していただいたコードを入れてみたのですが、
capmail,cgiからエラーが返ってきます。
内容は「画像認証が入力不備です。 投稿フォームに戻って再入力してください」です。
前画面に戻るボタンをクリックすると物件ページへと戻り、入力フォームへは戻りません。
このページソースに(<input type="button" value="&lt; 前画面に戻る" onclick="history.back()" />が記述されていましたので、当然の動作でした。)


ご指示いただいたとおりにしているつもりですが、コードを貼り付けた近辺を下に示します。
宜しければご指摘をお願いいたします。

まず(件ページindex.htmlには
取りあえず前の記述も残したまま以下のようにしました。
<script type="text/javascript">
function sendQuery( query ){location.href = "../../webform/captmail-utf/bukken-captmail.cgi?"+escape( query );
}
</script>
</div>

<div class="bukken-name">この物件名は【<span>北野ゲンストハウス跡貸家</span>】です。 入力フォームに物件名を入れてください。</div>
</div>

<form action="../../webform/captmail-utf/bukken-captmail.cgi" method="POST" /> 
<input type="hidden" name="submit_name" value="北野貸家 8.0万円 / 3LDK"/>
<input type="submit" value="入力フォームを開く">
</form>


bukken-form.htmlには
<!--▽table-物件条件--><a name="bukken"></a>
<input type="text" name="_件名" value="!submit_name!" />
<div class="box_out">
<table class="form2 m20-b">
<caption><span class="red">
物件名 </span>(物件ページのお問い合せタブ内に記載されています)
</caption>
<tbody>
<tr>
<td class="bukkenmei"><input type="text" name="_物件名" class="help" title="例> JR円町北 エディオン西 / 3880万円" /></td>
</tr>
</tbody>
</table>
</div>
<!--△table-物件条件-->
※上コードの2行目にご指示いただいた "_物件名"ではなく "_件名"にしたのは
入力必須項目で既に"_物件名"を使ってしまっていたため、重複を避けるため変えてみました。


bukken-captmail.cgiには
#-----------------------------------------------------------
# フォーム表示
#-----------------------------------------------------------
sub load_form {
# 画像認証作成
require $cf{captcha_pl};
my ($str_plain,$str_crypt) = cap::make($cf{captcha_key},$cf{cap_len});

# テンプレ読み込み
open(IN,"$cf{tmpldir}/bukken-form.html") or error("open err: bukken-form.html");
my $tmpl = join('', <IN>);
close(IN);

# 文字変換
$tmpl =~ s/!str_crypt!/$str_crypt/g;
$tmpl =~ s/!([a-z]+_cgi)!/$cf{$1}/g;
$tmpl =~ s/!submit_name!/$$in{'submit_name'}/g;
# フォーム表記
print "Content-type: text/html; charset=$cf{charset}\n\n";
print footer($tmpl);
exit;
}

少し飛んで
# MIMEエンコード
my $sub_me = $$in{subject} ne '' && defined($cf{multi_sub}->{$$in{subject}}) ? $cf{multi_sub}->{$$in{subject}} : $cf{subject};
$sub_me .= '(' . $$in{'_件名'} . ')';
$sub_me = $j->set($sub_me,$cf{kcode})->mime_encode;
my $from;
if ($$in{name}) {
$$in{name} =~ s/[\r\n]//g;
$from = $j->set("\"$$in{name}\" <$email>",$cf{kcode})->mime_encode;
} else {
$from = $email;
}


以上のように書き足しています。
どの辺りが間違っていますでしょうか?
何度も質問ばかりですみません。
よろしくお願いいたします。


記事No: 16272
投稿日: 2020/03/27(Fri) 13:15:06
タイトルRe^7: CaptchaMail メッセージ本に前ページの
ID情報: hirayama
投稿者: hirayama
URLhttps://shade-search.com/sts/term/term.php

>capmail,cgiからエラーが返ってきます。
>内容は「画像認証が入力不備です。 投稿フォームに戻って再入力してください」です。

1件でもパラメータを送るとフォーム表示画面ではなく、プレビュー画面に
飛んでしまうようですね。
captmail.cgiの31行目あたり

# フォーム表記
load_form() if (@$key == 0);



# フォーム表記
load_form() if (@$key == 0 || $$in{'submit_name'});

のように変更してみてください。


記事No: 16276
投稿日: 2020/03/28(Sat) 11:37:50
タイトルRe^8: CaptchaMail メッセージ本に前ページの
ID情報: hiropii
投稿者: hiropii
URLhttp://www.kyobi-h.net/KH_test/real-estate/kitano-kashiya/index.html

hirayama様

ご教授をありがとうございました。
ご指摘の場所の記述を変えた結果、
お客様と管理者向けの返信メール本文に
件名 = 北野貸家 8.0万円 / 3LDKが入って送られてきました。
ユーザビリティが良くなり感動しました。
ありがとうございました。

メール(表題)件名の部分は上手く動作しませんでしたので、
もう一度ご指導いただいたところを見直してみたいと思います。
この部分は あわよくば の程度でありますので、
出来なくても構いません。

この度は貴重な時間を割いて、ご対応くださり
ありがとうございました。
この記事をお役に立てていただける方々と共に感謝いたします。


記事No: 16277
投稿日: 2020/03/29(Sun) 13:39:03
タイトルRe^9: CaptchaMail メッセージ本に前ページの
ID情報: hiropii
投稿者: hiropii
URLhiropii

hirayama様

昨日質問を閉じさせていただいたところでしたが、
結局返信メールタイトルはどうしても、init.cgi に設定されているタイトルが送られてきてしまいます。

現在設定している init.cgi の124行目から128行目は
# メールタイトル
$cf{subject} = '物件のお問い合わせ';
# 返信向けメールタイトル
$cf{sub_reply} = 'お問い合わせありがとうございます';

ですが、これを

captmail.cgi に追記ご指示いただいた

$sub_me .= '(' . $$in{'_物件名'} . ')';
を編集して書き換えるということでは対処できないでしょうか?
因みに  '物件のお問い合わせ'を'  . $$in{'_物件名'} . ' としましたら、エラーになりました。


復活してすみません。
お手間が掛かるようでしたら諦めます。


記事No: 16278
投稿日: 2020/03/29(Sun) 13:40:12
タイトルRe^10: CaptchaMail メッセージ本に前ページの
ID情報: hiropii
投稿者: hiropii
URLhttp://www.kyobi-h.net/KH_test/real-estate/kitano-kashiya/index.html

> hirayama様
>
> 昨日質問を閉じさせていただいたところでしたが、
> 結局返信メールタイトルはどうしても、init.cgi に設定されているタイトルが送られてきてしまいます。
>
> 現在設定している init.cgi の124行目から128行目は
> # メールタイトル
> $cf{subject} = '物件のお問い合わせ';
> # 返信向けメールタイトル
> $cf{sub_reply} = 'お問い合わせありがとうございます';
>
> ですが、これを
>
> captmail.cgi に追記ご指示いただいた
>
> $sub_me .= '(' . $$in{'_物件名'} . ')';
> を編集して書き換えるということでは対処できないでしょうか?
> 因みに  '物件のお問い合わせ'を'  . $$in{'_物件名'} . ' としましたら、エラーになりました。
>
>
> 復活してすみません。
> お手間が掛かるようでしたら諦めます。


記事No: 16279
投稿日: 2020/03/29(Sun) 13:42:58
タイトルRe^9: CaptchaMail メッセージ本に前ページの
ID情報: hiropii
投稿者: hiropii
URLhttp://www.kyobi-h.net/KH_test/real-estate/kitano-kashiya/index.html

hirayama様

昨日質問を閉じさせていただいたところでしたが、
結局返信メールタイトルはどうしても、init.cgi に設定されているタイトルが送られてきてしまいます。

現在設定している init.cgi の124行目から128行目は
# メールタイトル
$cf{subject} = '物件のお問い合わせ';
# 返信向けメールタイトル
$cf{sub_reply} = 'お問い合わせありがとうございます';

ですが、これを

captmail.cgi に追記ご指示いただいた

$sub_me .= '(' . $$in{'_物件名'} . ')';
を編集して書き換えるということでは対処できないでしょうか?
因みに  '物件のお問い合わせ'を'  . $$in{'_物件名'} . ' としましたら、エラーになりました。


復活してすみません。
お手間が掛かるようでしたら諦めます。


記事No: 16280
投稿日: 2020/03/29(Sun) 19:59:06
タイトルRe^10: CaptchaMail メッセージ本に前ページ
ID情報: hirayama
投稿者: hirayama
URLhttps://shade-search.com/sts/term/term.php

ローカル環境でテストしてみると、
プレビューの段階で「_物件名」が「物件名」に変わってしまうようです。
なので
$sub_me .= '(' . $$in{'_物件名'} . ')';

$sub_me .= '(' . $$in{'物件名'} . ')';
と変更してみてください。


記事No: 16281
投稿日: 2020/03/29(Sun) 21:05:45
タイトルRe^11: CaptchaMail メッセージ本に前ページ
ID情報: hiropii
投稿者: hiropii
URLhttp://www.kyobi-h.net/KH_test/real-estate/kitano-kashiya/index.html

hirayama様


出来ました。
メールタイトルに ((北野貸家 8.0万円 / 3LDK)と記述されて届きました。
感動です。

これで問題がすべて解決し、終了できました。


お休みにもかかわらず、素人相手に
本当に何度何度も ありがとうございました。


[検索ページ]