9

それは私がC#を使用して電子メールを読むために使用しているものです:

outLookApp.NewMailEx += new ApplicationEvents_11_NewMailExEventHandler(outLookApp_NewMailEx);
            Outlook.NameSpace olNameSpace = outLookApp.GetNamespace("mapi");

olNameSpace.Logon("xxxx", "xxxxx", false, true);
Outlook.MAPIFolder oInbox  = olNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
Outlook.Items oItems  = oInbox.Items;
MessageBox.Show("Total : " + oItems.Count); //Total Itemin inbox
 oItems = oItems.Restrict("[Unread] = true");
 MessageBox.Show("Total Unread : " + oItems.Count); //Unread Items
 Outlook.MailItem oMsg;


 Outlook.Attachment mailAttachement;
 for (int i = 0; i < oItems.Count; i++)
 {
     oMsg = (Outlook.MailItem)oItems.GetFirst();

     MessageBox.Show(i.ToString());

    MessageBox.Show(oMsg.SenderName);
    MessageBox.Show(oMsg.Subject);
    MessageBox.Show(oMsg.ReceivedTime.ToString());
    MessageBox.Show(oMsg.Body);

私が直面している問題は、このアプリケーションがOutlookがマシン上で開いている場合にのみ機能することです。Outlookを閉じると、例外がスローされます。

サーバーは利用できません。この状態が続く場合は、管理者に連絡してください。

とにかくOutlookを開いたままメールを読むことはできますか?

4

6 に答える 6

2

Outlookを閉じると、これに遭遇する可能性があります。

また、このチュートリアルに従うことで、すべての正しい手順を確実に実行できます。

頑張ってください!

于 2008-11-19T13:31:52.380 に答える
0

Outlook をプロキシとして使用してもよろしいですか?

人々はC#でその ようなタスクを低レベルで処理しているようです(フレームワークに組み込みコンポーネントがないのは驚くべきことです...)

Mat の反応に関しては、Redemption は確かに優れた製品です (Outlook に到着したメールを解析するために使用されました) が、Outlook が実行されていないと機能するかどうかは疑問です。

于 2008-11-19T14:05:22.860 に答える
0

MAPI クライアントを使用してメールを取得し、MIME デコーダーを使用してそれらを読み取ります。どちらも lumisoft フレームワークに存在します。

http://www.lumisoft.ee/lswww/download/downloads/Net/

于 2012-02-21T20:54:51.440 に答える
0

コードにRedemption COM ライブラリを使用します。

于 2009-05-01T04:06:45.090 に答える
0

個人的には、Outlook をプロキシとして使用したくありません。最終的に Exchange ストアを監視する場合は、WebDav を使用します。Exchange サーバーがこれをサポートしている必要がありますが、サポートしている場合は単純な XML API です。API ビットは単純ですが、XML は非常に複雑です。しかし、これを少しのコードにカプセル化すると、使用するのは面倒です。

于 2008-11-19T14:42:22.520 に答える