如果您尝试使用.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