2016-06-08 9 views
0

Ich arbeite an einem Outlook-Addin, das den Benutzer auffordert, eine E-Mail zu speichern, nachdem es gesendet wird.Outlook ItemAdd Ereignis wirft auch mit Synchronisierung

Funktioniert gut, bis der Benutzer die E-Mail mit seinem Telefon gesendet und den gesendeten Nachrichtenordner auf dem Desktop des Benutzers synchronisiert hat. Wie kann ich den Benutzer nur auffordern, wenn die E-Mail auf seinem Desktop gesendet wird?

So kann ich überprüfen, ob die E-Mail nur vom aktuellen Gerät gesendet wurde.

Vielen Dank.

Lösung

Raise zwei Ereignisse:

.ItemSend =>

mail.UserProperties.Add("NameUserProperty", OlUserPropertyType.olYesNo); 
mail.UserProperties["NameUserProperty"].Value = true; 
mail.Save(); 

.ItemAdd (Sent Ordner) =>

if(mail.UserProperties["NameUserProperty"].Value == true) 
{ 
// record message 
} 

Antwort

1

Ich denke, die einzige Möglichkeit, richtig zu Erfassen Sie das, indem Sie zum Zeitpunkt des Sendens des Elements eine Markierung setzen (MailItem.Send) und dann eine Überwachung für die gesendete Nachricht festlegen Der Ordner "Items" sucht nach einer Nachricht mit demselben Betreff, wenn sie dem Ordner hinzugefügt wird (über ItemAdd).

+0

Ja, ich werde eine UserProperty für das Ereignis .ItemSend festlegen. Wenn Mail im gesendeten Ordner .ItemAdd-Ereignis hinzugefügt wird, überprüfe ich, ob die userproperty existiert. Danke – mausinc

1

Verwenden Sie das Ereignis Application.ItemSend - es wird nur für die Nachrichten ausgelöst, die von der lokalen Instanz von Outlook gesendet wurden.

+0

Das Problem ist, dass Sie die gesendeten Daten nicht haben, weil die E-Mail immer noch in der Verfassung ist – mausinc

+0

Meinst du die MailItem.Sent Eigenschaft? Alles andere wird da sein. –

+0

Ja, unser Kunde möchte die Nachricht mit dem gesendeten Datum aufzeichnen. – mausinc

Verwandte Themen