Outlook VSTO获取发件人电子邮件和发送电子邮件的时间

问题描述:

我在功能区中有一个按钮,用于调用以下代码。目的是为员工提供一个按钮来单击它们发送电子邮件并将内容复制到剪贴板。 (长话短说 - 必须将发送给客户端的所有电子邮件粘贴到另一个系统中,我无法直接在此处发送电子邮件。)Outlook VSTO获取发件人电子邮件和发送电子邮件的时间

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

假设:我猜Outlook直到发送send命令才真正设置该值。发送时间相同。 (我使用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

这是正确的:发件人相关的属性未设置直到该消息实际发送并移动到发送邮件文件夹。

您可以

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