我有这个例程从Outlook商店获取特定文件夹:
// Property Tag of SentFolder
string propertyName = "http://schemas.microsoft.com/mapi/proptag/0x35E40102";
Outlook.Folders folders = store.GetRootFolder().Folders;
object entry = propertyAccesor.GetProperty(propertyName);
defaultFolderEntryID = propertyAccesor.BinaryToString(entry);
if (!string.IsNullOrEmpty(defaultFolderEntryID))
{
foreach (Outlook.Folder defaultFolder in folders)
{
if (defaultFolder.EntryID == defaultFolderEntryID)
{
folder = defaultFolder;
break;
}
else
Marshal.ReleaseComObject(defaultFolder);
}
}
Marshal.ReleaseComObject(folders);
Marshal.ReleaseComObject(store);
我有收件箱中所有文件夹的属性标签,Anybody知道收件箱文件夹的属性标签是什么?或任何其他方式获取收件箱文件夹而不使用单词"收件箱"。
目前我使用此例程来获取收件箱文件夹,但它依赖于Outlook语言:
public Outlook.Folder GetInboxFolder(Outlook.Store store)
{
Outlook.Folders folders = store.GetRootFolder().Folders;
foreach (Outlook.Folder f in folders)
{
if (f.Name.ToUpper().Contains("INBOX"))
return f;
}
return null;
}
如果Outlook使用的语言不是英语,则此例程不起作用。
答案 0 :(得分:0)
首先,收件箱没有这样的标签 - 可以有多个收件箱。例如。常规邮件(IPM.*
)转到收件箱文件夹,但IPC.*
邮件会转到商店的根文件夹(对最终用户不可见)。
在扩展MAPI级别(C ++或Delphi)上,您需要调用IMsgStore :: GetReceiveFolder或使用从IMsgStore :: GetReceiveFolderTable返回的MAPI表。您可以在OutlookSpy中使用这些内容(单击IMsgStore按钮)。
如果您使用的是Outlook 2010或更高版本,则可以使用Store。GetDefaultFolder(olFolderInbox)方法。
如果您遇到Outlook 2007,可以使用Redemption及其RDOStore。GetDefaultFolder(olFolderInbox)方法(适用于所有版本的Outlook)。