2017-01-25 14 views
1

以下のコードを呼び出すリボンのボタンがあります。その目的は、電子メールを送信し、その内容をクリップボードにコピーする、クリックするボタンを従業員に与えることです。 (長い話をすると、クライアントに送信されたすべてのメールを別のシステムに貼り付ける必要があります。メールを送信するだけのアクセス権はありません)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

答えて

2

:メッセージが実際に送信し、送信済みアイテムフォルダに移動さ​​れるまで、送信者関連のプロパティが設定されていません。あなたはどちらか

  1. は、送信済みアイテムフォルダ
  2. Items.ItemAddイベントにコードを実行することができます

    Account.SendUsingAccountプロパティをチェックします(nullも可能)とAccount.SmtpAddressを使用しています。アカウントが設定されていない場合は、Namespace.Accountsコレクションの最初のアカウントが使用されていると仮定できます。

関連する問題