Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Exchange 2k3 Serverskripte und EventSinks:Verschieben von Mails in andere Postfaecher

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

gegeben sind ein Exchange Server 2003 SP1 aus dem Small Business Server 2003 SP1 Standard Edition sowie das dazugehoerige Outlook 2003 SP1.

Ueber Exchange-Berechtigungen werden zusaetzliche Exchange-Postfaecher im Outlook des Benutzers geoeffnet.

Desweiteren wird das Recht "Senden als" zum Senden mit den Emailadressen der zusaetzlichen Postfaecher genutzt.

Die Problemstellung liegt darin, dass gesendete Mails immer beim eigenen Postfach im Ordner gesendete Objekte landen anstatt bei Nutzung des Rechtes "Senden als" im Postfach der jeweiligen Emailadresse.

Das sollte nach Kundenanforderung automatisiert erfolgen.

Es ist keine Loesung, per CC/BCC die Email nochmal an die "eigene" Emailadresse zu senden. Auch fallen das manuelle Verschieben der betreffenden Emails sowie eine Veraenderung des Betreffs (fuer die Zusammenarbeit mit Outlook-Regeln) als moegliche Loesungen weg.

Auch kann das nicht per Outlook-Regel erschlagen werden, da diese beim Versenden nicht das From-Field abfragen koennen.

Meine Recherchen ergaben hier als moegliche Loesungsansaetze Exchange Server-Skripte und die Programmierung von Event Sinks (jeweils in VBScript).

Hat hier jemand bereits Erfahrungen und koennte den Aufbau solcher Skripte fuer diese Anforderung erklaeren?

  • 2 Wochen später...
  • Autor

Es laesst sich loesen, indem VBA in Outlook genutzt wird. Als Beispiel ein Benutzer und das info Postfach:

Option Explicit

'Öffentlicht "Triggervariablen", zur Überwachung der Elemente in einem Ordner

'nur mit withevents ist eine Eventhandlerdeklaration möglich!

Public WithEvents oMeinPostfach_GesendeteObjekte_Elemente As Outlook.Items 'Triggerobjektliste, wird in App_startup befüllt

'diese muss nicht unbedingt mit Withevents deklariert werden, da ich dorthin nur verschiebe, diesen Ordner aber nicht! überwachen möchte

Public WithEvents oinfo_GesendeteObjekte_Elemente As Outlook.Items

Public WithEvents oinfo_GelöschteObjekte_Elemente As Outlook.Items

Public WithEvents oinfo_Posteingang_Elemente As Outlook.Items

Public WithEvents oMeinPostfach_GelöschteObjekte_Elemente As Outlook.Items

Public blnDeleteItem As Boolean

'Öffnetliche Variablen für Eventhandlerursprung und -ziel

Dim oMeinPostfach_GesendeteObjekte As MAPIFolder

Dim oinfoPostfach_GesendeteObjekte As MAPIFolder

Dim oinfo_GelöschteObjekte As MAPIFolder

Dim oinfoPostfach_GelöschteObjekte As MAPIFolder

Dim oinfoPostfach_Posteingang As MAPIFolder

Dim oMeinPostfach_GelöschteObjekte As MAPIFolder

Private Sub Application_Startup() 'läuft ab wenn OL startet

'Private Variablen (werden nicht mehr im Eventhandler gebraucht)

Dim oMapi As NameSpace

Dim oMeinPostfach As MAPIFolder

Dim oinfoPostfach As MAPIFolder

'Jetzt die privaten Variablen instanzieren

Set oMapi = Application.GetNamespace("MAPI")

'Hier Ihr Name: "Postfach - Müller, Günter"

Set oMeinPostfach = oMapi.Folders("Postfach - Müller, Günter")

'Hier der NAme von info: "Postfach -info"

Set oinfoPostfach = oMapi.Folders("Postfach - info")

'Jetzt die öffentlichen Variablen instanzieren

Set oMeinPostfach_GesendeteObjekte = oMeinPostfach.Folders("Gesendete Objekte")

Set oinfoPostfach_GesendeteObjekte = oinfoPostfach.Folders("Gesendete Objekte")

Set oinfoPostfach_Posteingang = oinfoPostfach.Folders("Posteingang")

Set oinfoPostfach_GelöschteObjekte = oinfoPostfach.Folders("Gelöschte Objekte")

'Set oinfoPostfach_Posteingang = oMeinPostfach.Folders("Posteingang")

Set oMeinPostfach_GelöschteObjekte = oMeinPostfach.Folders("Gelöschte Objekte")

'Jetzt Eventhandlerobjekte instanzieren

Set oMeinPostfach_GesendeteObjekte_Elemente = oMeinPostfach_GesendeteObjekte.Items

'Set oinfo_GesendeteObjekte_Elemente = oinfoPostfach_GesendeteObjekte.Items

Set oinfo_Posteingang_Elemente = oinfoPostfach_Posteingang.Items

'Set oinfo_GelöschteObjekte_Elemente = oinfoPostfach_GelöschteObjekte.Items

Set oMeinPostfach_GelöschteObjekte_Elemente = oMeinPostfach_GelöschteObjekte.Items

End Sub

'Jetzt der Eventhandler für mein Postfach mit der als withevents deklarierten Variable

Private Sub oMeinPostfach_GesendeteObjekte_Elemente_ItemAdd(ByVal Item As Object)

'Item ist das übergebene neue Element in oMeinPostfach_GesendeteObjekte

'Wenn es vom Typ Mailitem ist....

If TypeName(Item) = "MailItem" Then

Dim oNeuesElement As MailItem

Set oNeuesElement = Item

'... und wenn der Absender Info zwei ist (da ich im Sende als info!)

'prüfe SenderName und neu für Outlook 2003 SentOnBehalfOfName

If oNeuesElement.SenderName = "info" Or oNeuesElement.SentOnBehalfOfName = "info" Then

'..dann verschiebe ich

oNeuesElement.Move oinfoPostfach_GesendeteObjekte

End If

End If

End Sub

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.