1

メールボックスから別のメールボックスにメールを転送する必要があるアプリケーションに取り組んでいます。これによりヘッダー情報が変更されるため、SMTPを使用してこれらのメールを送信することはできません。C#とoutlookapiを使用してメールを処理しています。メールヘッダーを変更せずに他のメールボックスにメールを転送できる方法はあります。


転送とは、ヘッダー情報を変更せずに、あるメールボックスからメールを取得して別のメールボックスに移動する必要があることを意味します。SMTPを使用すると、ヘッダー情報が変更されます。MAPIメールを使用すると、あるメールボックスから別のメールボックスに移動できると聞きました。任意のポインタ。

4

6 に答える 6

2

Redemption を使用して、あるメール ボックスから別のメール ボックスにメールを移動できました。これは、あるメール ボックスから別のメール ボックスへのコピー メールのようなものです。引き換えを使用して宛先メールボックスに最初にログオンします。メールを移動するフォルダーへの参照を取得します。私の場合、受信トレイでした。ここで、Outlook メール アイテムを RDOMail に変換し、rdomail を宛先フォルダーにコピーします。ここにコードがあります -

 rdoSession.LogonExchangeMailbox("TEST", "ServerName");
 RDOExchangeMailboxStore mailBoxStore = (Redemption.RDOExchangeMailboxStore)
 rdoSession.Stores.DefaultStore;
 RDOFolder inboxFolder = null;

            foreach (RDOFolder rdoFolder in mailBoxStore.IPMRootFolder.Folders)
            {
                if (rdoFolder.Name.Equals("Inbox", StringComparison.InvariantCultureIgnoreCase))
                {
                    inboxFolder = rdoFolder;
                    break;
                }
            }
            rdoMail.CopyTo(inboxFolder);

これにより、メールはヘッダー情報を変更せずに新しいメール ボックスにコピーされます。

于 2008-12-17T10:06:58.743 に答える
1

関連するすべてのメールボックスを 1 つの Outlook プロファイルにロードできない場合、Outlook API を使用してこれを解決することはできません。ただし、Extended MAPI を介して Exchange インフォメーション ストアに直接アクセスする管理者アカウントからスタンドアロン アプリケーションを実行することは可能です。その後、ソース メールボックスを順番に開き、関連するメール アイテムをターゲット メールボックスに移動できます。

これにより、単一の巨大な操作で中央の場所からすべてのメールボックスを収集するバッチ ジョブを実行できます。ただし、メッセージが表示されるときにメッセージを移動することがタスクである場合は、ソース マシンにインストールされた Outlook アドインを介して、より分散化された方法でこれに対処することが、最終的にはより賢明なアプローチになる可能性があります。それらのアイテムを移動する動機についてもう少し教えていただければ、さらに良い解決策を思いつくことができるかもしれません.

集中型のハーベスター アプローチを採用する場合は、 Redemptionのようなヘルパー ライブラリを使用することを強くお勧めしますが、それ以外の場合は、タスクに対処するのに十分な知識を集めるまでにおそらく数か月かかるでしょう。RDOフレームワーク (Redemption Data Objects) は、できるだけ早く実行するのに特に適しています。

于 2008-12-12T14:56:21.303 に答える
0

メールボックスの関係は何ですか?それらは同じExchangeサーバー上にありますか?その場合、最善の策はMAPIを使用してメッセージをコピーすることです。そうでない場合は、メッセージをPSTまたは.msgファイルのコレクションにエクスポートできます。これは自動化する必要がありますか?

于 2008-12-11T13:20:26.560 に答える
0

「譲渡」とは具体的に何を指しますか?あるメールボックスから同じ Outlook プロファイル内にロードされた別のメールボックスにメールをドラッグ アンド ドロップするのと同じことについて話している場合は、このMailItem.Move方法を使用してください。

于 2008-12-11T18:23:00.630 に答える
0

次に必要なのは MAPI です。これはかなり複雑な API です。それについては、絶版になった本が 1 冊ありますが、それだけです。開始するのに最適な場所は、MFCMapi をダウンロードして、必要なことを行う方法を調べることです。たとえば、2 人のユーザーのメールボックスを開き、それらの間でメッセージをコピーします。次に、MFCMapi のソースを見て、それがどのように行われているかを確認し、そこから作業してください。

于 2008-12-12T12:42:23.600 に答える
0

Outloook API を使用している場合は、バックアップと復元がサポートされているはずです。したがって、一方のアカウントからメールをバックアップし、もう一方のアカウントで復元してください。これは私の最初の試みです。PS: API に詳しくありません。

于 2008-12-11T11:46:41.133 に答える