IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Gestion de liste de distribution avec CDO et VBS


Sujet :

VBScript

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Gestion de liste de distribution avec CDO et VBS
    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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Voila un extrait de code que j'utilise.
    Je pense que tu devrais pouvoir l'adapter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    ' Exemple de création d'une liste de distribution
    Dim myOlApp As New Outlook.Application
    Dim myDistList As Outlook.DistListItem
    Dim myTempItem As Outlook.MailItem
    Dim myRecipients As Outlook.Recipients
    Set myTempItem = myOlApp.CreateItem(olMailItem)
    Set myRecipients = myTempItem.Recipients
     
    => Ici, je créé mon recordset
     
    Set myDistList = myOlApp.CreateItem(olDistributionListItem)
    myDistList.DLName = "MaListe1"
    do while not rs.eof
        myRecipients.Add rs("Email")
        rs.movenext
    loop
    myDistList.AddMembers myRecipients
    myDistList.Save
    Set myDistList = Nothing
    Set myTempItem = Nothing
    Set myRecipients = Nothing

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci, il y a déjà un bon progrès.

    Cependant, le but est de fournir des liste de distribution de contacts dans les dossiers publics.

    Grâce à ton code, j'ai réussi à créer des listes de distribution dans mes contacts Outlook.

    1) Il y aurait-il moyen de copier les liste du dossier contact au dossier de contact prévu dans les dossiers publics?

    ou alors

    2) Peut-on, en utilisant un objet de type "Outlook.Application", se déplacer dans les dossiers publics pour y créer une "Outlook.DistListItem"?

    Merci du temps accorder à la lecture de mes questions et à leur réponses.

Discussions similaires

  1. [OL-2007] Création d'une liste de distribution avec courriels seulement
    Par Flaguette dans le forum Outlook
    Réponses: 0
    Dernier message: 13/12/2012, 20h52
  2. Réponses: 0
    Dernier message: 14/11/2010, 14h59
  3. Créer une liste de distribution avec Outlook 2000..
    Par kashaiia dans le forum Outlook
    Réponses: 5
    Dernier message: 16/07/2007, 16h27
  4. Gestion de 5 listes déroulantes liées avec paramètres SQL
    Par kenshir0 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 06/04/2007, 18h46
  5. Problème Mailing-List ASP avec CDO et access
    Par francois_pignon dans le forum ASP
    Réponses: 3
    Dernier message: 04/06/2006, 21h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo