Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Outlook, VBA, Ordner aus bestimmten Store zuweisen

Frage Entwicklung VB for Applications

Mitglied: bigfudge

bigfudge (Level 1) - Jetzt verbinden

01.10.2014, aktualisiert 09:43 Uhr, 1781 Aufrufe, 17 Kommentare, 2 Danke

Hi Leute,

Das Thema wurde in einem anderen Thread schon angegrenzt, hatte mir dem eigentlichen Thema nichts mehr zutun, daher erstelle ich hier einen neuen Thread. Falls es wen interessiert hier der Link dazu: http://www.administrator.de/frage/-250389.html

Ich will eigentlich nur den Folder aus einem Store, am betroffenen Computer sind in Outlook 2 Mailadressen aktiv (privat + hotline) zuweisen.

Teste das z.Z. bei mir, wobei ich nur einen Store bzw. e-Mail-Adresse konfiguriert habe, sollte natürlich aber trotzdem funktionieren.

bisher sieht das ganze so aus:

01.
 Set Inbox = Application.Session.Stores("vorname.nachname@firma.com").GetRootFolder.Folders("BeispielOrdner") 
der Ordner den ich zuweisen will, liegt auf der selben Ebene wie die Inbox.

Getriggert wird das Makro bei jedem Maileingang. Ich erhalte dann den Fehler in o.g. Zeile: Run-time error '-2147221233, the Operation failed. An object could not be found.

EDIT: mit
01.
Set Inbox = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders("FolderBeispiel")
funktioniert es

EDIT2: Es ist ein Exchange Server im Einsatz, falls das einen Einfluss darauf hat

viele Grüße,
fudge
Mitglied: colinardo
01.10.2014, aktualisiert um 09:16 Uhr
Moin fudge,
du sagtest der Ordner liegt auf der selben Ebene wie der Posteingang, dann hast du dich im vorigen Post falsch ausgedrückt; du meintest wohl es ist ein Unterordner des Posteingangs !! In diesem Fall sieht das natürlich so aus:
Set Inbox = Application.Session.Stores("vorname.nachname@firma.com").GetRootFolder.Folders("Posteingang").Folders("BeispielOrdner")
Grüße Uwe
Bitte warten ..
Mitglied: bigfudge
01.10.2014, aktualisiert um 09:22 Uhr
Moin colinardo,

Ne also ich habe das ganze auf Englisch. Der Ordner liegt auf der selben Ebene wie die Inbox (= Posteingang?)

Also hier steht bei mir in Outlook:

oberste Ebene:

Mailxbox - Name, Vorname

nächste Ebene:
- Deleted Items
- Drafts
- Inbox
- FolderDenIchWill


Wenn ich Rechtsklick auf die Mailbox mache (oberstes Element, ist das der Store?), Eigenschaften, Advanced steht unter General der Microsoft Exchangeserver: outlook.firma.com und die Mailbox: Name, Nachname

Hat das vllt. irgendeinen Effekt auf den Zugriff auf einen anderen Store?

Gruß

EDIT: sowas habe ich auch schon versucht:

01.
 Set colStores = Application.Session.Stores 
02.
    For Each oStore In colStores 
03.
        Set oRoot = oStore.GetRootFolder 
04.
        Set Inbox = oRoot.Folders("MeinFolder")    
05.
    Next 
06.
 
Bitte warten ..
Mitglied: colinardo
LÖSUNG 01.10.2014, aktualisiert um 09:43 Uhr
woher soll ich wissen das du ein englisches Benutzt ?

In diesem Fall sieht es so aus:
01.
Set Inbox = Application.Session.Stores("Mailxbox - Name, Vorname").GetRootFolder.Folders("BeispielOrdner")
Der Name hinter Stores() muss genau dem Namen des Rootknotens entsprechen, so wie er bei die in der Baumansicht steht !
Ansonsten mach mal ein Screenshot, dann ist das schnell abgehakt!

Um die die Namen aller Stores anzeigen zu lassen kannst du folgenden Code nutzen:
01.
for each store in Application.Session.Stores 
02.
 debug.print store.name 
03.
Next
Die Ausgabe erfolgt dann im Debug-Bereich des VBA Editors.
Bitte warten ..
Mitglied: bigfudge
01.10.2014 um 09:40 Uhr
Hab das "Mailbox - Name, Vorname" jetzt mal aus den Properties kopiert und es scheint zu funktionieren!
Hatte wohl einen sehr komischen Fehler dadrin, habe das sehr sehr oft kontrolliert :D

Warum geht das hier nicht mit der normalen EMail-Adresse?

Gruß!
Bitte warten ..
Mitglied: colinardo
01.10.2014, aktualisiert um 09:49 Uhr
Zitat von bigfudge:
Warum geht das hier nicht mit der normalen EMail-Adresse?

Die Bezeichnung ist bei jedem Exchange etwas unterschiedlich.
Es gibt noch einige andere Varianten wie du den Store zuweisen kannst, z.b. über die Accounts, aber das lass ich dir mal als Hausaufgabe, hab gerade wenig Zeit.
Die integrierte VBA Referenz im VBA Editor ist dein Freund. Also lese dich dort unbedingt mal ein, dann musst du nicht wegen jedem Furz nen Thread aufmachen

Grüße Uwe
Bitte warten ..
Mitglied: bigfudge
01.10.2014, aktualisiert um 12:24 Uhr
Wie in dem anderen Thread schonmal erwähnt haben diese Ordner auf dem Zielrechner diese komischen "blauen Pfeile", habe mich nun mal etwas genauer informiert und es scheint sich hierbei um eine shared-source zu handeln.

Da du meintest Voraussetzung für die Zuweisung bzw. das Durchsuchen des Ordners ist, dass es lokal verfügbar ist - ist dies bei so einer shared-source der Fall?

Darüber hinaus scheint diese ja nicht direkter Teil einer Mailbox zu sein.

Anbei mal ein Screenshot von dem Rechner auf dem es letztendlich laufen sollte.

http://www.directupload.net/file/d/3762/hr9ix9pv_jpg.htm

EDIT: vllt. wäre es auch eine Lösung einfach diese Mails die dort ankommen über eine Regel in einen lokal verfügbaren Ordner zu verschieben? Ich weiß nicht ob das generell möglich ist aufgrund irgendwelcher Berechtigungen.

viele Grüße,
fudge
Bitte warten ..
Mitglied: colinardo
01.10.2014, aktualisiert um 12:33 Uhr
kann das hier gerade nicht testen, Liste dir die Namen der Stores wie oben geschrieben mal auf, das ist vermutlich ein freigegebenes Postfach, welches mit eingebunden ist. Wenn dieser Store in der Ausgabe mit aufgelistet wird, sollte es damit genauso laufen ... Ansonsten kann es auch eine proprietäre Einbindung einer Software sein die z.B. Ordner selber synchronisiert, es könnte also durchaus sein das es sich nicht ansprechen lässt, kann ich aber ohne weitere Details über das Konto nicht sagen ...
Bitte warten ..
Mitglied: bigfudge
01.10.2014, aktualisiert um 13:45 Uhr
Also das Makro gibt nicht direkt den Namen des Ordners als Store aus, sondern eben den Store in dem er liegt (DE, xxxxxx.pool-id, siehe Screenshot)

via
01.
 Set Inbox = Application.Session.Stores("xxxxx.pool-id").GetRootFolder.folders("FolderName") 
kriegt man keine Fehlermeldung, aber das Skript tut auch nichts.

Wenn er in Outlook aber zumindest lesend darauf zugreifen kann müsste dass das Makro doch eigentlich auch können oder nicht?
Bitte warten ..
Mitglied: colinardo
01.10.2014, aktualisiert um 13:50 Uhr
ich kenne deinen eigenen Code nicht, und was du in dem Ordner überhaupt machen willst...
Bitte warten ..
Mitglied: bigfudge
01.10.2014, aktualisiert um 13:58 Uhr
Ich lese eigentlich nur den Sender aus und vergleiche den mit dem Absender der eingetroffenen Mail. Aber wenn das ganze Makro auf dem Zielrechner mit einem normalen Ordner funktioniert müsste es ja theoretisch auch mit dem shared-folder gehen, wenn die Zuweisung bzw. Berechtigung dafür richtig ist.

EDIT: haben jetzt auf dem Zielrechner die dafür zuständige Regel editiert damit es in einen normalen Ordner verschoben wird. Jetzt funktioniert eigentlich alles wie es soll, nur nicht sonderlich schön :D

Gruß
Bitte warten ..
Mitglied: colinardo
01.10.2014, aktualisiert um 14:04 Uhr
Ohne Zielsystem vor mir zu haben leider schwierig hier weiter zu helfen ...Da hilft nur Debugging ...
Bitte warten ..
Mitglied: bigfudge
01.10.2014 um 14:15 Uhr
Ja, es funktioniert ja mittlerweile zum Glück, werde mich demnächst aber nochmal genauer damit beschäftigen!

Eine Überlegung hatte ich gerade noch. Wenn die Mail in dem shared-folder ankommt wird ja schätze ich mal das newMailex event ausgelöst. Per Regel wird diese Mail dann in den lokalen Ordner kopiert.

Hat diese kopierte Mail, dann eine andere EntryID? Weil im Skript überprüfe ich erst ob diese ungleich sind, damit die neu angekommene nicht mitbearbeitet wird. Falls diese nun verschieden sind weil die Mail kopiert wurde, würde das ja die Funktion verfälschen - vorausgesetzt die Regel kopiert die Mail schneller als das Makro ausgeführt wird.

Verstehst du was ich meine?

Gruß
Bitte warten ..
Mitglied: colinardo
01.10.2014, aktualisiert um 14:23 Uhr
Zitat von bigfudge:
Eine Überlegung hatte ich gerade noch. Wenn die Mail in dem shared-folder ankommt wird ja schätze ich mal das newMailex
event ausgelöst. Per Regel wird diese Mail dann in den lokalen Ordner kopiert.
Das Event wird unabhängig vom Ordner ausgelöst !!
Hat diese kopierte Mail, dann eine andere EntryID? Weil im Skript überprüfe ich erst ob diese ungleich sind, damit die
neu angekommene nicht mitbearbeitet wird. Falls diese nun verschieden sind weil die Mail kopiert wurde, würde das ja die
Funktion verfälschen - vorausgesetzt die Regel kopiert die Mail schneller als das Makro ausgeführt wird.
Habe ich dir bereits im letzten Post schon geschrieben was mit der EntryID passiert ... Diese ändern sich nochmals ...Hier kannst du dich nur auf das MAPI-Feld PR_SEARCH_ID verlassen.
Bitte warten ..
Mitglied: bigfudge
01.10.2014 um 14:39 Uhr
Hey,

Ja den Post kenne ich ;) Da waren wir aber beim Verschieben und nicht beim Kopieren oder? Wenn ich kopiere kriege ich womöglich eine neue ID (auch PR_SEARCH_ID).
Bitte warten ..
Mitglied: colinardo
01.10.2014, aktualisiert um 14:44 Uhr
Zitat von bigfudge:
Ja den Post kenne ich ;) Da waren wir aber beim Verschieben und nicht beim Kopieren oder? Wenn ich kopiere kriege ich womöglich eine neue ID (auch PR_SEARCH_ID).
hör mal wie soll ich wissen das du kopierst ?? Natürlich ändert sich die EntryID und die PR_...ID wenn an ein neues Element erstellt wird.
Ich empfehle dir dazu mal dich mit MFCMAPI auseinander zusetzen, dann verstehst du genauer was abgeht ...das ist das Equivalent zu Regedit nur für Outlook.

Viel Erfolg
Grüße Uwe
Bitte warten ..
Mitglied: bigfudge
01.10.2014 um 15:13 Uhr
Ja das mit dem Kopieren steht ja oben:

"Eine Überlegung hatte ich gerade noch. Wenn die Mail in dem shared-folder ankommt wird ja schätze ich mal das newMailex
event ausgelöst. Per Regel wird diese Mail dann in den lokalen Ordner kopiert."

"Hat diese kopierte Mail, dann eine andere EntryID? ..."

Ist ja auch egal, überliest man leicht - Ich überbeanspruche dich auch sehr :D.

Meine Idee war jetzt einfach über die Pause Sub von dir eine Pause zu machen, damit die Mail auf jeden Fall in den lokalen Ordner kopiert wurde bevor das Makro mit der eigentlichen Abarbeitung anfängt.

Dann kann ich in der späteren Verarbeitung einfach beim Schleifendurchlauf die Bedingung so ändern, damit eine Übereinstimmung mehr nötig ist.

Der Vgl. mit der EntryID ist eh nur dazu da, damit die neuankommende Mail nicht doppelt gezählt wird.

Scheint jetzt auch zu funktionieren, meinst du eine Sekunde ist ausreichend für das ausführen der Regel oder sollte man da evt. etwas mehr einplanen?
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Microsoft Office
Outlook Kalender Serientermin automatisch kategorie zuweisen (1)

Frage von DO1TJG zum Thema Microsoft Office ...

Outlook & Mail
Importieren von excel daten in outlook vba - Teil 2 (5)

Frage von Bgervais zum Thema Outlook & Mail ...

Microsoft Office
gelöst Importieren von excel daten in outlook vba (10)

Frage von Bgervais zum Thema Microsoft Office ...

VB for Applications
gelöst Outlook VBA, Alternative zu NewMailEx, neue bereits gelesene Email im Posteingang (12)

Frage von joha1908 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...