使用兑换访问共享邮箱,为Vb.net Outlook添加

时间:2012-11-16 07:02:48

标签: vb.net outlook-addin outlook-redemption

我正在使用Redemption处理Outlook添加,它必须将电子邮件从我的Outlook收件箱移动到指定的文件夹。 它工作正常,直到它为本地邮箱。 当我尝试在共享邮箱上执行相同操作时,从我的Outlook中它不起作用。 在我的Outlook上的含义我访问共享邮箱并尝试将邮件从共享邮箱“收件箱”移动到共享邮箱本身的文件夹。

我使用下面的代码。

oTempFolder = oRDOSession.GetSharedMailbox("mailbox name")

它抛出以下错误: System.InvalidCastException:无法将“Redemption.RDOStoreClass”类型的COM对象强制转换为接口类型“Redemption.RDOFolder”。此操作失败,因为对IID为“{15B8597F-0A55-4361-AE8B-1F690BC61EE4}”的接口的COM组件的QueryInterface调用由于以下错误而失败:不支持此类接口(HRESULT异常:0x80004002(E_NOINTERFACE))

我也尝试了邮箱名称和邮箱地址,没有任何帮助。

我尝试了下面的代码,在stackoverflow本身上找到了

store = _session.Stores.GetSharedMailbox("Example shared mailbox ");

但它并没有什么不同。

有人可以指导我这个吗?

1 个答案:

答案 0 :(得分:1)

经过一些研究和试验后,我找到了上述问题的解决方案。 下面的代码行是它的实际开始。

store = _session.Stores.GetSharedMailbox("Example shared mailbox ");

以下是在您需要查找的共享邮箱中查找文件夹的代码。

 Dim Rclass As Redemption.RDOStore
 Dim oTempFolders As Redemption.RDOFolders    
 Dim oTempFolder As Redemption.RDOFolder          
 Rclass = oRDOSession.Stores.GetSharedMailbox(aFolders(0))

 oTempFolders = Rclass.IPMRootFolder.Folders

 For i = 1 To oTempFolders.Count

   oTempFolder2 = oTempFolders.Item(i)

   If oTempFolder2.Name.ToLower = "folder name" Then
       oTempFolder = oTempFolder2
       Exit For
   End If
 Next

希望这可以帮助那些遇到这个问题的人。