Fr0sTBlaZe 10 Geschrieben 22. Juli 2011 Melden Teilen Geschrieben 22. Juli 2011 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 Zitieren Link zu diesem Kommentar
iDiddi 27 Geschrieben 22. Juli 2011 Melden Teilen Geschrieben 22. Juli 2011 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 ;) Zitieren Link zu diesem Kommentar
iDiddi 27 Geschrieben 22. Juli 2011 Melden Teilen Geschrieben 22. Juli 2011 Ach ja. Falls Du dafür selbst eine Lösung gefunden hast, wäre es nett, den Code hier im Board zu veröffentlichen. Dann haben alle was davon. Es lebe der Open Source-Gedanke ;) Zitieren Link zu diesem Kommentar
Fr0sTBlaZe 10 Geschrieben 25. Juli 2011 Autor Melden Teilen Geschrieben 25. Juli 2011 Wenn ich das könnte, würde ich es selbst schon probiert haben ;) Habe schon lange als Nicht-Programmierer gebraucht um deinen Code erstmal ein wenig zu verstehen :D Sollte ich eine freie Minute haben kann ich es nochmal probieren, aber ich glaube weniger das ich ohne Kenntnissen erfolgreich sein werden. Gruß, Fr0sT Zitieren Link zu diesem Kommentar
iDiddi 27 Geschrieben 29. Juli 2011 Melden Teilen Geschrieben 29. Juli 2011 (bearbeitet) 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 29. Juli 2011 von iDiddi Zitieren Link zu diesem Kommentar
iDiddi 27 Geschrieben 2. August 2011 Melden Teilen Geschrieben 2. August 2011 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? Zitieren Link zu diesem Kommentar
Fr0sTBlaZe 10 Geschrieben 10. November 2011 Autor Melden Teilen Geschrieben 10. November 2011 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 Zitieren Link zu diesem Kommentar
iDiddi 27 Geschrieben 10. November 2011 Melden Teilen Geschrieben 10. November 2011 Ja. Du musst nur die Makrosicherheit runterschrauben. Dann sollte es klappen. Zitieren Link zu diesem Kommentar
Fr0sTBlaZe 10 Geschrieben 10. November 2011 Autor Melden Teilen Geschrieben 10. November 2011 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. Zitieren Link zu diesem Kommentar
GuentherH 61 Geschrieben 10. November 2011 Melden Teilen Geschrieben 10. November 2011 Hallo. Kurze Zwischenfrage. Warum verwendet ihr nicht Outlook 2010, da ist diese Funktion bereits eingebaut. LG Günther Zitieren Link zu diesem Kommentar
Fr0sTBlaZe 10 Geschrieben 10. November 2011 Autor Melden Teilen Geschrieben 10. November 2011 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. Zitieren Link zu diesem Kommentar
iDiddi 27 Geschrieben 10. November 2011 Melden Teilen Geschrieben 10. November 2011 (bearbeitet) 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 10. November 2011 von iDiddi Rechtschreibung :o Zitieren Link zu diesem Kommentar
iDiddi 27 Geschrieben 10. November 2011 Melden Teilen Geschrieben 10. November 2011 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? Zitieren Link zu diesem Kommentar
iDiddi 27 Geschrieben 9. Dezember 2011 Melden Teilen Geschrieben 9. Dezember 2011 @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. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.