1

私はここに来たばかりなので、まず最初にご挨拶を申し上げます

Windows Mobile (Pocket PC) で実行するアプリケーションを作成しています。参考までに、私はVB.NETを使用しています。

私のアイデアは、仮想オンライン ストレージ ディスクとして使用するための多くの GB:s を提供してくれるプロバイダーで、私の電子メール アカウントを使用することです。一言で言えば、多かれ少なかれ、あなたが読んだかもしれない GMAIL ドライブに似ています。telnet-socket を使用して、プロバイダーの SMTP、POP3、および IMAP アカウントに接続するためのコードを既に作成しました。私はログインでき、これまでのところとても良いです。

私の特定のケースでは、電子メール自体には興味がありませんが、実際には、この仮想 storgae カード上の私のファイルになる添付ファイルに興味があります。添付ファイル付きの電子メールをダウンロードし、最も重要な MIME 解析のために、主に C# で作成された多くの無料のクラスを見つけました。残念ながら、これらすべてのクラスは、Windows Mobile で使用される NET Compact Framework に含まれていない Net Framework のクラス/名前空間を何らかの形で使用します。自分で MIME パーサーを作成するのは、私と私の知識にとっては複雑すぎます。

したがって、少なくとも POP3 または IMAP 経由で受信するためのコードに関しては、デバイスにすべてのバイトをダウンロードしたら、電子メール全体を解析して (境界がどこにあるかを確認して)、部分を取得するだけでよいと考えていました。 (s) は Base64 でエンコードされており、それをデコードし、送信時に電子メールの件名フィールドに書き込んだファイルの名前と拡張子を使用して名前を変更します。このようにして、おそらく MIME とそのすべての意味に関するすべてのものを避けることができます...

どうですか、SMTP を介して送信しますが、まだ調査する必要があります。どんなアイデアでも大歓迎です。

このロマンスで申し訳ありません-どう思いますか-MIMEパーサーの取得をスキップして、通常の文字列解析を使用できますか?

よろしく、 Moster67

4

3 に答える 3

1

メール ヘッダーの境界を探してから、この文字列で電子メールを分割してみてください。サブパートの解析は私見で必要になりますが (エンコーディングと文字セットが思い浮かびます。ほとんどの場合、ヘッダーを削除するだけではうまくいきません)、メッセージ全体を一度に処理するよりも少し簡単です。

注意: これは脆弱なアプローチです - 一部のメッセージでは機能しますが、他のメッセージでは機能しません (たとえば、ネストされたマルチパート メッセージ、境界文字列の変更 (すべきではありませんが、発生する可能性があります) など)。

于 2008-12-11T17:12:19.400 に答える
1

MIME パーサーは単なる文字列パーサーです。特に、MIME タイプのサブセットが必要なだけであることがわかっている場合は、非常に簡単に記述できます。RFC を調べて、自分で実装してください。

于 2008-12-11T17:04:21.367 に答える
1

メールメッセージの文字列パーサーを書くことは、実際には単純な MIME パーサーを書くことです。数時間で簡単な MIME パーサーを作成できます。同様のメール (たとえば、同じクライアント ソフトウェアによって 1 つの場所から送信されたメール) の解析に使用する場合は、これで十分です。

MIME の詳細については、

数日間の作業が現実的であるべきです。私は単純な社内 MIME パーサーの開発に携わっていました (数日かけてハッキングし、受信した電子メールの 95% を解析しました)。これは商用製品 (数か月の作業、大量のユニットテスト、および何百もの非常に適切なテスト電子メール) に関与しました。その後、Compact Framework で使用できるように変更されました (メモリに制約のあるデバイスのための変更、.NET Framework のごく一部のみが .NET CF に移植されているための変更)。また、署名および暗号化された S/MIME メールを .NET CF で動作させるために、CryptoAPI 機能の大部分の書き換えを追加します。

MIME パーサーは Rebex Secure Mail for .NET/.NET CF コンポーネントの一部であり、http://www.rebex.net/secure-mail.net/からダウンロードできます。

.NET および .NET CF のすべてのバージョンがサポートされています。.NET CF1 恐竜でさえ ;-)。ただし、無料ではありません。

于 2009-12-01T20:10:22.800 に答える