Jump to content

Outlook: automatisches füllen der Postfach Absenderadresse


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

bevor jetzt Antworten kommen alá "Suchfunktion benutzen", möchte ich sagen, dass ich dies bereits gemacht habe und auf folgenden Beitrag von dem User iDiddi gestoßen bin:

http://www.mcseboard.de/ms-exchange-forum-80/benutzer-alle-gleicher-emailadresse-172902.html

 

Falls du da bist iDiddi hätte ich eine Frage zu deinen Script was den Absender automatisch in das Feld einträgt.

 

Das Script funktioniert soweit ganz gut, aber gibt es auch eine Möglichkeit das Script weitgehend anzupassen, sodass das "Von-Feld" mit dem jeweiligen Absender (Postfach) gefüllt wird auf dem man sich gerade befindet?

 

Beispiel:

Ich habe die E-Mail "Benutzer777@xyz.xy" und befinde mich, navigierend, auf dem Postfach "Service@xyz.xy". Dein Script füllt nur einen Absender in das "Von-Feld" und zwar den, der im Script konfiguriert wurde.

 

Ist es also möglich auf eine Art feststellen zu können wo sich der Nutzer gerade aufhält und so den Absender des "geöffneten Postfaches" in das "Von-Feld" ein zu tragen?

 

Ich hoffe ich konnte mich deutlich ausdrücken. :)

 

PS:

Ihr Anderen seid natürlich auch gefragt, wenn Ihr mir helfen könnte. Ich danke für jede Art von Hilfe, die zum Erfolg führen kann.

 

LG,

Fr0sT

Link zu diesem Kommentar

Puh! Das wird nicht einfach werden. Stelle mir vor, dass man noch eine Abfrage zwischen

If m_Inspector.CurrentItem.SentOnBehalfOfName = "" Then 'Wenn Absenderfeld leer, dann...

und

m_Inspector.CurrentItem.SentOnBehalfOfName = "info@domain.de" '...Name des Absenders hinzufügen...

macht. Könnte mit "GetSharedDefaultFolder" funktionieren. Müsste ich aber selber ausprobieren. Bin jetzt echt kein VBA-Spezi. Kann ich aber bei Gelegenheit mal zusammenbasteln :)

 

Oder versuch's einfach mal selbst. Der Objekt-Explorer ist sehr hilfreich ;)

Link zu diesem Kommentar

So. Hatte jetzt mal ein wenig Zeit. Gar nicht so einfach für einen Laien wie mich. Aber es klappt schon mal ganz gut (Ihr Programmier-Cracks da draußen: Bitte nicht lachen).

 

Leider funktioniert die Absender-zu-Postfach-Zuweisung nicht, wenn ein Suchordner ausgewählt wurde (dann landet man in der Fehlerroutine). Aber bei leerem Absenderfeld wird halt über den Standard-Account geschickt. Kann man also verschmerzen ;)

 

'Makro erstellt am 29.07.2011 durch iDiddi
'
'AUTOMATISCHES AUSFUELLEN DES VON-FELDES MIT DER E-MAIL-ADRESSE 
'ABHÄNGIG VOM AKTUELL AUSGEWÄHLTEN POSTFACH
'
   Private Sub m_Inspector_Activate()
   On Error GoTo Ende 'Verhindert, dass beim Öffnen anderer Outlook-Klassen (z.B. Kontakte) Fehler angezeigt werden
   Dim PFAbsender As String
   Dim Postfach As String
   Dim m As String
   Dim myOrdner As Object
   Dim myUnterordner1 As Object
   Dim myUnterordner2 As Object
   Dim myUnterordner3 As Object
   Dim myUnterordner4 As Object
   '...
   '...

   m = "Mapi"
   Set myOrdner = Application.ActiveExplorer.CurrentFolder


   If m_Inspector.CurrentItem.SentOnBehalfOfName = "" Then 'Wenn Absenderfeld leer, dann...

       If myOrdner = "" Then
           Postfach = "Postfach - 1"
           GoTo Weiter
       End If

       If myOrdner.Parent = m Then
           Postfach = myOrdner
           GoTo Weiter
       End If
       Set myUnterordner1 = myOrdner.Parent

       If myUnterordner1.Parent = m Then
           Postfach = myUnterordner1
           GoTo Weiter
       End If
       Set myUnterordner2 = myUnterordner1.Parent

       If myUnterordner2.Parent = m Then
           Postfach = myUnterordner2
           GoTo Weiter
       End If
       Set myUnterordner3 = myUnterordner2.Parent

       If myUnterordner3.Parent = m Then
           Postfach = myUnterordner3
           GoTo Weiter
       End If
       Set myUnterordner4 = myUnterordner3.Parent

       If myUnterordner4.Parent = m Then
           Postfach = myUnterordner4
           GoTo Weiter
       End If

       '...
       '...

'Falls die Ordnerstruktur noch tiefer sein sollte, kann man hier noch weitere Unterordner hinzufügen

Weiter:

       Select Case Postfach
           Case "Postfach - 1"
           PFAbsender = "Absender1@domain.de"
           Case "Postfach - 2"
           PFAbsender = "Absender2@domain.de"
           Case "Postfach - 3"
           PFAbsender = "Absender3@domain.de"
           Case "Postfach - xyz"
           PFAbsender = "xyz@domain.de"
           Case ""
           PFAbsender = "Absender1@domain.de"
       End Select

       m_Inspector.CurrentItem.SentOnBehalfOfName = PFAbsender '...Name des Absenders hinzufügen...
       m_Inspector.CurrentItem.BCC = " " 'Hilfsanpassung, da Absender sonst nicht hinzugefügt wird (weiß Gott, warum!?)
   End If
   Set m_Inspectors = Application.Inspectors
Ende:
End Sub

 

Wie gesagt: War alles mal eben schnell, schnell. Ist bestimmt noch verbesserungswürdig. Ich würde die Postfach-Abfrage z.B. noch in eine extra Sub-Routine packen. Aber für's erste sollte es reichen. Probier's halt aus :)

 

PS: Über Verbesserungsvorschläge würde ich mich freuen

bearbeitet von iDiddi
Link zu diesem Kommentar

Das mit dem Suchordner wurmt mich ja jetzt ein wenig :(

Leider funktioniert die Absender-zu-Postfach-Zuweisung nicht, wenn ein Suchordner ausgewählt wurde (dann landet man in der Fehlerroutine).

Kann hier vielleicht Jemand weiterhelfen? Es muss doch auch irgendwie möglich sein, herauszubekommen, wo sich der Suchordner befindet. Leider stoße ich so langsam an meine Grenzen.

 

@Fr0sTBlaZe: Und? Konntest Du schon testen?

Link zu diesem Kommentar
  • 3 Monate später...

Nun bin ich seit Wochen wegen anderer Projekte nicht auf dieser Seite anwesend gewesen und iDiddi war fleißig. Ich bekomme das Script aber irgendwie nicht zum Laufen.

 

Hab es einfach 1:1 kopiert und in Outlook VB hinzugefügt. Es meldet sich gar nichts. Bin auch irgendwie aus dem Thema raus um feststellen zu können woran es liegt.

 

Funktioniert das überhaut, wenn ich es 1:1 in This Outlook Session kopiere?

 

Gruß,

Fr0sT

Link zu diesem Kommentar

Hab es komplett deaktiviert - es geht nicht.

 

Was ich interessant finde ist das er folgenden Code verarbeiten kann:

[color="Red"]If Application.ActiveExplorer.CurrentFolder = "Postfach - XYZ" Then[/color]
       m_Inspector.CurrentItem.SentOnBehalfOfName = "XYZ@domaene.de" '...Name des Absenders hinzufügen...
       m_Inspector.CurrentItem.BCC = " " 'Hilfsanpassung, da Absender sonst nicht hinzugefügt wird (weiß Gott, warum!?)

Handelt sich um deinen Code iDiddi :)

 

Das funktioniert leider nur, wenn ich direkt auf dem Postfach bin (es markiert habe). Ich hab leider keinen Code gefunden von einem Unterordner das jeweils oberste Postfach (in dem Fall XYZ) auslesen zu können.

 

Letztendlich brauchen wir keine Umwege machen. Der Client soll den obersten Ordner ermitteln und so das Von-Feld füllen, da in der Prozedur z.B. der Name des Postfaches abgefragt werden kann.

Link zu diesem Kommentar

Hallo,

 

sicher das das Von-Feld bei Outlook 2010 für jedes Postfach eigenständig konfiguriert werden kann? Genauso wie das Verschieben der versandten Elemente in das jeweiige "Gesendete Objekte" des Postfaches?

 

Ich kann es leider nicht testen, da wir im Betrieb kein Office 2010 haben und sicherlich auch keine neuen Lizenzen kaufen werden. Der Umstieg auf eine andere Office Version ist derzeit auch gar nicht in Planung.

Link zu diesem Kommentar

Ich verstehe nicht genau, was Du meinst. Der Code ist ja dazu da, den obersten Ordner zu ermitteln. Da es keinen direkten Befehl gibt, muss ich über die Case-Anweisungen gehen. Der Code klappt bei mir mit OL2003. Der sollte bei Dir auch klappen. Hast Du Dich vielleicht bei dem Postfachnamen verschrieben? Der muss exakt gleich sein. Schau Dir auch noch die Variablen-Deklarationen nochmals genau an.

bearbeitet von iDiddi
Rechtschreibung :o
Link zu diesem Kommentar

Vielleicht sollte ich mal ein Beispiel bringen:

 

Also angenommen, Du hast zwei Postfächer in Outlook eingebunden.

 

Postfach1 = "Postfach - iDiddi"

von E-Mail: ididdi@domain.tld

 

Postfach2 = "Postfach - Fr0sTBlaZe"

von E-Mail: fr0stblaze@domain.tld

Wenn Du Dich jetzt im "Postfach - iDiddi" auf höchster Ebene befindest, heißt der übergeordnete (Parent) Eintrag "Mapi". Das ist der kleinste gemeinsame Nenner ;)

 

Das Makro fragt jetzt ab, ob der "Parent" vom aktuellen Ordner "Mapi" ist. Falls ja, habe ich das Postfach schon herausgefunden und weise dem die entsprechende E-Mail-Adresse (Case-Anweisung) zu.

 

Wenn ich mich jetzt allerdings in einem Unterordner befinde (z.B.: Posteingang), ist der Parent vom Parent auch wieder "Mapi". So hangel ich mich von Unterordner zu Unterordner durch, bis der Parent halt "Mapi" ist.

 

Ist natürlich furchtbar umständlich, leider habe ich keine bessere Lösung gefunden. Da gibt das Outlook-VBA nicht mehr her.

 

Jetzt müsstest Du nur die entsprechenden Variablen durch diese Daten ersetzen:

 

   Private Sub m_Inspector_Activate()
   On Error GoTo Ende 'Verhindert, dass beim Öffnen anderer Outlook-Klassen (z.B. Kontakte) Fehler angezeigt werden
   Dim PFAbsender As String
   Dim Postfach As String
   Dim m As String
   Dim myOrdner As Object
   Dim myUnterordner1 As Object
   Dim myUnterordner2 As Object
   Dim myUnterordner3 As Object
   Dim myUnterordner4 As Object

   m = "[b]Mapi[/b]"
   Set myOrdner = Application.ActiveExplorer.CurrentFolder


   If m_Inspector.CurrentItem.SentOnBehalfOfName = "" Then 'Wenn Absenderfeld leer, dann...

       If myOrdner = "" Then
           Postfach = "[b]Postfach - iDiddi[/b]"
           GoTo Weiter
       End If

       If myOrdner.Parent = m Then
           Postfach = myOrdner
           GoTo Weiter
       End If
       Set myUnterordner1 = myOrdner.Parent

       If myUnterordner1.Parent = m Then
           Postfach = myUnterordner1
           GoTo Weiter
       End If
       Set myUnterordner2 = myUnterordner1.Parent

       If myUnterordner2.Parent = m Then
           Postfach = myUnterordner2
           GoTo Weiter
       End If
       Set myUnterordner3 = myUnterordner2.Parent

       If myUnterordner3.Parent = m Then
           Postfach = myUnterordner3
           GoTo Weiter
       End If
       Set myUnterordner4 = myUnterordner3.Parent

       If myUnterordner4.Parent = m Then
           Postfach = myUnterordner4
           GoTo Weiter
       End If

Weiter:

       Select Case Postfach
           Case "[b]Postfach - iDiddi[/b]"
           PFAbsender = "[b]ididdi@domain.tld[/b]"
           Case "[b]Postfach - Fr0sTBlaZe[/b]"
           PFAbsender = "[b]fr0stblaze@domain.tld[/b]"
           Case ""
           PFAbsender = "[b]ididdi@domain.tld[/b]"
       End Select

       m_Inspector.CurrentItem.SentOnBehalfOfName = PFAbsender '...Name des Absenders hinzufügen...
       m_Inspector.CurrentItem.BCC = " " 'Hilfsanpassung, da Absender sonst nicht hinzugefügt wird (weiß Gott, warum!?)
   End If
   Set m_Inspectors = Application.Inspectors
Ende:
End Sub

 

Hast Du das genau so?

Link zu diesem Kommentar
  • 4 Wochen später...

@Fr0sTBlaZe: Irgendwie macht es keinen Spaß, Dir zu helfen :(

 

Mir ist klar, dass dies hier ein Forum ist und kein Live-Chat, aber wenn sich hier schon Jemand für Dich die Mühe macht und etwas programmiert, solltest Du wenigstens ein Feedback geben (Projekte hin oder her). Selbst wenn Du schreibst, dass Du es nicht gebrauchen konntest oder Dir Dein Anliegen nicht (mehr) wichtig ist!

 

Werde meine Lehren daraus ziehen.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...