このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

メール送信フォームでの文字化けの原因は?

発言者:impy
( Date Sunday, January 28, 2001 13:35:11 )


はじめまして。
会社のサイトの中にある、課のコンテンツを管理しています。(同一サーバ)
メール送信フォームを使いたく、以下のようなソースを入れましたが、
送られてくるメールが半角カナの文字化けしたものになってしまいます。
文字コードが原因かとも思うのですが、社のサイトのトップページのエン
コードがEUC-JPであるため、課のコンテンツもすべてEUC-JPにしてあります。
また、社のWEBサーバに入っている検索エンジンNamazuの検索ウィンドウを
入れていますが、これは正常に動作します。
以下にソースを添付します。

<form name="form2" action="mailto:xxxx@xxx.xx.xx" method="post" enctype="text/plain">
        <p>フォームでうまく送れない場合は、メールアドレス宛にお送りください。</p>
        <p>  お名前: 
          <input type="text" name="name">
        </p>
        <p>  メールアドレス: 
          <input type ="text" name="number">
        </p>
        <p> 
          <textarea name="textfield" cols="40" rows="4">xxxxxあてのメールです</textarea>
          <br>
          <input type="submit" name="Submit2" value="送信">
          <input type="reset" name="Submit3" value="リセット">
        </p>
</form>

アップ前に自分でテストした時はうまく行ったのですが・・・?

よろしくお願いします

田中求之 さんからのコメント
( Sunday, January 28, 2001 14:03:37 )

>enctype="text/plain"

を指定すると、何の変換もされない生の文字列が、メールのボディとして
送りだされることになるはずです。ですから、EUC などの 8bit の文字が
正しく送られない(メールは 7bit が基本ですので、8bit 目がクリアされた
データになることがある)のだと思われます。EUC や SJIS などの 8bit 文字
をそのままメールとして流すと、ただしく送られなくても仕方がありませんよ。

解決策は、通常の URL エンコードされて送られてくるものに変更し、受け取った
データを自分で解凍するようにすることでしょう。

impy さんからのコメント
( Sunday, January 28, 2001 20:51:54 )

コメントありがとうございます。

>解決策は、通常の URL エンコードされて送られてくるものに変更し、受け取った
>データを自分で解凍するようにすることでしょう。

とのことですが、具体的にはどうすれば良いのでしょう?
このソースはCGIに関する書籍からそのまま引用したものなので、うまく
いくはずと考えていたのですが。
テストでうまくいったこともあるはずなのですが・・?

サーバーにCGIなどを仕込めないので、それをしない範囲で解決しなくては
なりません・・。

村崎 さんからのコメント
( Sunday, January 28, 2001 22:34:24 )

>テストでうまくいったこともあるはずなのですが・・?

インターネットの電子メールは、いろいろなコンピュータに
よってバケツリレーのようにして送られていく。メールを中
継するコンピュータは、ただ単に届いたものをそのまま次の
宛先に送り出すだけではなく、メールを取り扱ったことを示
す付加情報を書き込んだりする。これらの中には、自分の判
断でメッセージを整形したり、制御文字をカットしてしまっ
たり、8ビット目を削り取ったりするものがある。万一、メー
ルが送られる経路の途中にこのようなコンピュータを経由す
ると、日本語のメッセージが破損してしまう場合があるのだ。

--引用終り--

経路って、そのときどきでいろいろかわるんで
きのうまでできたのになんできょうできないの
ってなってしまいがち。先生のいうとおり原理
をしっておいたほうがいいでしね。いざという
ときのために。


ところでURLエンコードされてきたメールに
(解凍=デコード)をするのに
http://www.vector.co.jp/soft/mac/net/se045871.html
これ、つかえますかね?

探すとフリーソフトでもいっぱいあると思います。
>IMPYさん

田中求之 さんからのコメント
( Monday, January 29, 2001 12:39:47 )

>サーバーにCGIなどを仕込めないので、それをしない範囲で解決しなくては
>なりません・・。

Form の中の enctype="text/plain を削ってください。そして、その後の
処理については、以下のページを参照してください。

→  ClipDecoder