フォームでメールを送信するには
[上に]
[前に]
[次に]
氏家宏美
1998/12/27(日) 23:12:20
こんばんは。
ホームページで、入力フォームを使ってメール送信をやりたいのですが
windows95 ie4j + OutlookExpress の人や
macOS7.61 ie4j + OutlookExpress の人が送信すると
届くメールが自動的にデコードされたものにするには
どうしたらよいのですか?
現在は、届いたメールは本文が白紙で、以下のような添付ファイルが
ついているのですが...
(ちなみに、自分がテストするとうまく届くのです。
自分はmacOS8.1 ie4j + OutlookExpress)
windows95 ie4j + OutlookExpress から送信されたメールは、
Name:POSTDATA.ATT
Type:タイプ未指定 (application/octet-stream)
Encoding:quoted-printable
という添付ファイルが届いて、
macOS7.61 ie4j + OutlookExpress から送信されたメールは、
Type:application/x-www-form-urlencoded
という添付ファイルがついてきます。
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=x-sjis">
<title>mailto</title>
<SCRIPT LANGUAGE='javascript'>
<!--
function send(){
document.mail.encoding='text/plain';
}
//-->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<FORM METHOD="POST" NAME="mail" ACTION=
"mailto:post@mail.co.jp,subpost@mail.co.jp?subject=mailto" onSubmit="send()">
<input TYPE="checkbox" NAME="checkbox" VALUE="A">A<BR>
<input TYPE="checkbox" NAME="checkbox" VALUE="B">B<BR>
<SELECT NAME="SELECT">
<OPTION VALUE="A" SELECTED>A
<OPTION VALUE="B" >B
<OPTION VALUE="C">C
</SELECT><BR>
<TEXTAREA NAME="TEXT" ROWS=5 COLS=20></TEXTAREA><BR>
<input type=submit value="メールを送る"><input type=reset value="やり直し"></form>
</body>
</html>
しなのむし
1998/12/28(月) 04:29:05
# 利用経験の無い方式なので自信の無いまま答えています。
まず、とほほマニュアルのここをご覧ください。
http://www.tohoho-web.com/wwwmail1.htm
お使いのソースに特に問題があるようには見えませんが
基本的にACTION= "mailto:を使ったフォームメールで
シフトJIS送信するのは推奨されていませんよね?
そこで他の方法がここに書いてあります。(とほほさんに感謝!)
http://www.tohoho-web.com/wwwmail.htm
ちなみに私のWIN95、NC4.05環境でブラウザのSMTP等の設定を
しっかりして、シフトJIS送信しますと添付ファイルは付かずに
本文中にそのままの日本語が入ります。
ヘッダはこんな感じです。
Content-type:text/plain
Content-Disposition: inline; form-data
mura
[E-Mail]
1998/12/28(月) 10:37:46
document.mail.encodingをわざわざonSubmitで指定しているのはなんででしょう?
<FORM>の中に「ENCTYPE="text/plain"」と書くと同じ意味になります。
IE4が手元にないのでちょっとわからないのですが、少なくともIE3では
document.FORM.actionとかdocument.FORM.targetを書き換えても
必ず元の<FORM>で設定した値でフォームが送られてしまいます。(NNと動作が違う)
encodingもその中に含まれていたりしてないのかな?とちょっと思ったのですが…。
タイプもばらばらになってるみたいですし。
(あとそれ以前に、onSubmitはJavaScriptを無効にしていると使えないですね)
しなのむし
1998/12/28(月) 12:27:14
>(ちなみに、自分がテストするとうまく届くのです。
> 自分はmacOS8.1 ie4j + OutlookExpress)
ということなので問題ない場合もあるようですが
macOS7.61 ie4jの
Content-type: application/x-www-form-urlencoded
は、やはりシフトJIS送信されてないですから
muraさんの言うようにJavaScriptを使わない方法
で試してみると問題が改善されるかもしれません。
しかし、根本的にFORM ACTION= "mailtoは
クライアントサイドの環境で使えないことが多いので
不特定多数の使用には不向きであるということをご理解ください。
氏家宏美
1998/12/28(月) 18:43:52
しなのむしさん、muraさん、ありがとうがざいました。
ブラウザ依存による障害の件、なんとなく(^^;)理解しました。
ですが今回どうかもう少しだけ勉強させてください。
まずonSubmitを削除して、以下のように書き換えます。
<FORM METHOD="POST" NAME="mail" ENCTYPE="text/plain" ACTION=
"mailto:post@mail.co.jp,subpost@mail.co.jp?subject=mailto">
それからヘッダの件ですが、
<meta http-equiv="Content-Type" content="text/html; charset=x-sjis">
これを書き換えるとしたら、
> ヘッダはこんな感じです。
> Content-type:text/plain
> Content-Disposition: inline; form-data
これは、並列に並べるとよいのですか?
<meta http-equiv="Content-Type:text/plain">
<meta http-equiv="Content-Disposition: inline; form-data>
ということでしょうか?
御指摘くださいませんか?お願いします。
しなのむし
1998/12/28(月) 23:07:52
>Content-type:text/plain
>Content-Disposition: inline; form-data
はフォームのあるページのヘッダではなく
ネスケでシフトJIS送信がうまくいった際のメールのヘッダです。
この場合、添付ファイルは付かずに 本文中にそのまま内容が
日本語で入ります。(うまくいけば)
ie4が手元に無いのでなんともいえませんが
少なくともie3ではFORM ACTION= "mailto
は使えないようですね。
以下、マイクロソフトの言い訳
http://www.microsoft.com/japan/support/kb/articles/J026/0/50.htm
氏家宏美
1998/12/29(火) 02:32:28
ありがとうございました。
ところで、しなのむしさんが書かれている、
> 基本的にACTION= "mailto:を使ったフォームメールで
> シフトJIS送信するのは推奨されていませんよね?
のことで、ちょっとど素人な質問かもしれませんが
私が上で引用したタグの、どの記述が
「シフトJISで送信せよ」という命令/指定部分なのでしょう???
また、「シフトJISで送信するな」という指示も出せるのでしょうか?
しなのむし
1998/12/29(火) 05:21:34
function send(){
document.mail.encoding='text/plain';
}
もしくは
<FORM ENCTYPE="text/plain"
とするとURLエンコード(こんなやつ→ %8C%B1)されずに
シフトJISのまま送信されます。
ENCTYPE="text/plain"を書かなければ自動的に
URLエンコードされます。
>> 基本的にACTION= "mailto:を使ったフォームメールで
>> シフトJIS送信するのは推奨されていませんよね?
文字化け等を考えるとURLエンコードされたまま
データのやり取りをして各自ローカルでデコード
する方が望ましいという意味です。
[上に]
[前に]
[次に]