プロが教える店舗&オフィスのセキュリティ対策術

メールの文字化け
本文を改行せず(Enterを打たない)に作成すると990バイト目付近に(0x0D0A20)が挿入されて以降が化けてしまいます。JISコード 漢字INの状態で割り込まれるからです。
メールソフトによらず起こり 自分あてのメールを@niftyWEBメール を覗いてもすでに化けています。 他人にはもちろん化けて着信します。
改行を入れれば化けないことはわかっていますが、どこで、何の目的でこのような挿入がされるのか知りたい。まさかniftyが挿入したのではないと思いつつ。

A 回答 (1件)

どこで改行を入れているかは別にして、


http://forum-jp.filemaker.com/fmijp/board/messag …

text line
The maximum total length of a text line including the <CRLF> is
1000 characters

とRFCに書かれているのだから、1行1000文字(1000バイト)以上をSMTPで送信しようとしようとしていること自体が頭のおかしい行為
逆に、1000文字を超えないように990バイトで改行を入れるのはRFCを守るという点では正しい行為かと
    • good
    • 0
この回答へのお礼

ご教示いただいてから1ヶ月たちました。私のPCは富士通なので富士通のサポートにこの現象の確認を依頼したのですが、富士通では「WindowsXP、OutlookExpress、Nifty」の組み合わせで1200バイトの無改行メール文は化けないそうです。それで私のPCの常駐ソフトがなにか悪さをしているかもしれないからmsconfigで常駐をはずしながら確かめてくれ、というのが今の状況です。私はユーザーですから、そして友人が無改行のメールを寄越すので化けるのが問題なのでどこでどうなるのかを知りたいのが発端でした。御説のように「1行1000文字(1000バイト)以上をSMTPで送信しようとしようとしていること自体が頭のおかしい行為」であるならそれはメールソフトがそのように作られているべきで、百歩譲っても1000バイト以内に改行してください、とマニュアルに書いてあるべきでエンドユーザーは、とりわけメールを寄越す他人に対してどうしてよいかわからない、が現状です。ひとつわかったことはOutlookExpressには「送信時何文字で折り返しますか」という設定ができるようになっているのに、XPSP2以降(OSのせいで)この設定は無効になった、にもかかわらずVISTAのWindowsMailでも同じことのようです。(Vistaユーザーでないので確認できない)

いろいろ書きましたが、「1000バイトを超えないようにどこにどうする仕掛けがあるのか」はわからないままです。私のところへは(0xODOA)が漢字コードを分断するのもおかまいなしに挿入されてくる、だから化けるのは事実です。富士通はOutlookExpressとNiftyの組み合わせでは1200バイト無改行でもそのまま伝送できると言っています。

貴回答以外の情報はありませんでした。 この件はこれで打ち切ろうと思います。

SMTPのプロトコルなど、ユーザーの私が読んで見ようとは思いもしませんでした。おかげで野次馬的ながら拾い読みもしてみました。

貴重な情報、まことにありがとうございました。

お礼日時:2010/07/20 18:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!