解決済

clip!clip!
Ads By Google

Subjectに日本語は使えますか?

ブログ内にメールでのお問合せのコーナーを作っています。
画像に、mailto を設置しているのですが、件名に自動的に「お問合せ」という感じで
日本語で件名を入力し、ブログからのメールとして識別したいと思っていますが、
Subjectに日本語を入れると、件名が文字化けしてしまいます(自分にメールを出して実験済)。
ちなみに、メールの本文を入力すると、日本語でも文字化けはありません。
Subjectは、アルファベットのみだと正しく表示されます。

これは、livedoorブログ側の問題ですか?
それとも、私が使っているメールソフト側の問題ですか?
使っているメーラーは Outlook Express6.0 です。

Subjectに日本語を使えるようにするには、どこを設定したらいいのか教えてください。
よろしくお願いします。

2007-01-03 23:27の質問
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。

回答(2)

1.

2007-01-04 02:13:49みんなナイスな
実際のコードや症状を拝見していないので断言はしませんが、それはlivedoorブログのサーバの問題でも、あなたのメーラの問題でもありません。おそらく、subjectのエンコーディングの問題です。

どうしても日本語でsubjectを入れたいですか?

やっかいなことに、日本語のエンコーディングで一般的に使われているものだけでも、Shift_JIS、EUC-JP、ISO-2022-JP、UTF-8などがあります。もっとやっかいなのは、実は規格上はsubjectヘッダには、US-ASCIIしか使えないんですね。では、そこにどうやって日本語の文字を埋め込むかというと、=?ISO-2022-JP?Bという文字列を埋め込み、ここから日本語が混じるよと宣言をしなければなりません。この宣言はBエンコーディングと呼ばれ、普通はメーラに吸収されて利用者には見えないようになっています。

=?ISO-2022-JP?Bのあとに、お問い合わせに相当する文字コードを書いてあげればokというのが質問への答えなのですが、そのように書いてある部分は、あとで何か変更したい時の保守性が非常に悪くなりますので、メールヘッダの文字の扱いを理解できるまでは、無理に日本語のsubjectを付けないことをお勧めいたします。あたしゃ日本人だ、日本語を使いたいっ!というお気持ちはよくわかりますが、英文で「=== query from my blog ===」とかでも実用上は問題ないのではないでしょうか?

メールでの日本語の扱いかたの入門書として、よく書かれている文書としては、これがお勧めです。↓


簡単に対症療法的な答えを書くこともできますが、あとになってご自分のページを御自分で保守できなくなっては困ってしまいます、冷たいようで誠に申し訳ありませんが、あえて、日本語でのsubjectはおやめになることをお勧めしました。

もしどうしても日本語にしたければ、歴史的なつぎはぎだらけで、わかりにくい規格ですが、メールで日本語を使える原理と規格について理解されることをお勧めします。
回答レベル : アドバイス

2.

2007-01-04 02:14:46みんなナイスな
<a href=" ○○">
という形式のタグをお使いでしたら、(もしかしたら環境によっては化けないこともあるかもしれませんが、)一般には日本語は化けます。○○の部分をURLエンコードしてやれば、化けない環境もあるかもしれませんが、これもやはり保証できません。これは、ブログシステム側の問題ではなく、完全にクライアント環境依存になります。使わない方が無難です。

mailto自体、環境によっては使えませんし、正しく動作しても、自分のPC以外などでクリックした場合、他人のアドレスからメールを出すことになってしまい、あまりオススメできません。

レンタルのフォームメールを設置するのが、一番よい解決だと思います。

無料メールフォーム 無料レンタルリンク集:

回答レベル : アドバイス
Ads By Google

コメント(5)

2007-01-04 02:30:11

Altair☆の回答1は、メール一般について正しい記述です。メーラーの内部では、このように変換されています。自分でメールのプログラムを書くときは、必ず悩まなければいけない問題です。しかしながら、この処理は現代的メーラーはうまく処理してくれていることと思いますので、ご質問の件は、メーラーを呼び出す際のブラウザの解釈の問題だと思います。タグでsubject=の後にBエンコーディングされた文字列を書くと正しく受け取ってくれるメーラーもあるかもしれませんが、そうでないメーラーも多いことと思います。まぁ、どっちにしても使わない方がいいという結論なわけですがw

#2.  Altair☆
2007-01-04 02:40:49

>>#1
補足に感謝。

2007-01-04 02:41:11

ちなみに、URLエンコードされるなら、
http://www.tagindex.com/tool/url.html
が便利です。回答2に書いたようにオススメはしませんが・・・。

2007-01-04 02:43:59

>>#2
大変申し訳ありません。Altair☆「さん」を抜かして、呼び捨ててしまいました><失礼をお詫びしますm(__)m
参照がデッドリンクになるので、削除せずに残します。本当にごめんなさい。

2007-01-04 09:41:42

Altair☆さん、★オニキス☆さん、さっそくの回答とコメントをありがとうございます。
結論から言うと、mailto は使わない方がいいという感じなのですね。
件名に日本語で「問合せ」「感想」などの文字を入れたいという希望もあったのですが、
よく他のサイトさんで見かける表記で、迷惑メール防止のために、
@マークの部分に★印などを入れて、(★を@に変更してください)と表記したいと考えてました。

件名に日本語を入れるのは、私には難しそうなのであきらめます(涙)。
お二人から紹介されたサイトを見て、無料のレンタルフォームを使うことを検討してみます。
このたびは、ありがとうございました。勉強になりました。

トラックバック(2)

トラックバックURL: