![]() |
カレッヂ |
質問者 sekihisa
投稿日 2012/1/20(金) 10:33:20
皆様にはいつもお世話になっております。 今回はお客様から個別の質問にに対応するため HPの複数ある各ページにSSIでwebメーラーを設置しようと考えています。 その際、どのページから押されたか判別するため 押したページのタイトル<TITLE>○○</TITLE>の○○の部分を取得して メールの題名の部分に挿入したいと考えています。 webメーラーの改造して出来るものでしょうか お教えいただければ幸いです。 よろしくお願い致します。
【プロバイダ】sakura |
回答者 rescue
[削除]
投稿日 2012/1/27(金) 23:14:19
SSIではクエリーを取得できないため出来ないと思われます。 <iframe>を使って埋め込んでみてはどうでしょうか? |
質問者 sekihisa
[削除]
投稿日 2012/1/29(日) 15:20:37
早速のご教授ありがとう御座います。 ページ内に<iframe>を挿入しdocument.title取得を試みたのですが webメーラーのタイトルになってしまい、思うような結果にはなりませんでした。 $titleではまずかったでしょうか・・・ 当初考えていた件名にページタイトルを挿入する言う案ですが、 ページの中には長文タイトルもあり、 とりあえず本文枠内に$refを挿入し ボタンを押したページのURLの取得はできました。 |
回答者 rescue
[削除]
投稿日 2012/1/29(日) 19:00:12
ちょっと勘違いしていました。 あまりJavaScriptは詳しくないので、取得できるのかわかりませんが、 CGIで簡単に判別する方法は、フォームの中にデータを含めてしまうことです。 <input type=hidden name="どのページ?" value="あのページ"> というのをフォームに加えることで、画面には出ませんが、 入力内容として届きます。 |
質問者 sekihisa
[削除]
投稿日 2012/1/30(月) 15:08:07
twitterのツイートボタンを押すと ボタンを押したページのタイトル名とURLが引用されるので 何らか方法があるとおもいました。 とりあえず <input type="hidden" name="URL" value="あのページ"> という形でリンク元のURLを取得し判別することにしました。 もう少し考えてみます。 |
回答者 rescue
[削除]
投稿日 2012/1/30(月) 17:19:05
状況わかってきました。 適切な回答ではなかったようです。 まず、メールフォームではなく、WEBメーラー http://www.rescue.ne.jp/cgi/mailer/ ですね。 この場合、フォーム自体もCGI出力しているので、1フォーム1CGIの設置が必要なので、 CGIの初期設定に $title をそのままメールに書き出せばOKです。また、参照元は、 既に書き出しています(メールのヘッダ部分に)。これを、メール本文に書き出せばOKです。 mail.cgi 512行目付近 if (open(OUT,"| $sendmail -t")) { foreach (@MailValue) { print OUT $_; } #この4行 print OUT "\n\n"; print OUT "題名: $title\n"; ($ref,$ref2) = split(/\?/,$ref); print OUT "参照元: $ref\n"; close(OUT); } 上記の4行を指定の場所に挿入してください。 これで、なんという名前をつけたどのフォーム(CGI)からのメールか、 メール本文に書き足されます。 なお、通常のページ(HTML)でJavaScriptを使ってそのページの<title>タイトル</title>を 取得する方法は <script type="text/javascript"> <!-- document.write("タイトル:",document.title) //--> </script で出来ることがわかりました。ただ、今回のCGIの場合は必要ありません。 私もその都度興味があった動作を勉強しながらCGIを作っているので、 パっと回答が浮かびませんでした… ^^; |
質問者 sekihisa
[削除]
投稿日 2012/2/9(木) 15:26:50
連絡遅くなりました。 ご検討ありがとうございます。 いろいろテストしましたが 現在考えていた各ページに設置したリンクボタンを押すと 共通のwebメーラーが別ウインドウで立ち上がるwebメーラー設置方法では print OUT "題名: $title\n"; ($ref,$ref2) = split(/\?/,$ref); print OUT "参照元: $ref\n"; 上記の方法ですと webメーラー自体の設置場所URLとwebメーラーに設定したタイトルが取得されてしまい 思うような結果には至りませんでした。 mail.cgi 211行目に <input type="hidden" name="URL" value="$ref">で リンク元のURLが取得としました。 リンク元タイトル取得にはいたっておりませんが わかりましたらまた連絡いたします。 ありがとうございました。 |
このページは終了したので返信(回答)は書きこめません
Web裏技 |