私は送信された電子メールのいくつかのタイプを処理するOutlookアドインを持っています。いくつかの種類の電子メールの場合は、フォームに情報を入力してから、ファイルシステムのディレクトリツリーにMSGとして電子メールをエクスポートする必要があります。VSTO Outlookアドイン - 送信されたアイテムへのハンドラが常に機能しない
私は、送信された電子メールにフラグ(userproperty)そのアドインは、電子メールを保存しなければならないかを知っている:アドインのスタートアップで
Private Sub Button1_Click(sender As Object, e As RibbonControlEventArgs) Handles Button1.Click
Dim oProperties As Outlook.UserProperties
Dim oProperty As Outlook.UserProperty
oMail = Globals.ThisAddIn.Application.ActiveInspector.CurrentItem
If Not oMail Is Nothing Then
oProperties = oMail.UserProperties
oProperty = oProperties.Add("SALVARAPIGES", Microsoft.Office.Interop.Outlook.OlUserPropertyType.olYesNo)
oProperty.Value = True
oMail.Save()
oMail.Send()
Else
MsgBox("Err")
Exit Sub
End If
End Sub
、私が持っている(抜粋):
Private Sub ThisAddIn_Startup() Handles Me.Startup
Dim sentItems As Outlook.Items
Dim sentFolder As Outlook.Folder
Dim paisapiges As String
Dim aux As String()
Dim ns As Microsoft.Office.Interop.Outlook.NameSpace
apigesIsLoaded = True
'adiciono um trigger para que sempre que for enviado um email e for do tipo SALVARAPIGES, ele fará o tratamento de salvar o email.
sentFolder = Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail)
sentItems = sentFolder.Items
AddHandler sentItems.ItemAdd, AddressOf itemadd
と私のitemaddルーチン:
Sub itemadd(ByVal NewEmailItem As Object)
Dim oProperties As Outlook.UserProperties
Dim salvaApiges As Boolean
Dim sentMessageItem As Outlook.MailItem = CType(NewEmailItem, Outlook.MailItem)
Dim mainForm As New formSalvarApiges()
salvaApiges = False
If Not sentMessageItem Is Nothing Then
oProperties = sentMessageItem.UserProperties
For Each pr As Outlook.UserProperty In oProperties
If pr.Name = "SALVARAPIGES" Then
salvaApiges = True
Exit For
End If
Next
If salvaApiges Then
mainForm.txtAssunto.Text = sentMessageItem.Subject
mainForm.sAction = "Acao01"
mainForm.sEntryId = sentMessageItem.EntryID
mainForm.ShowDialog()
mainForm.Close()
End If
End If
End Sub
メールにこの「SALVARAPIGES」ユーザプロパティがある場合は、ディレクトリツリーのMSGに保存する必要があります。しかし、半分のユーザーはこれが機能しないと言っています(フォームはポップされません)が、テストするたびに動作します。私はVSTOとその背後にあるすべてのコンセプトに非常に慣れています...誰でも私の方向性を指摘できますか?
私はNameSpace.SendAndReceiveメソッドを使用しようとしましたが、彼らは不平を続けています。
ありがとうございます!
があなたのより完全な答えをありがとうございましたが、最初の答えはまだ問題を解決するのに十分です私は彼に信用を与えるでしょう。しかし、ありがとうございました! – fferrandini