【问题标题】:Outlook VSTO get Sender email and Sent time when email is sentOutlook VSTO 在发送电子邮件时获取发件人电子邮件和发送时间
【发布时间】:2017-06-11 00:20:07
【问题描述】:

我在功能区中有一个按钮,它调用以下代码。目的是为员工提供一个按钮,让他们点击既可以发送电子邮件,也可以将内容复制到剪贴板。 (长话短说 - 必须将所有发送给客户的电子邮件粘贴到另一个系统中。我无法直接在那里发送电子邮件。)

问题:我无法获取发件人姓名或实际发送时间。

假设:我猜 Outlook 在发送发送命令之前实际上并没有设置该值。发送时间也一样。 (我使用 Date.Now 的原因)。

附加信息:在我最初的直觉之外添加一个按钮来完成这两个操作的解决方案是可以接受的。

Public Sub OnTextButton(ByVal control As Office.IRibbonControl)
    Dim mailItem As Outlook.MailItem = Globals.ThisAddIn.Application.ActiveInspector().CurrentItem
    Dim email = "From: " & mailItem.Sender.Name & vbCrLf &
        "Sent: " & Date.Now.ToString("f") & vbCrLf &
        "To: " & mailItem.To & vbCrLf &
        "Subject: " & mailItem.ConversationTopic & vbCrLf & vbCrLf & mailItem.Body
    My.Computer.Clipboard.SetText(email)
    mailItem.Send()
End Sub

参考资料: https://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.mailitem_properties.aspx

【问题讨论】:

    标签: vb.net email outlook outlook-addin outlook-2016


    【解决方案1】:

    这是正确的:直到邮件实际发送并移动到已发送邮件文件夹时,才会设置发件人相关属性。

    你可以

    1. 在“已发送邮件”文件夹的Items.ItemAdd 事件中运行您的代码
    2. 检查Account.SendUsingAccount 属性(可以为空)并使用Account.SmtpAddress。如果未设置帐户,您可以假定使用 Namespace.Accounts 集合中的第一个帐户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 2015-05-03
      • 2012-02-04
      • 1970-01-01
      • 2010-09-25
      • 2017-01-07
      相关资源
      最近更新 更多