The project of U-WA-
http://uwa.potetihouse.com/
トップページ > 記事閲覧
アイコン 【TKMP】全文が読み込まれないときがある
日時: 2012/11/13 13:58
名前: みっこ

お世話になっております。

TKMPには大変助けられております。

過去スレッドで、題名の「【TKMP】全文が読み込まれないときがある」が既に立っており解決していないようですが、私の環境でも発生しました。
(バージョンは、最新の「3.1.0.2」を使用しております。)

MainTextは、保存されたemlファイルを解析して取得しています。

Dim reader As New TKMP.Reader.MailReader(_emlFilePath, False)
_Body = reader.MainText


今回たまたま本文の切れるメールがあり、今まではこのようなことはありませんでした。

何か解決の糸口はありますでしょうか?
よろしくお願いします。



メンテ

Page: 1 |

ファイル 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()
メンテ

Page: 1 |

題名 スレッドをトップへソート (必ず題名内に日本語を使用してください)
名前
E-Mail
URL
パスワード (記事メンテ時に使用)
コメント 顔smile01.gif 顔smile02.gif 顔smile03.gif 顔smile04.gif 顔smile05.gif 顔smile06.gif 顔smile07.gif

   クッキー保存