C# Outlook.MSG文件包含多个收件人,然后to属性为空返回null

C# Outlook.MSG文件包含多个收件人,然后to属性为空返回null,c#,.net,outlook,C#,.net,Outlook,尝试使用dllMicrosoft.Office.Interop.Outlook15.0.0.0版读取.Net中的.msg文件时,会遇到读取大型收件人的问题 场景: 如果.msg文件包含的收件人较少,例如少于300,则To属性中的值显示实际收件人 如果.msg文件有300多个收件人,则MailItem对象的To属性将获得null不显示空白 图书馆是否对收件人的阅读有任何限制,或者我缺少的任何东西来处理更多的收件人 Microsoft.Office.Interop.Outlook.Appli

尝试使用dll
Microsoft.Office.Interop.Outlook
15.0.0.0版读取.Net中的.msg文件时,会遇到读取大型收件人的问题

场景:

  • 如果.msg文件包含的收件人较少,例如少于300,则
    To
    属性中的值显示实际收件人
  • 如果.msg文件有300多个收件人,则
    MailItem
    对象的
    To
    属性将获得
    null
    不显示空白
  • 图书馆是否对收件人的阅读有任何限制,或者我缺少的任何东西来处理更多的收件人

        Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();
        Microsoft.Office.Interop.Outlook.Application();
    
        var item = app.Session.OpenSharedItem(msgfilepath) as Microsoft.Office.Interop.Outlook.MailItem;
        string message = item.Body
        string recipients = item.To   
       //This To property gets null in case file has large recipients list.
    
    更改:

    string recipients = item.To 
    
    为此:

    string recipients = string.Join(";", item.Recipients);
    
    结果将是一个相同的分号分隔字符串,但第二个将始终有效

    官方文档没有提到对.To属性的限制,但它确实告诉您使用收件人:

    尝试在收件人集合上循环:@TimWilliams。是的,尝试使用Recipients属性并获取收件人集合,但我的实际问题不是仅将其置于大型收件人的
    属性中,如果收件人数量较大,则需要循环访问收件人集合。这就是问题的本质,而且效果很好:如果您只想要“To”项目,请查看每个收件人的
    Type
    属性。为什么这个问题被标记为vba或outlook vba?很好的呼叫@BrakNicku。提供的代码是C#。我换了标签。