写真を添付したメールで回答するアンケート作成の方法

このQ&Aのポイント
  • 写真で回答するアンケートを作りたいが、画像が送れずに困っている
  • enctypeをmultipart/form-dataに設定すると、空のメールが送信される
  • アンケートの回答部分をメール本文、選択した写真を添付書類にしたい
回答を見る
  • ベストアンサー

写真を添付したメールで回答

写真で回答するアンケートを作ったのですが、 回答と写真のファイル名が送れるだけで画像が送れません。 希望としては、回答部分がメール本文、選択した写真がメールの添付書類になるようにしたいです。 ファイルの中身を出力する場合は   enctype="text/plain" では、駄目で  enctype="multipart/form-data" にするとよさそうな記事を見つけて、そのように設定して見ました。 すると、今度は、メール本文も添付書類も何もない、空のメールになってしまいました。 写真を添付したメールで回答するアンケートを作りたいのですが、どのように書いたらよいのかわかりませんので、教えてください。 よろしくお願いします。 <form name="a" method="post" action="mailto:xxxx "  enctype="text/plain">   <-------- この部分を交換 氏名 : <input type="text" name="ans1"> 困ったときの写真: <input type=file name="ansfig" onChange="this.form.disp.src=window.URL.createObjectURL(this.files[0])"> <br><img name=disp> <input type="submit" value=" 送信1 "> <input type="reset" value=" 取消 "> </form>

  • HTML
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

【引用】____________ここから action = uri [CT]  この属性は、フォーム処理エージェントを指定する。HTTPスキームURI以外の値の場合のユーザエージェントの動作は、定義しない。 method = get|post [CI]  この属性は、フォームデータ集合を提出する際にどちらのHTTPメソッドを用いるかを指定する。 可能な値は、大文字小文字を区別せず、「get」(デフォルト値)と「post」である。使用法については フォームの提出の項を参照のこと。 enctype = content-type [CI]  この属性は、(method属性値がpostの場合)サーバに提出する際のMIMEタイプを指定する。 デフォルト値は "application/x-www-form-urlencoded"である。 INPUT要素でtype="file"のものと組合せる場合は、この値に "multipart/form-data"を指定する必要がある。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Forms in HTML documents (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/interact/forms.html#h-17.3 )]より  仕様書くらいは、一度通して読んでおきましょう。  よって、かならず <form action="/cgi/mailForm.cgi" method="post" enctype="multipart/form-data">  になります。  ・デフォルトのGET(Querystring)の許容量をオーバーします。  CGI側で、画像の処理をします。Perlが使えれば、多くの場合ImageMagickないしPerlMagickが使えますので、メールで扱える範囲内にデータを縮小するなりして送信すれば良いです。  https://www.google.co.jp/?gws_rd=ssl#q=%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%83%A1%E3%83%BC%E3%83%AB+%E7%94%BB%E5%83%8F%E6%B7%BB%E4%BB%98+magick+OR+gd&safe=off

iruiru298
質問者

お礼

回答ありがとうございます。 enctype="multipart/form-data" の場合、  action="mailto:xxxx" では何も送信されない。  action="cgitest.cgi"であれば、希望したデータが送られる。 こと以下の方法で確認できました。 cgiファイルの作り方で時間がかかりお礼が遅くなりましたが、exeファイルの拡張子をcgiに修正するだけでOKなのですね。 具体的には、 action="cgitest.cgi" enctype="multipart/form-data" とし、以下のCプログラムの実行ファイル test.exe を cgitest.cgi に改名してHTMLファイルと同じフォルダに置いて、 送信ボタンを押したところ、 回答部分のテキストデータと、選択した写真のバイナリデータが受信できました。 --------------------- #include <stdio.h> #include <fcntl.h> #include <io.h> int main(void) { int c; FILE *fp; fp = fopen("temp.dat","wb"); setmode(fileno(stdin), O_BINARY); while((c=fgetc(stdin)) != EOF ) { fputc(c,fp); } fclose(fp); return 0; }

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

HTMLではきびしいと思いますよ ユーザーが手で添付するか、サーバーサイドのプログラムで処理するかの どちらかになると思います

iruiru298
質問者

お礼

回答ありがとうございます。 ユーザインタフェースは変えたくありませんので、サーバーサイドのプログラムで処理する方法を教えてほしいです。 <form name="a" method="post" action="yyyyy.cgi "  enctype="text/plain"> とすれば、action="mailto:xxxx " では送られなかった、 回答内容と、写真データがサーバーに送られ、 サーバーサイドに yyyyy.cgi を作れば可能 ということでしょうか?

関連するQ&A

  • <form>タグでの情報をメールで受け取るにあたって

    <form method="POST" action="mailto:アドレス?subject=題名" enctype="text/plain"> <p>お名前 :<input type="text" name="name" size="40"></p> <p> メッセージ: <br> <textarea cols="50" rows="5" name="message"></textarea> </p> <p><input type="submit" value="送信する"></p> </form> ■□■□■□■□■□■□■□■□ 以上のようなHTMLタグでメーラーから情報を送信してもらおうと思っています。 追加で画像を添付できるようにしたりも出来るのでしょうか? 宜しくお願いします。

  • CCを使わず複数の人にメールを出せる記述方法がありますか?

    フォームによるメール送信でccを使わず複数の人にメールを出せる記述方法がありますか? ちなみに、今こんな感じで記述しています。 <form name="FormName" action="mailto:***@**.ne.jp" method="post" enctype="text/plain"> 名前<input type="text" name="名前" size="24"> <p>住所<input type="text" name="住所" size="24"></p> <p>コメント<textarea name="コメント" cols="40" rows="4"></textarea></p> <p><input type="submit" name="submitButtonName"></p> </form> 分かるかた教えてください。

    • ベストアンサー
    • HTML
  • 作ったメールフォームが返信されません

    自分のHPに以下のタグのメールフォームを作成しました。 けど返信が戻ってきません。何か問題があるのでしょうかお手数ですが教えていただけたらうれしいです。 <html> <head> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>なぜ?</title> </head> <body> <form name="myFORM" method="post" action="mailto:私のメールアドレス" enctype="text/plain"> <br> ご意見などお願いします。? <br> <input type="text" NAME="data"><br> <input type="submit" VALUE="送信"><br> </form> </body> </html>

  • Webから送信されたメールをフリーメールで受信した時・・

    こんにちは。 HPにアンケートフォームを設置したいのですが、sendmailが使えないサーバーを 使っており、レンタルCGIもあまり利用したくないので、 以下のように、メーラーで送信させる記述をしてページを作りました。 <form method="POST" action="mailto:***@***?subject=アンケート送信" enctype="text/plain"> <p>お名前:<input type="text" name="名前" size="32"></p> <p>職業:<input type="text" name="職業" size="42"></p>   :   : 送受信の動作は問題ないのですが、受信するアドレスをgooフリーメールに指定した時、 入力された内容(つまりメール本文)が、 ・・・j0bJEIjZxsoQg0KGyRCRVRGO0lcOCk・・・ のように表示されてしまいます。 フリーメールではどうしようもないのでしょうか・・・。 受信するアドレスをプロバイダの正規アドレスにし、OEで確認すると、 入力された内容は問題なくメール本文として受信できます。 デコード作業を回避し、送信された入力内容をそのまま受信したいのですが、 受信アドレスはフリーメール以外にするしかないのでしょうか。 アドバイスいただければ幸いです。 よろしくお願いします。

  • mailtoによる送信ができない

    <html> <body> <form action="mailto:●●@●●.ne.jp" method="POST" enctype="text/plain" name="mail"> アドレス<br> <input type="text" size="20"name="アドレス"><br> 名前<br> <input type="text" size="20" name="送信者"><br> 感想<br> <textarea name="感想" rows="2" cols="20"> </textarea> <br><input type="submit" value="送信"> <input type="reset" name="mail" value="リセット"> </form> </body> </html> とやってもOEが立ち上がるだけで、フォームに書いた内容がOEに 表示されません。

  • submitで特定の情報だけを本文にするには?

    FORMで、SUBMITを使ってメールを送るSCRIPTの場合、送信する本文を指定されたVALUEだけにすることはできないのでしょうか? 下のようなスクリプトを書いています(以前の回答より引用しています) <script> function iSubmit() { var adress = document.myFORM.adress.value; document.myFORM.action="mailto:"+adress; document.myFORM.submit(); } </script> <FORM name="myFORM" method="post" str enctype="text/plain"> <INPUT type="text" NAME="adress"><BR> <INPUT type="text" NAME="mailtext"><BR> <INPUT type="button" VALUE="アドレス送信" onClick="iSubmit()"><BR> </FORM> submitの場合、単純に&BODY=としただけでは本文に指定出来ず困っています。 出来れば、本文に書きこまれる "mailtext="の部分も削除したいのですが、良いアイデアはないでしょうか? <A HREF="mailto:~">で出来ないかと思ったのですが、その場合ユーザが書きこんだデータを取って来れない様な気がするので、挫折しました。 自分なりに調べたのですが、わかりません。どなたか宜しくお願い致します。

  • ホームページからメールを受け取る方法

    ホームページを作成しています。 アンケートなどをメールで転送してもらいたいのですが、内容がメーラーに転送されません。何が問題なのでしょうか? ちなみに <FORM name="ans" action="mailto:メールアドレス?Subject=回答" enctype="text/plain" onsubmit=" " method="POST"> としています。 何か、コンピュータの環境の違いで、ansが引き継げない原因があるのでしょうか?

  • javascript フォームについて

    javascriptでフォームを作ったのですが、複数フォームの空白をチェックするにはどのようなプログラムにすればよろしいでしょうか? onsubmit="return chk1(this)でフォーム送信が押されたときにチェックを行おうと考えているのですが そのときのchk()の中身やif文の条件がわからないのです。 どのようにすれば上手くいくでしょうか? 回答よろしくお願いします。 ソースは以下のとおりです。 <script language="javascript"> function send() { document.nform.submit(); document.nform2.submit(); document.nform3.submit(); } function chk1(frm){ if(frm.elements["txt1"].value==""){ alert("解答欄に空白があります"); /* FALSEを返してフォームは送信しない */ return false; }else{ /* TRUEを返してフォーム送信 */ return true; } } </script> <form name="nform" method="POST" action="mailto:webmaster@a.com?subject=問い合せ" enctype="text/plain"> <p>問1</p> <p> (1)<input type="text" name="kaitouran11" size="20"> (2)<input type="text" name="kaitouran12" size="20"> (3)<input type="text" name="kaitouran13" size="20"> (4)<input type="text" name="kaitouran14" size="20"> </p> </form> <form name="nform2" method="POST" action="mailto:webmaster@leposystems.com?subject=問い合せ" enctype="text/plain"> <p>問2</p> <p> (1)<input type="text" name="kaitouran21" size="20"> (2)<input type="text" name="kaitouran22" size="20"> (3)<input type="text" name="kaitouran23" size="20"> (4)<input type="text" name="kaitouran24" size="20"> </p> </form> <form name="nform3" method="POST" action="mailto:webmaster@leposystems.com?subject=問い合せ" enctype="text/plain"> <p>問3</p> <p> (1)<input type="text" name="kaitouran31" size="20"> (2)<input type="text" name="kaitouran32" size="20"> (3)<input type="text" name="kaitouran33" size="20"> (4)<input type="text" name="kaitouran34" size="20"> </p> </form> <input type="button" value="送信" onClick="send()" onsubmit="return chk1(this)">

  • メールの本文が添付ファイルになるのを回避する方法は?

    NetscapeCommunicator 4.78 でメールの受送信を行っています。 受信メールで、メールの本文が添付ファイルになって届く場合があります。添付ファイルをクリックするとブラウザーが起動され本文が読めるようになります。 これらのメールをこちら(受信者)の環境を変更することで、ダイレクトに読める(通常どおり本文として展開される)ように、設定する方法を教えてください。 特定の相手からのメールなので、送信側の問題(HTML形式で送られているのでは?)だと思うのですが、相手が複数名いるため、出来ればこちら(受信者)の環境を変更することで、解決したいと考えております。 添付ファイルは常に、以下のファイル名/Typeです。 ファイル名→Part1.1 Type→Plain Text (text/plain) 以上 方法がありましたら、ご教授ください。 よろしくお願い申し上げます。

  • メールフォームのソースについて

    メールフォームがうまく作れません。下のソースでおかしなところがあったら 教えていただけませんか?よろしくお願いします。 html> <head> <title>sample</title> <script Language="JavaScript"><!-- function set(sObj) { str = sObj.options[sObj.selectedIndex].value; document.myFORM.action = "mailto:" + str; } // --></script> </head> <body> <form name="myFORM" method="post" action="mailto:abc@***.ne.jp" enctype="text/plain"> <br> <input type="text" value="test" NAME="data"><br> <input type="submit" VALUE="送信"><br> </form> </body> </html>

専門家に質問してみよう