我在做exchange二次开发,现在需要获取到系统中所有帐户邮件,如何做?
有谁知道如何获取系统中所有帐户邮件,有什么操作步骤?我现在在outlook里面,该帐户有查看所有邮件的权限,可以获取到所有帐户的邮件,但是该帐号在我二次开发的地方,怎么获取到所有邮件呢?
现在在二次开发的程序里面,是获取的只有这个帐户的邮件.
--------------------编程问答-------------------- 你用什么接口访问邮件的?
Outlook Object Modal访问不了其他人的邮件
你必须使用以下几种接口才行:
a) WebDAV(如果是exchange 2007,必须是EWS)
b) MAPI
c) POP3
d) IMAP4
你会其中任何一种都可以访问所有人邮箱(前提是你有足够权限)
--------------------编程问答-------------------- 前提是用什么 WebDAv还是webService
WebDAv要访问他人邮件,必须要有完全权限,在访问路径里面加上对方账号即可
如
http://mail.test.com/otheraccount@test.com/收件箱/
如果是EWS,在调用之前需要设置访问文件夹,此处可设置对方邮箱账号,如下所示
:
DistinguishedFolderIdType distinguishedFolderIdType = new DistinguishedFolderIdType();
distinguishedFolderIdType.Id = distinguishedFolderIdName;
if (!string.IsNullOrEmpty(account))
{
distinguishedFolderIdType.Mailbox = new EmailAddressType();
distinguishedFolderIdType.Mailbox.EmailAddress = string.Concat(account, '@', _ExchangeConfig.MailDomain);
}
2:也可以使用模拟,可参考一下网址中的内容
http://msdn.microsoft.com/en-us/library/dd633680(EXCHG.80).aspx
如果是EWS, 那么微软新的Exchange WebService Manage API 可以简化开发的多
http://msdn.microsoft.com/en-us/library/dd633710(EXCHG.80).aspx --------------------编程问答-------------------- 哥们我现在也在做EXCHANGE2次开发。我的MSN:yang_chun2010@hotmail.com,QQ:284151723 看到了回复下好吗? --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- arong1234和ilik已经说的非常清楚了。 --------------------编程问答-------------------- 我也获取不到所有帐户的邮件,只能获取到自己邮箱的邮件 ,代码已经加上
EmailAddressType emailAddress = EmailAddressType.Factory.newInstance();
emailAddress.setEmailAddress(strAddress); emailAddress.setMailboxType(MailboxTypeType.MAILBOX);
distinguishedFolderId.setId(DistinguishedFolderIdNameType.INBOX);
distinguishedFolderId.setMailbox(emailAddress); --------------------编程问答-------------------- 获取的结果为
<xml-fragment ResponseClass="Error" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<m:MessageText>存储中找不到指定的对象。</m:MessageText>
<m:ResponseCode>ErrorItemNotFound</m:ResponseCode>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
</xml-fragment> --------------------编程问答-------------------- ews支持伪装的,你可以用一个创建一个帐号,给予这个帐号给以访问其他账户邮箱的权限。然后以这个特殊帐号通过ews访问你想访问邮箱。
补充:企业软件 , Exchange Server