Zugriff auf Mailbox per CDO klappt nicht ...

14/12/2009 - 22:13 von NicoN | Report spam
Ich möchte mit einem VB.NET-Programm (resp. VBSkript) programmgesteuert
Termine in den Kalender von verschiedenen Usern eintragen.

Dazu braucht man meines Wissens einen Effekt namens 'Impersonation'.

Ich habe einiges gelesen und auch probiert - leidert klappt's nicht.

Code-Snippet:

dim oMAPISession as MAPI.Session

oMAPISession = CreateObject("MAPI.Session")

oMAPISession.Logon("","",FalseTrue,0,True,"exchange" & vblf & test@xxx.yyy)
(ist der 'Mailbox-Alias' richtig ?)


folder=oMAPISession.getDefaultFolder(CdoDefaultFolderCalendar)


Erstaunlicherweise schlàgt nicht die Logon-Zeile fehl, sondern die nàchste.
Dieses Verhalten ist wohl normal, wenn auch nicht nchvollziehbar (für mich).
Die Fehlermeldung lautet MAPI_E_LOGON_FAILED und dem Hinweis, der
Informationsspeicher stünd zur Zot nicht zur Verfügung.

Was mache ich verkehrt ?

Ziel ist es, automatisiert durch ein Skript des SQL-Servers Termine in
Exchange einzutragen.
Entsprechend muss durch den Skriptprozess auf die Mailbox eines anderen
Users zugegriffen werden. Ich kann mir allerdings kaum vorstellen, dass man
ohne weiteres wie von mir (und in einigen Beispielen dargestellt) versucht
so was machen kann.

Aber irgendwie muss es doch gehen


Gruss Nico
 

Lesen sie die antworten

#1 Frank Carius
14/12/2009 - 22:55 | Warnen spam
Da hatte ich auch schon stress.
http://www.msexchangefaq.de/code/mapicdo.htm

.NEt ist nicht so weit von Powershell weg
http://www.msexchangefaq.de/code/powershell.htm
"STATHREAD" sollte helfen
Single Thread Appartment (STA) und Multi Thread Appartment (MTA)

* Thread.ApartmentState and PowerShell Execution Thread
http://blogs.msdn.com/powershell/ar...hread.aspx
* Calling FolderBrowserDialog from a PowerShell script
http://www.manning-sandbox.com/thre...sageIDb451
*
http://www.cauldwell.net/patrick/bl...Shell.aspx



CDO ist nicht MTA-Thread-Tauglich.
Kleiner tesT: Versuch es mal mit einerm VB.NEt "console Application" (also
nicht WinForm)
Wenn es damit geht dann bist du auf dem richtigen Weg.



"NicoN" schrieb im Newsbeitrag
news:4b26aa8f$0$6716$
Ich möchte mit einem VB.NET-Programm (resp. VBSkript) programmgesteuert
Termine in den Kalender von verschiedenen Usern eintragen.

Dazu braucht man meines Wissens einen Effekt namens 'Impersonation'.

Ich habe einiges gelesen und auch probiert - leidert klappt's nicht.

Code-Snippet:

dim oMAPISession as MAPI.Session

oMAPISession = CreateObject("MAPI.Session")

oMAPISession.Logon("","",FalseTrue,0,True,"exchange" & vblf &
)
(ist der 'Mailbox-Alias' richtig ?)


folder=oMAPISession.getDefaultFolder(CdoDefaultFolderCalendar)


Erstaunlicherweise schlàgt nicht die Logon-Zeile fehl, sondern die
nàchste. Dieses Verhalten ist wohl normal, wenn auch nicht nchvollziehbar
(für mich). Die Fehlermeldung lautet MAPI_E_LOGON_FAILED und dem Hinweis,
der Informationsspeicher stünd zur Zot nicht zur Verfügung.

Was mache ich verkehrt ?

Ziel ist es, automatisiert durch ein Skript des SQL-Servers Termine in
Exchange einzutragen.
Entsprechend muss durch den Skriptprozess auf die Mailbox eines anderen
Users zugegriffen werden. Ich kann mir allerdings kaum vorstellen, dass
man ohne weiteres wie von mir (und in einigen Beispielen dargestellt)
versucht so was machen kann.

Aber irgendwie muss es doch gehen


Gruss Nico




Frank Carius MS Exchange MVP
Exchange FAQ auf http://www.msxfaq.de
Wenn es die Zeit erlaubt, dann rufe ich auch an. Nummer/Mailadresse ?
:-) --

Ähnliche fragen