当用户点击“发送”按钮将邮件项目移动到我的文件夹文件夹并停止发送功能时,我必须编写代码。 我通过以下代码实现了这一目标:
void Application_ItemSend(object Item, ref bool Cancel)
{
Outlook.MailItem mailItem = Item as Outlook.MailItem;
Cancel = true;
if (mailItem != null)
{
var attachments = mailItem.Attachments;
string folderPath =
Application.Session.
DefaultStore.GetRootFolder().FolderPath
+ @"\Outbox\My Outbox";
Outlook.Folder folder = GetFolder(folderPath);
if (folder != null)
{
mailItem.Move(folder);
}
}
}
我的问题是,当mailitem到达My Outbox文件夹时,我必须触发代码段。 我是VSTO和插件的新手。请告诉我如何实现这一目标。 任何帮助将受到高度赞赏。
答案 0 :(得分:1)
如果要检测项目何时添加到Outlook文件夹中,则需要使用ItemAdd的Items集合上的Folder事件。
以下是如何检测何时将MailItem添加到收件箱文件夹中的示例。 在ThisAddIn.cs文件中添加以下代码:
private Items _inboxItems;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
MAPIFolder inboxFolder = Application.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderInbox);
_inboxItems = inboxFolder.Items;
_inboxItems.ItemAdd += InboxItems_ItemAdd;
Marshal.ReleaseComObject(inboxFolder);
}
private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
Marshal.ReleaseComObject(_inboxItems);
}
private void InboxItems_ItemAdd(object item)
{
if (item is MailItem)
{
// Add your code here
}
}