C#Outlook;创建文件夹后无法移动电子邮件
问题描述:
我的应用程序应该发送一些电子邮件到某个目的地。该操作后,我想自动将已发送的邮件移动到特定的文件夹(基于邮件附件中的文档类型)。如果文件夹不存在,那么程序必须创建它,然后将邮件移动到新创建的文件夹中。问题是,在我创建一个新文件夹并成功将邮件成功移动到第一次之后,然后当我发送应该移动到所述文件夹的邮件时,程序没有看到该文件夹。事实上,文件夹方法根本不返回任何文件夹。坦白说,我不知道什么是错的。C#Outlook;创建文件夹后无法移动电子邮件
在它说的调试检查parentFolder.Folders“枚举没有结果”的时候
我不知道我是否应该在方法createFolder创建文件夹(后做什么更多的即是这样,更新文件夹列表...)
这里是我的代码:
public void moveEmails(string itemType, Boolean itemSent, Outlook.MailItem objMail)
{
Outlook.MAPIFolder folderParent = objMail.Parent as Outlook.MAPIFolder;
Outlook.Folders folders;
Boolean notMoved = true;
objMail.UserProperties.Add("TransferredBy", Outlook.OlUserPropertyType.olText, true, Outlook.OlUserPropertyType.olText);
objMail.UserProperties["TransferredBy"].Value = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
objMail.Save();
if (folderParent.Name != "Inbox")
folderParent = digForInbox(folderParent);
folders = folderParent.Folders;
if (!itemSent)
itemType = "NOT DELIVERED";
foreach (Outlook.MAPIFolder folder in folders)
{
if (folder.Name == itemType)
{
objMail.Move(folder);
notMoved = false;
}
}
if (notMoved)
createFolder(itemType,objMail, folderParent);
}
public void createFolder(string itemType, Outlook.MailItem objMail, Outlook.MAPIFolder folderParent)
{
Outlook.MAPIFolder folderNew;
folderNew = folderParent.Folders.Add(itemType, Outlook.OlDefaultFolders.olFolderInbox) as Outlook.MAPIFolder;
objMail.Move(folderNew);
}
private Outlook.MAPIFolder digForInbox(Outlook.MAPIFolder folder)
{
Boolean isNotInbox = true;
while(isNotInbox)
{
if(folder.Name != "Inbox")
{
folder = folder.Parent as Outlook.MAPIFolder;
}
else
{
isNotInbox = false;
}
}
return folder;
}
答
我已经找到了答案,我的问题:
该问题类似于链接中的问题。我没有想象,因为我的邮箱主要是共享那些会影响它的性能比任何其他方式(由于连接到Exchange服务器)
张贴这作为一个答案
你可以清理你的代码有点用'使用Microsoft.Office.Interop;' – 2014-12-04 21:45:19
[热到移动项目中OutLook](http://msdn.microsoft.com/en-us/library/ms268996.aspx) – MethodMan 2014-12-04 21:52:53
在哪一行是抛出的异常? – Quackmatic 2014-12-04 21:57:57