Ich entschied mich dazu, EWSOofUtil.dll zu verwenden und ein externes Powershell-Skript zu erstellen, um meinen Text in AppointmentItem an die Nachricht zu übergeben. Die EWSOofUtil.dll setzt die Abwesenheit mit EWS.
So ändern Sie die Einstellungen für die Abwesenheit in Outlook 2010 über VBA
Ich arbeite für ein MSP und wir haben ein einziges Postfach, mit dem wir eingehende E-Mail-Anfragen an unser Ticketsystem bearbeiten. Ich habe ein VBA-Skript erstellt, das neue E-Mails und dergleichen ausführt und verarbeitet. Wir verwenden Outlook 2010 (32-Bit) und verwenden Office 365 [Exchange 2013] .
Wir möchten jetzt eine Abwesenheitsnachricht in der Mailbox für spätere Stunden und Feiertage automatisch aktivieren und deaktivieren. Ich habe bereits den Großteil des Codes geschrieben, um nach laufenden Besprechungen zu suchen, durch die das Abwesenheitsergebnis beim Start / Ende der Besprechungen aktiviert und deaktiviert werden könnte. Auf diese Weise können wir jeden Tag um 17.00 Uhr eine Besprechung einrichten, um die OOF-Nachricht einzuschalten, und um 4 Uhr morgens, um sie zu deaktivieren. Dies funktioniert auch mit All Day Events (z. B. Feiertage).
Das einzige Problem, das ich habe, ist das Einstellen der eigentlichen OOF-Nachricht zum Aktivieren / Deaktivieren und Ändern des Nachrichtentexts. Wir möchten den Nachrichtentext auf Basis von festlegen können
Im Folgenden sind die Ausschnitte, die ich habe, die den OOF-Status erhalten und OOF basierend auf verschiedenen Suchvorgängen, die ich durchgeführt habe, aktivieren / deaktivieren. Anscheinend wäre CDO 1.21 der einfachste Weg, aber Outlook 2010 scheint CDO 1.21 nicht zu unterstützen.
OOF-Status erwerben
Private Function QOA_GetOOFStatus() Dim oNS As Outlook.NameSpace Dim oStores As Outlook.Stores Dim oStr As Outlook.Store Dim oPrp As Outlook.PropertyAccessor Dim OOFStatus As Boolean OOFStatus = False Set oNS = Application.GetNamespace("MAPI") Set oStores = oNS.Stores For Each oStr In oStores If oStr.ExchangeStoreType = olPrimaryExchangeMailbox Then Set oPrp = oStr.PropertyAccessor OOFStatus = oPrp.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x661D000B") End If Next tempValue = OOFStatus QOA_GetOOFStatus = OOFStatus End Function
Aktivieren / Deaktivieren von OOF mit Textnachricht
Const PR_OOF_STATE = "http://schemas.microsoft.com/mapi/proptag/0x661D000B" Dim oStore As Outlook.Store, oProp As Outlook.PropertyAccessor Dim oStorageItem As Outlook.StorageItem Set oStorageItem = Application.Session.GetDefaultFolder(olFolderInbox).GetStorage("IPM.Note.Rules.OofTemplate.Microsoft", olIdentifyByMessageClass) oStorageItem.Body = "I am out of the office!" oStorageItem.Save For Each oStore In Session.Stores If oStore.ExchangeStoreType = olPrimaryExchangeMailbox Then Set oProp = oStore.PropertyAccessor oProp.SetProperty PR_OOF_STATE, True End If Next Set olkIS = Nothing Set olkPA = Nothing
Ich vermute, es gibt etwas mit den internen und externen OOF-Antworten von Exchange 2010, 2013 zu tun.
Ich bin nicht dagegen, ein externes Programm auszuführen, das OOF-Meldungen setzt.
Irgendwelche Vorschläge oder Gedanken, wie ich vorgehen kann? Ich würde es hassen, aufgeben zu müssen, wenn ich nur den Weg finde, OOF zu deaktivieren / aktivieren!
1 Antwort auf die Frage
Verwandte Probleme
-
2
Konvertieren Sie Excel 4.0-Makro in VBA
-
3
Fixieren Sie ein (Heute) Datum in Excel
-
4
Excel 2007 | Entfernen Sie leere Felder aus den Pivot-Tabellen
-
2
Wie würde ein Outlook 2007-Makro zum Automatisieren des Einfügevorgangs - unformatierter Text ausseh...
-
4
Öffnen Sie mehrere Instanzen von Excel ohne PERSONAL.xlsb-Sperrnachricht
-
1
Verhindern, dass andere Outlook-Empfänger Inhalte aus Ihrer Nachricht weiterleiten, drucken oder kop...
-
5
Wählen Sie eine gesamte Spalte ohne Kopfzeile in einem Excel-Makro aus
-
1
Stellen Sie das Blattschutzkennwort in Excel wieder her
-
2
Wie richte ich gefilterte Abwesenheitsantworten in Outlook 2007 ein?
-
2
Excel VBA: So löschen Sie eine Auswahl, ohne das Arbeitsblatt zu aktivieren