【问题标题】:Get properties of outlook emails获取 Outlook 电子邮件的属性
【发布时间】:2016-12-17 08:16:21
【问题描述】:

我的 c sharp 程序目前获取 Outlook 电子邮件并将它们导入数据集。但是,我只得到每封电子邮件的主题。

我正在使用Microsoft.Office.Interop.Outlook.Folder olCurrFolder;,我使用此变量来获取主题(olCurrFolder 从另一个循环中设置)。为了获得主题,我这样做:

intMailCount = olCurrFolder.Items.Count;

for (int i = 1; i <= intMailCount; i++)
{
    strSubject = olCurrFolder.Items[i].Subject;
    strEmailReceived = olCurrFolder.Items[i].Received;
}

如您所见,我也在尝试获取接收日期,但Items[i].Received 不起作用。当我在Items[i] 之后键入一个句点并且一条消息说它将在运行时解决时,智能感知不会拉出任何东西。我不知道其他字段叫什么(即接收日期、发件人、大小)。

是否有包含我要查找的字段名称的列表?

【问题讨论】:

    标签: c# outlook


    【解决方案1】:

    Outlook MailItem 对象的文档在这里:http://msdn.microsoft.com/en-us/library/aa210946(v=office.11).aspx

    您可以使用ReceivedTime 属性来获取接收的日期和时间。

    智能感知有时不适用于 VSTO 的原因是许多属性返回 dynamic。动态被视为支持所有可以想象的方法和属性的对象。这就是阻止智能感知工作的原因。如果你使用不存在的方法,它会编译,但在运行时会失败。

    我发现在 VSTO 中处理动态时,MSDN 文档非常宝贵。

    【讨论】:

    • 这正是我一直在寻找的,但在谷歌上找不到。仅供参考,在该页面的属性下,它有一个名为 ReceivedTime 的属性。此属性为我提供了一起接收的日期和时间,因此效果很好。对于尝试做同样事情的其他人,您必须像这样将 ToString() 放在后面:Items[i].ReceivedTime.ToString()
    • 哦,是的。我看到了一个属性列表,但没有看到上面的时间,所以我认为它不存在。我应该查看“属性”部分。 :)
    • 没什么大不了的,那些属性在那个页面上有点混乱,所以很容易忽略一些东西。而且,人们会假设“时间”是指时间而不是日期和时间。
    【解决方案2】:

    我就是这样做的

    for (int i = 1; i <= items.Count; i++)
    {
        if (items[i] is Outlook.MailItem)
        {
            SenderName = ((Outlook.MailItem)inbox.Items[i]).SenderName;
            SenderEmail =((Outlook.MailItem)inbox.Items[i]).SenderEmailAddress;
            Subject = ((Outlook.MailItem)inbox.Items[i]).Subject;
            Time = ((Outlook.MailItem)inbox.Items[i]).CreationTime.ToString();
    

    【讨论】:

    • 不要使用多点表示法。除了效率极低之外,在线 Exchange 模式下您还会用完 RPC 通道。仅检索一次作为循环开始的项目,并在完成后使用 Marshal.ReleaseComObject 释放它。
    【解决方案3】:

    如果您不想为每一行投射对象,您可以这样做:

            for (int i = 0; i < items.Count; i++)
            {
                var mailItem = items[i] as Outlook.MailItem;
                if (mailItem != null)
                {
                    SenderName = mailItem.SenderName;
                    //etc...
                }
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多