MAPI session via ASP loopt niet

Pagina: 1
Acties:

  • whitey-d
  • Registratie: April 2000
  • Laatst online: 08-08 19:24
Op het ogenblik ben ik bezig een link naar Exchange 2000 te maken via ASP. De code die ik hiervoor gebruik is (m.b.v. MSDN en GOT in elkaar gedraaid):

<%
Dim objSession, objAddressList
Set objSession = Server.CreateObject ("MAPI.Session")
strProfileInfo = "(mijnserver)" & vbLf & "(username)"
response.write(Request.ServerVariables("AUTH_USER"))
objSession.Logon , , False, True, 0, True, strProfileInfo
%>

En het resultaat is:
code:
1
2
3
Collaboration Data Objects error '000004f7' 
[Collaboration Data Objects - [MAPI_E_NOT_FOUND(8004010F)]] 
/addresslist.asp, line 13

Ik denk zelf dat het ligt aan de toegangsrechten. Ik kan wel gewoon exchange via het interne netwerk gebruiken om mijn inbox te openen (via outlook). Moeten de rechten uitgebreid worden van de public folders (waaronder het in te loggen account)? Welke rechten zijn er nodig om via ASP in te loggen op de Exchange MAPI?

alvast bedankt voor de reactie.

“Advertising says to people, 'Here's what we've got. Here's what it will do for you. Here's how to get it.'”


  • whoami
  • Registratie: December 2000
  • Laatst online: 11:59
groeten whd
Uit de FAQ:
Wij tweakers doen elkaar permanent de groeten. Het is dus niet nodig om steeds ruimteverspillende "greetz [user]" of iets dergelijks onder je post te plakken. Als je perse zoiets wilt kun je daar je signature voor gebruiken

https://fgheysels.github.io/


  • gotcha
  • Registratie: Oktober 1999
  • Laatst online: 29-07 18:20
waarom gebruik je eigenlijk MAPI ? over het algemeen wordt MAPI gebruikt voor programma's die op de client draaien (en dus gebruik kunnen maken van het MAPI subsysteem wat al op de client aanwezig is). bij serverside denk ik eerder aan CDO (collaborating data objects). i.c.m. exchange heb je daarmee volledige toegang tot mailboxen, agenda's etc en kun je bijvoorbeeld je eigen kopie van outlook web-access bouwen :)

  • whitey-d
  • Registratie: April 2000
  • Laatst online: 08-08 19:24
ok thanks voor de tip!
ik ga nu zeker op zoek naar CDO routines, zo'n web based outlook proggie is precies wat ik wil hebben. Is het overigens beter om vanaf scratch zo'n kloon te maken of moet je gewoon de standaard procedures van MSDN afplukken?

[update]

klopt het trouwens dat je toch eerst via een MAPI.Session moet inloggen voor je CDO kunt aanspreken?

“Advertising says to people, 'Here's what we've got. Here's what it will do for you. Here's how to get it.'”


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:41

gorgi_19

Kruimeltjes zijn weer op :9

Eerst inloggen via een mapi.session voor CDO? Nee hoor, je kan het object gewoon maken. Wel je SMTP-server goed instellen..

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Prozaq
  • Registratie: Juni 2000
  • Laatst online: 04-09 08:15
dit is misschien wel een handige site: http://www.cdolive.com/start.htm

Staan een hoop voorbeelden op etc

  • whitey-d
  • Registratie: April 2000
  • Laatst online: 08-08 19:24
ok, ik heb cdolive wat beter bekeken:

[quote]
After you create a new Session object, you use the Logon method to initiate a session with MAPI. No other activities with CDO are permitted prior to a successful logon.
[/qoute]

En ik heb begrepen dat CDO een wrapper is van MAPI. MSDN, CDOLive en alle andere sites die ik tot nu toe heb gevonden hebben het over een logon die begint met een MAPI.Session. Welk (sessie)object zou ik in zo'n geval kunnen gebruiken om de CDO-objecten aan hangen (zonder een MAPI initialisatie-error te krijgen)?
De code die ik nu gebruik is de volgende, overgenomen van CDOLive:
code:
1
2
3
4
5
6
7
8
9
Set objRenderApp = Server.CreateObject("AMHTML.Application")
objRenderApp.LoadConfiguration 1,"HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeWeb\Parameters"
strServer = objRenderApp.ConfigParameter("Server")
strLogonID = Request.ServerVariables("Logon_User")
strMailbox = Right(strLogonID, Len(strLogonID) - InStr(strLogonID, "\"))

strProfileInfo = strServer & vbLF & strMailbox
Set objSession = Server.CreateObject("MAPI.Session")
objSession.Logon "", "", False, True, 0, True, strProfileInfo

Ik krijg nog steeds dezelfde error. Op MSDN kwam ik een .MMP fix tegen, ook ingevoerd maar geen resultaat. Verder kan ik nergens iets vinden over de exchange/iis-instellingen die nodig zijn. Welke instellingen (zoals SMTP) moeten nagekeken worden?

“Advertising says to people, 'Here's what we've got. Here's what it will do for you. Here's how to get it.'”


  • gotcha
  • Registratie: Oktober 1999
  • Laatst online: 29-07 18:20
je logt nu in op de sessie met de loggedonuser van IIS. echter, deze is alleen gevuld als de directory security van de virtual dir. is ingesteld op "integrated windows authentication". check dus of dit zo is.

als ik trouwes zoek met google op die foutmelding MAPI_E_NOT_FOUND dan blijkt dat deze fout zich voordoet als er verouderde cdo-componenten worden gebruikt.. misschien ff zinnig om de ms-site daar es op na te slaan ?

  • whitey-d
  • Registratie: April 2000
  • Laatst online: 08-08 19:24
Ok, ik ga die dir ff nakijken..
Ik heb de versie van een aantal CDO-componentjes gecheckt, CDO.DLL heeft sowieso versie 1.2 (van Exchange 2000), moet voldoende zijn.

“Advertising says to people, 'Here's what we've got. Here's what it will do for you. Here's how to get it.'”


  • whitey-d
  • Registratie: April 2000
  • Laatst online: 08-08 19:24
Ik heb de instellingen van IIS nagelopen, authenticatie op anoniem en basic toegestaan + windows integrated authentication, niets helpt.
De error die ik nu krijg is:
code:
1
2
3
4
5
Collaboration Data Objects error '00000505' 

U bent niet gemachtigd om u aan te melden.
[Informatiearchief van Microsoft Exchange Server -
[MAPI_E_FAILONEPROVIDER(8004011D)]]

Kennelijk toch iets met beveiliging? MSDN geeft instellingsprocedures voor IIS en Exchange maar ook deze procedures halen dus niks uit :(
Kan iemand misschien een CDO-voorbeeld geven waarbij ik NIET via MAPI hoef in te loggen?

“Advertising says to people, 'Here's what we've got. Here's what it will do for you. Here's how to get it.'”


  • JamesTiberius
  • Registratie: Oktober 2000
  • Laatst online: 08-03-2006

JamesTiberius

Feel the magic

En als je de IIS user eens administrator maakt en daarmee inlogd (de sessie aanmaakt)?? Lukt het dan wel? (ben er zelf een hele dag mee bezig geweest voor dat het mij lukte :( )

I laugh in the face of danger ... ... then I hide and wait until it goes away -


  • whitey-d
  • Registratie: April 2000
  • Laatst online: 08-08 19:24
De user met een Exchange-account heeft al admin-rechten. Of bedoel je het account voor de anonieme internet-user (IUSR_SERVER)? Volgens mij is het grootste probleem dat ik niet weet wat het effect van bepaalde rechten en beveiligingsinstellingen is. Ik neem aan dat de .ASP aanvraag eerst naar IIS gaat, via het IUSR_SERVER account, en vervolgens naar Exchange voor de MAPI session request.
Moet ik overigens altijd de public folder gebruiken voor MAPI ASP sessions? Ik ben er tot nu toe vanuit gegaan dat ie gewoon het betreffende account pakt (waarvan ik de username nu handmatig invul overigens).

“Advertising says to people, 'Here's what we've got. Here's what it will do for you. Here's how to get it.'”


  • JamesTiberius
  • Registratie: Oktober 2000
  • Laatst online: 08-03-2006

JamesTiberius

Feel the magic

Je kunt IIS ook laten inloggen met de gebruikersnaam en wachtwoord van een administrator met een exchange account. Hiermee dan ook een sessie aanmaken. Zo zou het zeker moeten werken, kan je hierna stapjes terug nemen om de beveiliging weer op te schroeven.

I laugh in the face of danger ... ... then I hide and wait until it goes away -


  • whitey-d
  • Registratie: April 2000
  • Laatst online: 08-08 19:24
ik heb ook naar de rechten van de users gekeken, is allemaal in orde.
Waarschijnlijk is het een hele simpele instelling, namelijk de uitvoerrechten o.i.d. waarbij je kunt kiezen uit "geen", "alleen scripts" en "alle files". Ik liep wat instellingen langs met een Exchange-kenner omdat de mail-server plat lag en die begon erover. Zo gauw ik er tijd voor heb check ik of het nu wel lukt.

“Advertising says to people, 'Here's what we've got. Here's what it will do for you. Here's how to get it.'”


  • whitey-d
  • Registratie: April 2000
  • Laatst online: 08-08 19:24
het werkt nu, top!!
ik heb de exacte instelling nagekeken (IIS > eigenschappen virtual dir > machtigingen uitvoeren), die staat nu weer op "geen" ipv "alleen scripts" maar hij doet het nu wel(?). Anyways, thanks voor de tips everyone..

“Advertising says to people, 'Here's what we've got. Here's what it will do for you. Here's how to get it.'”

Pagina: 1