【问题标题】:Outlook C# move an email into a mailbox associated with a MS365 GroupOutlook C# 将电子邮件移动到与 MS365 组关联的邮箱中
【发布时间】:2022-01-11 15:45:42
【问题描述】:

我正在编写一个 C# VSTO 插件来提供一些电子邮件归档助手功能。我不知道如何以编程方式将收到的电子邮件移动到与 MS365 组关联的对话邮箱中。组本身是作为 sharepoint 现代团队网站的一部分创建的。 我可以手动将电子邮件拖到组邮箱,但我找不到在 C# 中获取文件夹对象的方法。

Microsoft® Outlook® for Microsoft 365 MSO(版本 2111 Build 16.0.14701.20254)64 位。

【问题讨论】:

    标签: c# outlook-addin


    【解决方案1】:

    您可以使用 Outlook 项目的Move 方法。

    
    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        this.Application.NewMail += new Microsoft.Office.Interop.Outlook.
            ApplicationEvents_11_NewMailEventHandler
            (ThisAddIn_NewMail);
    
    }
    
    private void ThisAddIn_NewMail()
    {
        Outlook.MAPIFolder inBox = (Outlook.MAPIFolder)this.Application.
            ActiveExplorer().Session.GetDefaultFolder
            (Outlook.OlDefaultFolders.olFolderInbox);
        Outlook.Items items = (Outlook.Items)inBox.Items;
        Outlook.MailItem moveMail = null;
        items.Restrict("[UnRead] = true");
        Outlook.MAPIFolder destFolder = inBox.Folders["Test"];
        foreach (object eMail in items)
        {
            try
            {
                moveMail = eMail as Outlook.MailItem;
                if (moveMail != null)
                {
                    string titleSubject = (string)moveMail.Subject;
                    if (titleSubject.IndexOf("Test") > 0)
                    {
                        moveMail.Move(destFolder);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
    

    我想目标文件夹在 Outlook 中的其他商店中列出。因此,您可以使用Namespace 类的Stores 属性来查找目标文件夹。

    【讨论】:

    • 移动功能也是我的第一个想法。问题是我无法将目标文件夹对象用作目标。当我中断代码并查看本地窗口中的选定项目时,我手动移动的消息没有存储。 Item.parent.store 变量为空。父级确实有一个 StoreID,但我不知道是否/如何使用它来获取目标文件夹对象。
    • Item 父级确实有一个 FolderPath "\\\\email@addres.com\\Conversations\\JV22-12345 Test Site 2"。同样,我不知道是否/如何将其翻译到文件夹中。我尝试遍历使用命名空间默认存储获得的根文件夹的文件夹对象,但“对话”不作为子文件夹存在。
    猜你喜欢
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    相关资源
    最近更新 更多