0

CSV ファイルが添付された POP3 メッセージをダウンロードします。添付ファイルのプレーン テキストを取得する必要があり、次のようにします。

For Each BP As MimeKit.MimeEntity In Msg.BodyParts
   'Filtering:
   If Not BP.IsAttachment = True Then Continue For
   If Not BP.ContentDisposition.FileName.EndsWith(".csv") Then Continue For

   Console.WriteLine((DirectCast(BP, MimeKit.TextPart).Text))
Next

この作品

BP.ContentType.MediaType = "text"
BP.ContentType.MimeType = "csv"

しかし、たとえばMediaType = application、にキャストBodyPartしてプロパティTextPartにアクセスできない場合。.Text

を使用して完全な添付テキストを取得できますが、BP.ToStringすべてを含むものを返します。ヘッダー:

Content-Type: application/vnd.ms-excel;
name="MyFile.csv"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="MyFile.csv"

2018-03-10 10:12;0.797;m3/h;1.8;-0.3;1.8;m3;0.000;0.000;96;5346=0A=
2018-03-10 10:13;0.820;m3/h;1.8;-0.3;1.8;m3;0.000;0.000;96;5346=0A=
2018-03-10 10:14;0.868;m3/h;1.9;-0.3;1.9;m3;0.000;0.000;96;5346=0A=
2018-03-10 10:15;0.549;m3/h;1.9;-0.3;1.9;m3;0.000;0.000;96;5346=0A=
2018-03-10 10:16;0.281;m3/h;1.9;-0.3;1.9;m3;0.000;0.000;96;5346=0A=

1: 値に関係なく、ボディパーツの添付テキストを取得するにはどうすればよいですか?ContentType..

2: フィルタリングを行う前に、メール/添付ファイル全体をダウンロードします。フィルタリングで使用する添付ファイル ヘッダーのみをダウンロードするにはどうすればよいですか?

4

1 に答える 1

1

MimePart のコンテンツを取得する一般的な方法は、C# では次のようになります (申し訳ありませんが、VB はわかりません)。

using (var memory = new MemoryStream ()) {
    part.Content.DecodeTo (memory);

    var buffer = memory.ToArray ();
    var text = Encoding.UTF8.GetString (buffer);
}
于 2018-03-11T17:43:38.883 に答える