• ベストアンサー

JavaScriptで作成したメールフォームが送信できません

過去にも同様の質問があったかもしれませんが、いまひとつ理解できていませんので、詳しく教えて下さる方急募です! タイトルにも書きましたが、私はWinXPを使っており、Internet Explorer6.0を使っています。そして、会社のホームページの作成担当をしておりますが、弊社のページ内に、アンケートフォームを作った(業者に依頼した)のですが、メールが送れません。 というか、「このフォームは電子メールを利用して送信されています。 このフォームを送信すると、電子メールアドレスが受信者に公開され、フォームのデータが暗号化されずに送信されます。 この送信は続行できますが、取り消すこともできます。」 というメッセージが出て、メールソフトが起動してしまいます。 いろいろ皆さんのご意見を見ると、メールソフトの設定や、ウイルス対策のソフトの設定が必要なように聞いておりますが、設定の変更もわかりません。解決策があるなら、ページ上にアナウンスとして記入しないと、弊社のページを見て頂いた方から問い合わせが来にくい状況になってしまい、悪循環です。 また、WinXPではmailtoが対応していないという意見もありましたが、弊社の他のページでメールを送信できるようmailtoのタグも使っていますが、それは問題なく送信できています。 どのアドバイスが一番自分の環境にあっているかわかりませんので、お問い合わせさせて頂きました。何卒いいアドバイスお願い致します。

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

  • ベストアンサー
  • Rbear
  • ベストアンサー率32% (78/241)
回答No.2

基本的にJavaScriptを使用したメールフォームというのは デフォルトのメールソフトを使用して送信するという事です つまりメールソフトが対応していないと送信できません メールソフトが起動するという事は正しいということです 企業のHPであればCGIを使った方がいいと思います これならサーバが対応してれば良いので ユーザの環境に対する依存度は低く出来ると思います

参考URL:
http://www.site-cooler.com/kwl/cgi/5.htm
marcyo
質問者

お礼

早速の回答ありがとうございます。 私の表現方法が間違っているようで、メールフォームというより、アンケートフォームと言った方がいいのでしょうか、必要な項目を入力して最後に送信ボタンを押すフォームです。 だけど、JavaScriptよりCGIの方が良さそうですね。一度それを検討してみます。ありがとうございました。

その他の回答 (2)

回答No.3

提示されたアンケートページにはformタグにmethod="post"という記述があるのでこれはPOSTです。method="get"またはmethod自体が省略されている場合はGETです。 No2さんもおっしゃってますが、この方法はクライアントの環境に左右されます。先ほど自分で作ったページではちゃんと送信されて実は驚いたのですが、うちのクライアント環境ではこの形式のメールフォームでちゃんと送れた事がなかったんです。うちの環境はOUTLOOK+EXCHANGEサーバーで、EXCHANGEサーバーのアドレス形式の優先順位が高いので、デフォルト状態ではEXCHANGEサーバーのアドレス形式でメールを送ろうとするためだと解釈しています。ですから、このようなフォームがあっても送り先アドレスを探して直接メールを打つか、それほど重要でない場合はそのままページを閉じてしまっていました。 ですので、より確実にクライアントからの送信を求めるのであれば、僕もきちんとしたメールフォームを設置する事をお勧めしますね。

marcyo
質問者

お礼

回答ありがとうございます。そうですよね。やっぱり、途中まで入力したのに、それが繁栄されず空メールが起動するともう送信したくなくなりますよね。最近問い合わせがないなと思ってたらこういう状況になっていてビックリしました。きちんとしたフォームを設置します。ありがとうございました。

回答No.1

メールソフトが立ち上がるのが問題の動作ですか?手元のWinXPSP2とIE6.0で実験したところ、フォームのmethodをPOSTにするとそのまま送信され、GETにするとメールソフトが立ち上がりました。なお、質問にあるアンケートフォームでは入力チェックにJavaScriptが使われていますが、メール送信自体にはJavaScriptは関係ありません。

marcyo
質問者

お礼

早速のご回答ありがとうございました。 「フォームのmethodをPOSTにするとそのまま送信され、GETにするとメールソフトが立ち上がりました。」がどの部分かまだわかりませんが、一度やってみます。ありがとうございました。

関連するQ&A