如果您嘗試使用.Net,那麼您可能需要使用Outlook對象,如在MSDN上描述in the conclusion to the Using MAPI to Create Outlook 2007 Items文章所述。 CDO和RDO旨在用於VBscript和其他非託管代碼。
使用此方法,您正在使用C#來利用給定郵箱中的Outlook 2007(或更好)自動化。是的,它需要一個對目標郵箱具有適當訪問權限的帳戶,並且您必須迭代郵箱並自行瀏覽文件夾樹。
他們給出的例子是這樣的:
private void AddContact()
{
try
{
Outlook.ContactItem oContact =
Application.CreateItem(
Outlook.OlItemType.olContactItem)
as Outlook.ContactItem;
oContact.FirstName = "Jacqueline";
oContact.LastName = "Haddad";
oContact.Initials = "J.H.";
oContact.CompanyName = "Microsoft";
oContact.Email1Address = "[email protected]";
oContact.Email1AddressType = "SMTP";
oContact.Email1DisplayName =
"Jacqueline Haddad ([email protected])";
oContact.BusinessAddressStreet = "1 Microsoft Way";
oContact.BusinessAddressCity = "Redmond";
oContact.BusinessAddressState = "WA";
oContact.BusinessAddressPostalCode = "95802";
oContact.BusinessAddressCountry = "USA";
oContact.BusinessTelephoneNumber = "800-555-1212";
oContact.WebPage = "http://www.codeplex.com/mfcmapi";
oContact.Body = "This is a sample note.";
oContact.Save();
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
完全獨立會產生問題,但請看看使用Outlook的CDO/RDO機制的Redemption Data Objects。它確實需要安裝Outlook,但不需要運行它(它使用庫,它不會自動運行它)。我們最近開始使用它,性能比EWS好得多。 http://www.dimastr.com/redemption/rdo_introduction.htm即使您不使用它,也可以獲取OutlookSpy的(免費)副本,它將公開大量有關Exchange如何在內部工作的信息(向工具欄添加工具欄展望) – Basic
我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –
@John Saunders:感謝您爲遵守法規而作出的努力。在我的特殊情況下,我覺得從標題中刪除的「.Net」對於強調我不需要接收C++/java等解決方案是必不可少的,但只需要.Net。我想有些人可能會認爲這是明顯的,因爲「.net」標籤。標籤是否具有「僅」XOR「很高興」的含義......除非另有明確解釋? – Miha