1) Dans ta base intranet, crée un agent nommé "bal", lotusscript, partagé, exécuter une fois2) Met ça dans sa procédure initialize:Sub Initialize On Error Goto handle_error Dim session As New NotesSession Dim username As String, nname As NotesName Set nname = New NotesName(session.EffectiveUsername) username = nname.Abbreviated Dim personDoc As NotesDocument, serverDoc As NotesDocument Dim view As NotesView Dim books As Variant, book As NotesDatabase '-- Recupérer le doc Person de l'utilisateur books = session.AddressBooks Forall b1 In books Set book = b1 If book.IsPublicAddressBook Then If Not book.IsOpen Then Call book.Open("","") Set view = book.GetView("($NamesFieldLookup)") If Not view Is Nothing Then Set personDoc = view.GetDocumentByKey(username,True) If Not(personDoc Is Nothing) Then Exit Forall End If End If End Forall If personDoc Is Nothing Then Error "8001", username & " n'est référencé dans aucun carnet d'adresse" End If Dim mailfile As String, mailserver As String mailserver = personDoc.mailServer(0) mailfile = personDoc.mailFile(0) If Len(mailserver)=0 Or Len(mailfile)=0 Then Error "8001", "Le serveur ou la base mail de " & username & " n'est pas renseigné dans sa fiche." End If '-- Recupérer le doc Server du serveur de mail Forall b2 In books Set book = b2 If book.IsPublicAddressBook Then If Not book.IsOpen Then Call book.Open("","") Set view = book.GetView("($ServersLookup)") If Not view Is Nothing Then Set serverDoc = view.GetDocumentByKey(mailserver,True) If Not(serverDoc Is Nothing) Then Exit Forall End If End If End Forall If serverDoc Is Nothing Then Error "8001", mailserver & " n'est référencé dans aucun carnet d'adresse" End If '-- adresse ip du serveur Dim mailhost As String mailhost = Trim(serverDoc.HTTP_HostName(0)) If Len(mailhost)=0 Then Error "8001", "Le nom d'hôte du serveur " & mailserver & " n'est pas renseigné dans sa fiche." End If '-- remplacer les espaces et les antislashes dans le chemin d'accés à la base Dim i As Integer For i=1 To Len(mailfile) Select Case Mid$(mailfile,i,1) Case " " Mid$(mailfile,i)= "+" Case "\" Mid$(mailfile,i)= "/" End Select Next If Instr(mailfile,".")=0 Then mailfile = mailfile + ".nsf" Dim mailurl As String mailurl = "http://"+mailhost+"/"+mailfile '-- redirection vers la base mail Print "Location: " & mailurl Exit Sub handle_error: Print "<font color='red'>" & Error$ & " (ligne " & Erl & ")</font>" Resume donedone:End Sub3) Dans les propriétés de l'agent, coche la case "For web access - Run agent as Web user"4) Dans une page de ton site, met un lien:
http://serveur/baseintranet.nsf/bal?openagent5) Rem: ça fonctionne dans une architecture simple. Si, par exemple, les bases mail sont repliquées dans une DMZ, il n'y a plus de correspondance entre le serveur précisé dans les documents utilisateurs et celui auquel ils accédent via le web.[%sig%]