Re: 【TKMP】全文が読み込まれないときがある ( No.1 ) |
- 日時: 2012/11/09 23:58
- 名前: Toki◆pRU.c9X.EOI
- ご報告ありがとうございます。
まず、問題のメールがマルチパートのメールかを確認お願いします。
次に、本文の途切れた部分を確認してください。
また、Content-TypeとContent-Transfer-Encodingがどう表記されているか見てください。
正常に読めない理由は 1.TKMPライブラリの解析の問題 2.受信メールがRFCのルールと違う のどちらかだと思いますが、 2の場合はライブラリでは対応が難しくなります。
|
Re: 【TKMP】全文が読み込まれないときがある ( No.2 ) |
- 日時: 2012/11/12 10:48
- 名前: みっこ
- ご返信ありがとうございます。
今回のメールは、マルチパートではありません。 Content-Type〜本文は次のようになっており、TKMPで解析すると「フォーム変更の件…」からがMainTextになってしまいます。 (「TEST様〜みっこです。+改行」 が抜け落ちてしまいます。)
下記内容で、問題になる箇所はありますでしょうか? 必要であれば、emlファイルをご送付致します。
------------------以下、問題のメール------------------------
Content-Type: text/plain; format=flowed; charset="iso-2022-jp"; reply-type=original Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal Importance: Normal X-Unsent: 3 X-MimeOLE: Produced By Microsoft MimeOLE V14.0.8117.416
TEST様
お疲れ様です。 みっこです。
フォーム変更の件、了解致しました。
> 依頼書の発行は必要ですか?
はい、必要です。
|
Re: 【TKMP】全文が読み込まれないときがある ( No.3 ) |
- 日時: 2012/11/12 17:37
- 名前: Toki◆pRU.c9X.EOI
- ご報告ありがとうございます。
データの文字コードなども調べたいので、 問題なければメールでデータをいただけないでしょうか?
よろしくお願いします。
|
Re: 【TKMP】全文が読み込まれないときがある ( No.4 ) |
- 日時: 2012/11/13 13:06
- 名前: みっこ
- 先ほど、メールにてemlファイルをご送付致しました。
よろしくお願い致します。
|
Re: 【TKMP】全文が読み込まれないときがある ( No.5 ) |
- 日時: 2012/11/15 10:37
- 名前: みっこ
- ご対応ありがとうございました。
メールにも記載致しましたが、こちらのプログラムミスでした。 お時間を頂戴し申し訳ありませんでした。
具体的には、次のソースでemlファイルを編集して再作成している処理があり、 途中で
Dim data As String = mailstring.Substring(headersize + 1)
としていた為、Cr+Lf+Cr+Lf が Lf+Cr+Lf になってしまっておりました。
Dim data As String = mailstring.Substring(headersize + 2)
とすることで解決しました。 申し訳ありませんでした。今後ともよろしくお願いします。
------------------ 以下、ソース ------------------------------------
Dim sr As System.IO.StreamReader = New System.IO.StreamReader(OldEmlPath) Dim mailstring As String = sr.ReadToEnd()'メール全文をテキストに読み込み
'ヘッダ部分の最後を検索 Dim headersize As Integer = mailstring.IndexOf(ControlChars.Cr + ControlChars.Lf + ControlChars.Cr + ControlChars.Lf)
'ヘッダとヘッダ以外の部分を切り出し Dim header As String = mailstring.Substring(0, headersize) Dim data As String = mailstring.Substring(headersize + 1)
Dim sw As New System.IO.StreamWriter(NewEmlPath)'新EMLの作成
For Each val As String In Split(header, vbCrLf)
If val Like "Bcc: *" Then sw.WriteLine("Bcc: " & NewMailBcc) Else sw.WriteLine(val) End If Next
sr.Close() sw.Write(data) sw.Close()
|