• ベストアンサー
  • すぐに回答を!

メール送受信、コード変換

  • 質問No.1454791
  • 閲覧数172
  • ありがとう数2
  • 回答数3

お礼率 73% (48/65)

類似した質問が過去にたくさんあるのですが、、
perlでメールを送受信するプログラムを作成しております。

その時の文字化けに備えメールヘッダや本文はコード変換する
必要があることはわかったのですが、それぞれについてどんな
コード変換をしなければいけないのか?またなぜなのか?が良くわかりません。

いろいろなサイトや過去ログを調べてみて、OSの、使用するコード、メーラなど
十人十色だかららしいのですが、
たとえば、日本語を扱う時は、機種に依存しないISO-2022-JP (JIS)にするとか
あったのですが、すべてをそれに変換すればよいのでしょうか??

それともSubjectは違うコードが推奨とか、いろいろとルールがあるのでしょうか?

曖昧な質問ですみません。宜しくお願いします。

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 50% (3003/5914)

>なぜなのか?
世の中のサーバーが全て日本語のような2バイト文字を扱えるわけではありません。
メールの送信には、1つのサーバーだけでなく、色々のサーバーのバケツリレーのような形でメールの送信がされますので、それぞれのサーバーを通過できる形式である必要があります。

例えば、
MINE形式のBASE64で変換しておけば、
7ビット以内のアスキー文字列に変換されるので、
8ビット目を含むようなコードを処理できないようなサーバーも通過できます。

JISコードは、KI(漢字始まり)KO(漢字終わり)のような形で、2バイト文字を表しますが、7ビットの範囲のコードになるようにしてありますので、同じく7ビットまでしかあつかえないようなサーバーを通過できます。
一部分のみの(まとまりのないわけわからん)回答ですみません。
そういう"ルール"については詳しくは、RFCをみて下さい。
補足コメント
geso775

お礼率 73% (48/65)

ご回答有難う御座います。
>MINE形式のBASE64で変換しておけば、
>7ビット以内のアスキー文字列に変換されるので、
>8ビット目を含むようなコードを処理できないようなサーバーも通過できます。
では、日本語を扱うときはすべてJISコードに変換すればよいのでしょうか?
・受信するメール
・送信するメール
・それぞれのヘッダ、本文
添付ファイルは画像を送るので(バイナリなので)変換の必要がないと思ってます。
間違ってましたらご教示いただきたいです。お願いします。
投稿日時:2005/06/17 15:21
お礼コメント
geso775

お礼率 73% (48/65)

すみません、RFCも参照してきます。
投稿日時:2005/06/17 15:40

その他の回答 (全2件)

  • 回答No.3

ベストアンサー率 50% (3003/5914)

あんまり、自信がないので、RFC参照ということなんですが、めぼしいRFCの番号をあげておきます。
(検索サイトは昔は知ってたんですが、アクセスできなくなってました^^;)
RFC822:メールフォーマットの大元
以下関連番号
934,976,1049,1137,1344,1428,1437,1468,1524,1555,1556,1557
RFC2045,2046:MINEフォーマット
以下関連番号
1641,1740,1741,1767,1844,1847,1848,1873,1892,1894,1896,1927,2015,2017,2047,2049,2110,2112,2183,2231,2298,2302
以上は、私の持ってる資料からなんで、ちょっと情報としては古いかもしれません。^^;
補足コメント
geso775

お礼率 73% (48/65)

連絡が遅くなり申し訳ありません。。
RFCどうも有難う御座いました。これからご提示いただいた番号を参照してきます。
投稿日時:2005/06/20 09:27
お礼コメント
geso775

お礼率 73% (48/65)

RFC読んでまいりました。受信にまずmime-toolsを使用しているので
perl内部でBase64化(バイナリ->テキスト)しているみたいです。(mime使用しているのに知りませんでした。。)
JISコードと共に気をつけて作業してみます。
どうも有難う御座いました。
投稿日時:2005/06/20 13:25
  • 回答No.2

ベストアンサー率 50% (3003/5914)

>添付ファイルは画像を送るので(バイナリなので)変換の必要がないと思ってます。
勘違いしてたらすみませんが、
添付ファイルは、メールソフトを使っている場合、メールソフトがMINE形式で変換がされています。
そういう風にアプリケーションで、変換がされない場合、MINE形式に変換する必要があります。
Perlでは、そういうモジュールがあったようなきがしますが。
関連するQ&A

ピックアップ

ページ先頭へ