Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取outlook电子邮件C#net中最顶层的线程_C#_Outlook_Interop - Fatal编程技术网

获取outlook电子邮件C#net中最顶层的线程

获取outlook电子邮件C#net中最顶层的线程,c#,outlook,interop,C#,Outlook,Interop,是否可以只获取outlook电子邮件的最顶端线程 假设电子邮件看起来像这样 你好,约翰, 是的,我们可以做到!!我希望问候, 此处签名 发件人:John Doe发送日期:2015年11月4日星期三上午6:02 致: to@email.com 抄送:CC@email.com 主题:如何得到这个? 嗨,鲍勃, 什么东西 我只需要得到粗体文本。可能吗?我收到电子邮件的代码: OutLook.Application oApp; OutLook._NameSpac

是否可以只获取outlook电子邮件的最顶端线程

假设电子邮件看起来像这样

你好,约翰,
是的,我们可以做到!!我希望

问候,

此处签名


发件人:John Doe
发送日期:2015年11月4日星期三上午6:02
致: to@email.com
抄送:CC@email.com
主题:如何得到这个?
嗨,鲍勃,
什么东西

我只需要得到粗体文本。可能吗?我收到电子邮件的代码:

        OutLook.Application oApp;
        OutLook._NameSpace oNS;
        OutLook.MAPIFolder oFolder;
        OutLook._Explorer oExp;
    try
    {
        oApp = new OutLook.Application();
        oNS = (OutLook._NameSpace)oApp.GetNamespace("MAPI");
        oFolder = oNS.GetDefaultFolder(OutLook.OlDefaultFolders.olFolderInbox);
        oExp = oFolder.GetExplorer(false);
        oNS.Logon(Missing.Value, Missing.Value, false, true);

        foreach (OutLook.MailItem mail in oFolder.Items.Restrict("[UnRead] = true"))
        {
            var subject = mail.Subject;
            var body = mail.Body; //But I only need the bolded text and not the entire thread...
            var x = mail.HTMLBody;
            var y = mail.RTFBody;
            var userName = string.Empty;
            var attachment = mail.Attachments;
            OutLook.ExchangeUser exUser = mail.Sender.GetExchangeUser();
            if (exUser != null)
            {
                userName = exUser.PrimarySmtpAddress;
            }
            else
            {
                userName = mail.SenderEmailAddress;
            }
            mail.UnRead = false;
            mail.Save();
        }
    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        oApp = null;
        oNS = null;
        oFolder = null;
        oExp = null;
    }

您可以尝试寻找下一条消息已经开始的线索,如标题信息或水平规则,但我认为没有API,因为大多数邮件客户端只是将原始消息的正文复制到回复中,并在顶部添加信息,没有通用的消息分隔符来标识正文中的单个消息,它完全依赖于创建消息的客户端。。。在我的研究中,我发现并认为会话课是关键,但事实并非如此。。。我希望电子邮件线程是在一个数组或什么。。。所以我想不是。我也在寻找那条横线,但它只有在电子邮件以HTML而不是AsPlainText发送时才出现,那条线被替换为----原始文本----或其他什么。。。