Bonjour,
Mon objectif est le suivant :
Avec des données client tirée d'un DB sur un serveur AS/400, je recréé une liste de contact, et dans cette liste, j'ajoute des listes de distribution regroupant certains de ses contacts (chaque contact à sa liste de distribution)
J'utilise un script VBS
Les différentes étapes sont :
==> Récupération des données via requête SQL ==> record set "rs"
==> Logon à une session de type MAPI.Session
==> parcours les dossiers publics pour atteindre un dossier de contacts
Dossiers publics > Tous les dossiers publics > DEVContact Société
==> dans ce dossier de contacts, je prends les objets Messages
==> suppression des contacts (objet messages) dans le but de réinjecter tous les contacts présent dans la DB
Voici un extrait du code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
SaveRCO = ""
cpt = 1
saveListDist = ""
While Not rs.EOF
snom = Trim(rs.Fields(0).Value)
snosuc = Trim(rs.Fields(1).Value)
scnrco = Trim(rs.Fields(2).Value)
slang = Trim(rs.Fields(3).Value)
stype = Trim(rs.Fields(4).Value)
sadrs = Trim(rs.Fields(5).Value)
spost = Trim(rs.Fields(6).Value)
sloc = Trim(rs.Fields(7).Value)
sger = Trim(rs.Fields(8).Value)
stel = Trim(rs.Fields(9).Value)
scnfax = Trim(rs.Fields(10).Value)
scngsm = Trim(rs.Fields(11).Value)
scsmtp = Trim(rs.Fields(12).Value)
ListDist = "Regroupement " & scnrco & slang & stype
RCO = scnrco & slang & stype
if RCO <> SaveRCO then
cpt = 1
end if
if cpt > 80 then
ListDist = ListDist & "(" & (Round(cpt/80)+1) & ")"
end if
if saveListDist <> ListDist then
'ICI je créé une liste de Distribution (et elle se créé bien)
Set objList = objFols.Add
objList.Type = "IPM.DistList"
objList.Fields.item(FullName) = ListDist
objList.Fields.item(Classedans) = ListDist
end if
Set objContact = objFols.Add
if scsmtp <> "" then
'Ici j'ai créé un contact (message dont le type est IPM.contact)
ContactInfo = Right("00000"& snosuc,5) & " - " & snom & " - MAIL"
SaveEmail = scsmtp
objContact.Update
Set objMemb = objList.members.Add (ContactInfo & " <" & SaveEmail & ">")
objList.update
cpt = cpt + 1
end if
saveListDist = ListDist
SaveRCO = RCO
rs.MoveNext
Wend |
Et sur la ligne
Set objMemb = objList.members.Add (ContactInfo & " <" & SaveEmail & ">")
Le script plante et me dit "Object doesn't support this property or method: 'objList.members' " avec le Code 800A01B6
Toutes les recherches effectuées semblent indiquer c'est bien la collection de données à utiliser, mais il refuse.
Je n'ai pas de connaissances poussées sur la structure d'Exchange (pour information c'est un 5.5), je suis un donc un peu perdu. L'existant semble bien indiquer que les listes de distribution sont des objets message, mais même là, je ne peux trouver la bonne collection de données (et Members ne fonctionne pas non plus)
Merci donc, de bien vouloir m'orienter, et éventuellement m'expliquer où est-ce que je me trompe. Et comment réussir à remplir correctement mes listes de distribution.
Salutations cordiales,
Stéphane
Partager