メールアドレスの入力フォームを使用してメーラーを立ち上げる方法

このQ&Aのポイント
  • メールアドレスを入力するフォームを作成し、入力されたメールアドレスを使用してメーラーを立ち上げる方法を説明します。
  • 通常、メールアドレスを直接入力フォームで受け取ることはできませんが、JavaScriptを使用してメーラーを立ち上げるためのURLを生成することができます。
  • 具体的なコード例を紹介します。URLには、宛先メールアドレス、件名、本文などを指定することができます。
回答を見る
  • ベストアンサー

mailtoの記入を入力フォームを使用して

先日、"メールアドレスを記入して実行すると、メーラーが立ち上がり送信先に先ほど記入したメールアドレス宛てに届くように記入されたものが立ち上がりますが、メールアドレスを入力フォームなどでホームページ使用者に記入してもらう方法はないのでしょうか?" と質問させていただきました。 回答いただきましたが、再度追加で質問させていただきます。 回答いただいた内容は mailto の使用は、閲覧者の環境によって左右される問題がおきやすいので、 一般的にはサーバーが提供するメールフォーム機能等の利用をお勧めします それでも mailto を使う必要があるならば <form name=mailform> <input name=to type=text value="info@example.com">へ<button type=submit>送信</button> </form> <script>window.addEventListener('load',function(ev){ document.forms['mailform'].addEventListener('submit',function(submitEv){ submitEv.preventDefault(); var form = submitEv.target; var to = form.elements['to'].value; if (!to) return; var url = "mailto:" + to + "?subject=hello%20世界&body=it%20is%20mail%0Aよろしくね"; var a = form.appendChild(document.createElement('a')); a.href = url; a.click(); form.removeChild(a); }, false); }, false)</script> という内容でありました。 var url = "mailto:" + to + "?subject=hello%20世界&body=it%20is%20mail%0Aよろしくね"; で記入されている部分も入力フォームで作成したいのですが、 どうすればよいでしょうか? ご指導よろしくお願いします。

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

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5071/13248)
回答No.2

こんな感じで項目が増やせます。 <form name=mailform> 宛先:<input name=to type=text value="info@example.com"><br> 件名:<input name=subject type=text value="hello"><br> お名前:<input name=name type=text value="namae"><br> 住所:<input name=addr type=text value="jyusyo"><br> <button type=submit>送信</button> </form> <script>window.addEventListener('load',function(ev){ document.forms['mailform'].addEventListener('submit',function(submitEv){ submitEv.preventDefault(); var form = submitEv.target; var to = form.elements['to'].value; var subject = form.elements['subject'].value; var name = form.elements['name'].value; var addr = form.elements['addr'].value; var body = "お名前:"+ name + "%0D%0A住所:" + addr if (!to) return; var url = "mailto:" + to + "?subject=" + subject + "&body=" + body; var a = form.appendChild(document.createElement('a')); a.href = url; a.click(); form.removeChild(a); }, false); }, false)</script>

namagage98
質問者

お礼

ご報告が遅れました。 ご指導有難うございました。 教えていた通りに作業を進めまして、 うまく作成することができました。 今後、疑問が出た場合はまた新たに質問させていただきます。 ご指導有難うございました。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5071/13248)
回答No.1

こんな感じですかね。 subjectやbodyはメールソフトによっては受け付けないので宛先しか入らない場合があります。 日本語を入力すると文字化けする場合があります。文字コード変換やエスケープ処理を入れれば多少改善できるでしょうが、OSやメールソフトによって受け付ける文字コードが異なりますので、一筋縄では行きません。 <form name=mailform> 宛先:<input name=to type=text value="info@example.com"><br> 件名:<input name=subject type=text value="hello"><br> 本文:<input name=body type=text value="Hi"><br> <button type=submit>送信</button> </form> <script>window.addEventListener('load',function(ev){ document.forms['mailform'].addEventListener('submit',function(submitEv){ submitEv.preventDefault(); var form = submitEv.target; var to = form.elements['to'].value; var subject = form.elements['subject'].value; var body = form.elements['body'].value; if (!to) return; var url = "mailto:" + to + "?subject=" + subject + "&body=" + body; var a = form.appendChild(document.createElement('a')); a.href = url; a.click(); form.removeChild(a); }, false); }, false)</script>

namagage98
質問者

お礼

ご回答有難うございます。 件名、本文も入力フォームを使用して作れるようになりました。 有難うございます。 本文の中にお名前、住所のように複数の入力フォームを作りたい場合は どうすればよいかも教えていただけませんでしょうか。 お恥ずかしい話ですが、最初の質問で聞くべきでしたが、疑問は増えるばかりで 大変申し訳ありませんがよろしくお願い申し上げます。

関連するQ&A

  • HTML ローカルストレージへの保存

    お世話になります。 ちょっとした会の幹事を一年間やることになりました。(余談) 以下のプログラムで宛先、件名、お名前、預かり金額をアンドロイド携帯のローカルストレージ に保存しておきたいのですが、 どのようにすればよいでしょうか? ご指導お願いいたします。 以下のプログラム(?)は宛先などを記入して、メーラーから送信するといったものです。 <form name=mailform> 宛先:<input name=to type=text value="info@example.com"><br> 件名:<input name=subject type=text value="hello"><br> お名前:<input name=name type=text value="namae"><br> 預かり金額:<input name=azukari type=text value="jyusyo"><br> <button type=submit>送信</button> </form> <script>window.addEventListener('load',function(ev){ document.forms['mailform'].addEventListener('submit',function(submitEv){ submitEv.preventDefault(); var form = submitEv.target; var to = form.elements['to'].value; var subject = form.elements['subject'].value; var name = form.elements['name'].value; var addr = form.elements['addr'].value; var body = "お名前:"+ name + "預かり金額:" + azukari if (!to) return; var url = "mailto:" + to + "?subject=" + subject + "&body=" + body; var a = form.appendChild(document.createElement('a')); a.href = url; a.click(); form.removeChild(a); }, false); }, false)</script> ※このプログラムも以前こちらで質問して教えていただいたものです。 素人の為、プログラムの説明などはうまくできないと思いますが、ちょっと勉強しましたので、 わかる範囲で回答に必要な質問には答える覚悟です。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • mailto機能について

    mailto機能について mailto機能について 初心者なので、mailtoを使ってcgiなどに連携せず、一本で完結するプログラムをと考えていましたが無理なので経験者のお力をお願い致します。 やりたい事は、 (1)フォームにて、1行のスクロールフィールドを作って、操作者に設定させます。 (2)上記の設定情報(アドレス)を、メールヘッダーのTo:に入れようと思っていましたが無理でした。 つまり、111が選ばれたなら、111@zzz.co.jpのアドレス       222が選ばれたなら、222@zzz.co.jpのアドレスの様に。  (3)そして、本文(body)には、クリップボードの値を入れようと思っていましたが、これも無理。 お恥ずかしいのですが、作ったプログラムは、以下です… <body> <FORM> <select size="1" name="pref" multiple> <option value="111@zzz.co.jp">111</option> <option value="222@zzz.co.jp">222</option> <option value="333@zzz.co.jp">333</option> String[] pref = req.getParameterValues("pref"); <p><input type="submit" value="テストメール送信フォーム" /></p> </select> <A HREF="mailto:String[] pref?subject=test?cc=dummy@zzz.co.jp?body=テストメール% 0D%0A%0D%0A(本文中にクリップボードがコピーされます)clipText = window. clipboardData.getData("text")">テストメール送信フォーム<br></a></FORM> </body> みっともない上記をベースに修正頂く必要はございません。 本来、目的からすれば、どの様なプログラミングを行うのが妥当なのかの界面で、ご教授頂きたく、多忙とは存じますが、宜しくお願いいたします。

  • フォームボタンをリンク風に表示

    <form action="mailto:"> <input type="hidden" name="subject" value="{subject}"> <input type="hidden" name="body" value="{body}"> <input type="submit" value="メール送信"> </form><br> メーラが立ち上がると、ディフォルトで件名と本文が入るようにしています。しかし、ブラウザー上でフォームの「ボタン」表示ではなく、「リンク」のような表示にしたいのですが何か方法はあるのでしょうか? <a href="mailto:"> これだと、ディフォルトでの表示ができなくなるし。

    • ベストアンサー
    • HTML
  • mailtoについて

    携帯電話やパソコンでは以下のように書いたmailtoが起動してくれるのですが Androidのスマートフォンで起動してもメールアドレスが記入されていない状態になってしまいます。 なにが原因なのでしょうか? <a href="mailto:info@〇〇〇.jp?subject=通知&body=連絡事項:%0D%0A%0D%0Aホームページにより連絡送信。%0D%0A%0D%0A">連絡</a>

    • ベストアンサー
    • HTML
  • mailtoで「?」が使えるようにするには

    HTMLで <a href="mailto:xxx@xxx.co.jp?&subject=件名&body=">○○○</A>とした時にbodyの中に 「http://www.○.com/○.html?mode=○」のような「?」が入ったURLを記入したいのですが、どうしてもできません。 10進数コードの「エンティティ表記」で× URLエンコードでも× でした。どなたか解決策を教えてください。

    • 締切済み
    • CSS
  • メールフォームを入れるには?

    ライブドアブログで独自ドメインを使って『http://www.○○○○.jp』というブログを運営してます。 メールフォームを設置したいと思い、fc2の無料メールフォームレンタルを利用しようとしたのですが、メールフォームのURLは『http://form1.fc2.com/form/?・・・』というブログのURLとは全く別のURLになってしまいます。 メールフォームのURLを例えば『http://www.○○○○.jp/mailform』のようにすることは可能でしょうか?可能でしたらどのようにしたらよいでしょうか? お分かりのことだけでもよいので是非教えて下さい!

  • HTML mailto の使い方

    お世話になります。 HTMLでmailtoというタグがあります。 メールアドレスを記入して実行すると、メーラーが立ち上がり送信先に先ほど記入したメールアドレス宛てに届くように記入されたものが立ち上がりますが、メールアドレスを入力フォームなどでホームページ使用者に記入してもらう方法はないのでしょうか? ご指導お願いいたします。

    • ベストアンサー
    • HTML
  • Perl メール フォーム

    ホームページのメールフォームについて教えてください。 現在ホームページで、お問い合わせページを作っている最中です。 そこで、現在下記のコードまでできております。 #!/usr/bin/perl -w use Encode qw(from_to encode); use Net::SMTP; use strict; use warnings; use Encode; use CGI; my $p = new CGI; #メールアドレス設定 my $from = 'aaaa@aaaaa.jp; my $mailto= 'aaaa@aaaaa.jp; my $mailcc= 'aaaa@aaaaa.jp; #サブジェクト設定 my $subject = 'ホームページからのお問い合わせ'; from_to($subject, 'shiftjis', 'iso-2022-jp'); encode('MIME-Header-ISO_2022_JP', $subject); #メールヘッダー設定 my $header = << "MAILHEADER"; From: $from To: $mailto CC: $mailcc Subject: $subject Mime-Version: 1.0 Content-Type: text/plain; charset = 'ISO-2022-JP" Content-Trensfer-Encoding: 7bit MAILHEADER #メール本体設定 my $message = "a"; #my $subject = $p->param('subject'); #文字コードをJISに変換 from_to($message, 'shiftjis', 'iso-2022-jp'); #メール送信オブジェクト設定 my $smtp = Net::SMTP->new('aaaaaaa.jp'); if ( !$smtp ) { print "メールサーバーにアクセスできません!"; exit; } #メール送信 $smtp->mail($from); $smtp->to($mailto); $smtp->to($mailcc); $smtp->data(); $smtp->datasend($header); $smtp->datasend($message); $smtp->dataend(); $smtp->quit; これだと、ホームページのボタン等をクリックすると メールは送られます。 差出人が'aaaa@aaaaa.jp 件名がホームページからのお問い合わせ 内容がa です。 これは、コード内にこう書いているから必然的にこれがくるわけなのですが、 そうではなく、 ホームページでお問い合わせボタンがありそこに <a href="http://aaaaaa.jp/cgi/mailform.pl"><img src="img/share/mail.gif" width="100" height="50" alt=""></a> mailform.plもしくはmeilform.htmlを表示させ下記のコードで表示されるページにアクセスし #!/usr/bin/perl <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>メールフォーム</title> </head> <body> <h1 class="title">メールフォーム</h1> <form method="post" action="mail.pl"> <input type="hidden" name="a" value="exec"> 件名(Subject) :<br /> <input type="text" name="subject" size="80" value=""><br /> 宛先(To) :<br /> <input type="text" name="to" size="80" value=""><br /> 差出人(From) :<br /> <input type="text" name="from" size="80" value=""><br /> 本文(Body) :<br /> <textarea name="body" rows="10" cols="65"></textarea><br /> <p> <input type="submit" value="送信"> </p> </form> </body> </html> ここで 差出人、件名、内容を入力し、送信のボタンを押すと my $subject = 'ホームページからのお問い合わせ'; my $message = "a"; my $from = 'aaaa@aaaaa.jp; この3つをmailform.plもしくはmailperl.htmlで 入力した内容で送信をしたいのですが、 これのやり方を教えてほしいです。。。 当方ホームページ作りも初心者で、Perlも最近はじめたとこでまだ理解できていないとこも 多いため説明がわかりにくいかもしれません・・・ その時は、ご指摘ください;; また、業者に頼むことは考えておりません・・・ 参考書やいろいろネットサーフィンしてみたのですが、上手くできません どうかお力添えをお願い致します!

    • ベストアンサー
    • Perl
  • 送信フォームについて

    HP内に送信フォームを作りたいのですが 本を見ながら <html> <head> </head> <body> <form action="mailto:メールアドレス" method="post" enctype="test/plain"> <input type="text" name="id" size=20> <input type="submit"value="送る"> </form> </body> </html> と、簡単なフォームを書いてみたのですが、どうしても送信できません。 どこがまずいのか、探したのですが自力では間違いが見つけられませんでし た。 詳しい方、どうかご指導お願いします。

    • ベストアンサー
    • HTML
  • PHPのお問い合わせフォームが動かない

    「ぶっとびねっと」というレンタルサーバーに以下の2つのファイルをアップしました。 ・contacts.html ・contacts.php しかしフォームに入力後、送信を押してもメールが指定したアドレスに届きません。 なぜでしょうか。。。 ソースを下に貼りますので、ご教授願います。 -----  contacts.html  -------------------------------- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>メールフォーム</title> </head> <body> <form method="post" action="contacts.php"> お名前:<input type="text" name="namae" /><br /> メールアドレス:<input type="text" name="meado" /><br /> 件名:<input type="text" name="subject" /><br /> お問い合わせ内容:<textarea name="content" cols="50" rows="5"></textarea><br /> <input type="submit" name="submit" value="メール送信" /> </form> </body> </html> ------------------------------------------------------ -----  contacts.php  -------------------------------- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"    /> <title>メールフォーム</title> </head> <body> <?php if ($_POST["submit"] == "メール送信") { mb_language("Ja") ; mb_internal_encoding("UTF-8") ; $mailto="○○○○@hotmail.co.jp"; $subject = $_POST["subject"]; $content = $_POST["content"]; $namae = $_POST["namae"]; $meado = $_POST["meado"]; $mailfrom="From:" .mb_encode_mimeheader($namae) ."<".$meado.">"; mb_send_mail($mailto,$subject,$content,$mailfrom); } ?> <form method="post" action=""> お名前:<input type="text" name="namae" /><br /> メールアドレス:<input type="text" name="meado" /><br /> 件名:<input type="text" name="subject" /><br /> お問い合わせ内容:<textarea name="content" cols="50" rows="5"></textarea><br /> <input type="submit" name="submit" value="メール送信" /> </form> </body> </html> ------------------------------------------------------

    • ベストアンサー
    • PHP

専門家に質問してみよう