• 締切済み

既存のページに組み込まれたCGIプログラムをカスタムしています。

既存のページに組み込まれたCGIプログラムをカスタムしています。 組み込まれているページでは、ある企業の資料請求フォーム(30~40の製品ごとのチェックボックスがあり、その他メールアドレスと備考欄のようなテキストボックスがあります。)と、普通のメールフォーム(メールアドレスと問い合わせ内容を記入できる。)の2つのフォームがあり、同じCGIプログラムで動かしていますが、そのプログラム上では、送信内容の控え、申し込み確認のメールが記入者に送れず、そこを改善するのが目的です。 いろいろなフリーのCGIを見てみましたが、まだそこまで高機能なものを必要としない、初めてCGIを触る初心者のため、高機能なものは徐々に学んでからと思っています。 そこで素人ながらに思ったのが、既存のCGIへの追記です。 したいことは、今までフォームを入力すると指定先(企業)へ送信されますが、 記入者の記入したメールアドレスが、送信先となり、BCCで企業へ送られるようにできればいいなと思っています。 使われているCGIのメール送信にかかわる場所はココになると思います。 print MAIL "To: $mailto\n";の箇所が入力されたアドレスになり、BCCで企業宛てのメールアドレスを設定する項目を増やせばいいのかな?と思っていますが、どうやって入力されたメールアドレスを反映させるのか?、どうやってBCCを足すのか?(print MAIL "Bcc: 企業のメールアドレス\n";)などわからないなりに試してみましたが何をしてもうまくいかないです。どなたかご教授いただければと思います。 よろしくお願いいたします。 open(MAIL,"| $sendmail -t -i"); print MAIL "To: $mailto\n"; print MAIL "From: $mailto\n"; print MAIL "Subject: FormMail\n"; print MAIL "MIME-Version: 1.0\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n\n"; print MAIL "$mailbody\n"; close(MAIL);

  • CGI
  • 回答数1
  • ありがとう数3

みんなの回答

  • luka3
  • ベストアンサー率74% (305/408)
回答No.1

sendmailに-tオプションがついていますので、おっしゃるとおり print MAIL "Bcc: 企業のメールアドレス\n"; をToの次の行あたりに追加すればいいはずです。 これが何をしてもうまくいかないというのであれば、メール送信で使われているCGIがこれではない、という気がします。 まず他に影響が出ないFromやSubjectの内容を変更してみて反映されるか確認してみてください。 また、記入者に返すメールはまったく同じものを返すより、「メールを受け付けました」という別の形式にした方がいいんじゃないでしょうか。 いずれにせよCGIやHTMLの知識ですので検索を利用したり本を買うなど色々調べてみてください。

beer0324
質問者

お礼

luka3様> 早々にご返信いただいたにもかかわらず返信が遅くなり失礼いたしました。 print MAIL "Bcc: 企業のメールアドレス\n"; 上記に関しては、もう一度きれいに打ち込みなおしましたら反映されました。 入力時に誤りがあった模様です・・・お恥ずかしいしだいです。 次に、いろいろと検索をかけてみたのですが、 フォームに入力されたアドレスをToに設定する方法ですが、何とかわかったのが、 $mailtoの部分に入力されたアドレスが入るようにすればいいので、 そういう図式?といえばいいのでしょうか?を作成すればいいと思いましたが、うまくいかずです。 行った内容は、 sendmailコマンド以前。。。CGIをメモ帳で開いたはじめの方に 下記を書き加えればいいと思いますが、うまくいかずでした。 $●●● = '????'; ※HTML側では、メールアドレスを書き込むフィールドのタグを下記のように設定。 <input name="●●●" type="text" class="font1"アドレス" ize="40" /></td> open(MAIL,"| $sendmail -t -i"); print MAIL "To: $●●●\n"; 「????」の部分を正しく表記すれば動作すると思いますが、いくつか試してみましたが、 どれもうまくいかずでした。 根本的に考え方が間違えているのでしょうか? いろいろと調べていると、今私がしていることは初歩の初歩のようで恥ずかしいですが、 googleなどで調べても思い通りの答えを導けずでした。 正しい表記もしくは、どのように調べるといいかお教えいただけますでしょうか? この辺をクリアして、依頼主にきちんと説明ができるようになってから、 もっときれいにするには?など考えCGI自体を変えていくつもりです。 よろしくお願いいたします。

関連するQ&A

  • 動かないかな?

    メールフォームcgiのタグ一部コピペしたんですが、CCとBccも書き込まないと動かないですかね? #----------------------------------------------------------------- #メールを受信するメールアドレス $mailto = 'ここはおそらく、自分のアドレスに送ってもらうため にマイアドレスを記入するのかな?'; #カーボンコピーで送信するメールアドレス #「,」で区切っていくつでも $cc = ''; #ブラインドカーボンコピーで送信するメールアドレス #「,」で区切っていくつでも $bcc = ''; #----------------------------------------------------------------- cgiサンプルはこのページです。 http://www.tryhp.net/formmail.htm ちなみに、ccとbccは$mailtoとは違うアドレスいれるんですか?

    • ベストアンサー
    • CGI
  • HTMLからCGIへデータを引き継ぎ

    HTMLでメールフォームを作りCGI(Perl)で次のプログラムを作りました。 #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "$mail\n"; print "$namae\n"; print "$naiyou\n"; 動作確認のためプログラムは少しにしました。何も表示されません。

    • ベストアンサー
    • Perl
  • 設置したCGIからsendmailが届きません

    設置したCGIからメールが届きません。 理想のプログラムを見つけ設置してみたのですが、何故か入力内容のメールが届きません。 配布元で質問したいのですが、既に動いていない様で、表示されないページが多数あります。 どなたかCGIのプログラムが分かる方、見ていただけないでしょうか?よろしくお願いします。 http://www.tryhp.net/webhandler.htm ためしにサーバーをいくつか変更してみましたので、設置方法や設定方法が間違っているとは思えないのですが・・・。 メールの設定箇所 #----------------------------------------------------- #sendmailのパス 利用できないプロバイダは '' にする。 #WindowsでBlatj.exeが使用できる場合は'c:\usr\lib\blatj' #$sendmail = 'usr/bin/sendmail'; #あなたのメールアドレスを指定します。 #このアドレスにメールが届きます $mailto = '*****@**.net'; #同時に送信するアドレスが有れば「,」で区切って指定 $cc = ''; #----------------------------------------------------- 送信プログラム #-------------------------------------------------------------------- # 入力データの確認もできればデータを保存してメールを送信 #-------------------------------------------------------------------- send_email($sendmail, '', $subject, $QUERY{'E-mail'}, $mailto,'', $cc, '', $msg) && &Error('メールの送信に失敗しました'); } html_head($bgcolor, $textcolor, $linkcolor, $vlinkcolor, $linkcolor, $bgimg, 10, 10, $title); print "<center>\n"; print "<p> </p>\n"; print "<table border=1 width=50%><tr><td align=center bgcolor=FFFF88>\n"; print "<font size=2><p> </p>\n"; print "ご協力ありがとうございました。<br>\n"; print "正常に送信しました。\n"; print "<p>"; 省略ばかりですが、情報の送信ボタンを押すと、完了画面が表示されるので、何故メールが届かないのか分かりません。 どなたか分かる方教えてください。 ちなみにサーバーはロリポップと、XREAを使用しております。 どうぞよろしくお願いします。

    • 締切済み
    • CGI
  • CGIのメールフォームの送信完了部分に変数を

    CGIのメールフォームを使用しているのですが、 アフィリエイトのようなシステム?を導入するため、 送信した人を判別する為に、 送信完了ページにフォームの内容(メールアドレス)を変数として 設定させるにはどのようにしたらよいでしょうか? 現在メールフォームで使用しているのは、CGI RESCUEさんのフォームメール(WebFORM)です。 やりたいことは、具体的には、送信完了ページに <img src="https://sample.com/contract.php? num=1&order=××× &aid=0000&corp=sampleID" width="1" height="1"> ※order=×××に、フォームで送信した内容のメールアドレス等が 入るようにしたい のような、IMGタグとして解析を設定するように、といわれたのですが サービスを提供している企業が全くサポートしていないので… メールフォームのCGI自体の、送信完了ページに設定してテストしてみたのですが、うまくいきません。 試したことは例をあげますと、 open (IMG, "$https://sample.com/contract.php? num=1&order=××× &aid=0000&corp=sampleID"); print "Content-type: image/gif\n\n"; print <IMG>; close(IMG); 等です。 CGIに全く詳しくないため、問題外なのはわかっているのですが、 どなたかご教授いただけないでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • CGI(Perl)でメールフォームを作ったのですが

    CGI(Perl)でメールアドレス、名前、内容のメールフォームを作ったのですがうまくいきません。 http://homepage.biglobe.ne.jp/errorpage/500.html CGIプログラムのエラーが発生しました。 原因 CGIプログラムの実行に問題があります。 まれに、予期しないサーバのエラーが原因でこのメッセージが出る場合があります。 と表示されます。 CGIのプログラムを作る前はHTMLだけで作っていました。 <form action="mailto:メールアドレス"~ メールアドレスを非公開で送信するには。

    • ベストアンサー
    • Perl
  • CGI掲示板のSendmail送信について

    CGI掲示板を自作していますが、書き込み送信メールのSendmailによる送信処理でつまづきました。 以下のように記述すると、管理人である自分には登録メールが送られますが、 管理人以外に、書き込みした人にも登録確認メールが送られるようにしたいんです。 #Sendmailによる送信処理 if (open(MAIL,"| $sendmail -t")){ print MAIL "X-Mailer:legend2\n"; print MAIL "To: $administrator\n"; print MAIL "Errors-To: $administrator\n"; print MAIL "From: $administrator\n"; print MAIL "Subject: $subject\n"; print MAIL "MIME-Version: 1.0\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "$mail_comment\n"; print MAIL "\n"; close(MAIL); } } 以下のどれかを使うのでしょうか? print SENDMAIL "From: $sender <$from>\n"; print SENDMAIL "To: $to\n"; print SENDMAIL "Cc: $cc\n"; print SENDMAIL "Bcc: $bcc\n"; どうすれば良いか御教授下さい。宜しくお願いします。

    • 締切済み
    • CGI
  • CGIプログラムを作りたいのですが…

    ある事柄を入力して送信するフォームを作っています。フォームのほうは正常にできましたが、フォームから送信されたデータを受信するプログラムは、作り方がわかりません。 CGIを使えば良いと聞きましたが、まったくわかりません。便利なソフトもあるみたいですが、事情によりLinuxで作成することになったので、ソフトを使わずテキストエディッターだけで作りたいです。 どのようにして作成すればよいですか?

  • CGIプログラムを使った申し込みフォームに番号を振りたい

    CGIプログラムを使うことにより、WEB上から申し込みフォームを使って入力事項をメールに送信することができますが、このメールに番号をつけたいです。 送信した順に、届いたメールに番号がついているようにすることは可能でしょうか? どうか良い案を教えて下さい。

    • 締切済み
    • CGI
  • CGIへ飛ばずに処理だけさせたい

    HTMLのフォームからsubmitしてcgiにアクセスする。 cgiでHTMLからのポストとゲットを読み込んで ログファイルに書き込む。 というCGIを作ったんだけど、 print "Content-type: text/html\n\n"; を書かないと、submitしてからcgiの処理が 止まらないみたいでした。 print "Content-type: text/html\n\n"; を書くと、処理は正常になるけど、cgiファイルに ジャンプしてしまいます。 openで書き込みをする場合、cgiに飛ばずに 処理する方法を教えてください。

    • ベストアンサー
    • CGI
  • 一つのCGIの送信後画面を複数設定する方法。

    ホームページビルダー11を使ってHPを作成しています。 申し込み、質問、一般的なアンケートなど、複数のフォームページがありますが、使用しているのは、一つのCGIのみです。(ビルダー付属品でした) CGIは正常に動作していますが、フォーム送信後に表示される画面を、フォームごとに設定することは可能でしょうか?可能な場合、どのようにしたらいいのでしょうか? 試しに、このCGIをいくつかコピーして名前を変更し、表示される画面の内容を多少変えて設定を試みましたが、うまくいきませんでした。 CGIの以下の部分 print "Content-type: text/html\n\n"; print "<HTML><HEAD><TITLE>Merci</TITLE></HEAD>\n"; print "<BODY bgcolor=\"#ffffe0\">\n"; print "<H3 align=\"center\">おもうしこみ、ご相談、ご質問を受け付けさせていただきました。</H3>\n"; print "<HR>\n"; print "<P>\n"; print " 記入いただいたメールアドレスに返信いたします。少々お待ちください。<br><HR>ご利用のご感想をいただいたお客様、ありがとうございました。\n"; print "</BODY></HTML>\n"; の変更方法などを具体的に教えていただきたいです。 また、ついでの質問で恐縮ですが、上記の送信後に表示される文章で、”おもうしこみ”を”お申し込み”と漢字表記にすると、そこだけ文字化けしてしまいます。他の文章は全く文字化けしないので不思議なのですが、直す方法、原因などわかりましたらご教授願いたいと思います。 よろしくお願いいたします。

    • ベストアンサー
    • CGI