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

C# Discussion :

Récupérer Adresse Mail, Phone Number via EWS


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 31
    Points
    31
    Par défaut Récupérer Adresse Mail, Phone Number via EWS
    Bonsoir à tous,

    J'ai récupéré une liste de contatcs via Exchange Web Services.

    Ce que je souhaiterais c'est que lorsque je clique sur un contact dans la liste, mon programme va rechercher ses informations (adresse mail, phone number,...) via EWS.

    Merci d'avance pour votre réponse

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    Voici mon code mais à l'exécution de celui -ci il m'affiche l'erreur sur
    messagebox.show("Name:" + resolution.contact.displayname);
    La référence d'objet n'est pas définie à une instance d'un objet

    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
    ExchangeServiceBinding esb = new ExchangeServiceBinding();
                esb.Url = @"https://mail.domain.com/ews/exchange.asmx";
                esb.Credentials = new NetworkCredential(
                    "user",
                    @"password"
                    );
     
     
                ResolveNamesType rnType = new ResolveNamesType();
                rnType.ReturnFullContactData = true;
                rnType.UnresolvedEntry = comboBoxClientExchange.SelectedItem.ToString();
     
                // Resolve names.
                ResolveNamesResponseType resolveNamesResponse = esb.ResolveNames(rnType);
                ArrayOfResponseMessagesType responses = resolveNamesResponse.ResponseMessages;
     
                // Check the result.
                if (responses.Items.Length > 0 && responses.Items[0].ResponseClass != ResponseClassType.Error)
                {
                    ResolveNamesResponseMessageType responseMessage = responses.Items[0] as ResolveNamesResponseMessageType;
     
                    // Display the resolution information.
                    ResolutionType[] resolutions = responseMessage.ResolutionSet.Resolution;
                    foreach (ResolutionType resolution in resolutions)
                    {
                        MessageBox.Show("Name:" + resolution.Contact.DisplayName);
                        MessageBox.Show("EmailAddress:" + resolution.Mailbox.EmailAddress);
                        if (resolution.Contact.PhoneNumbers != null)
                        {
                            foreach (PhoneNumberDictionaryEntryType phone in resolution.Contact.PhoneNumbers)
                            {
                                MessageBox.Show(phone.Key.ToString() + ":" + phone.Value);
                            }
                        }
     
                        MessageBox.Show("Office Location:" + resolution.Contact.OfficeLocation);
     
     
     
                    }
    Merci d'avance pour votre réponse

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    A priori resolution.Contact vaut null...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par tomlev Voir le message
    A priori resolution.Contact vaut null...
    si je fais ceci et qu'il est nul il m'affiche quand même l'erreur suivante en pointant sur mon if(...):
    La référence d'objet n'est pas définie à une instance d'un objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (resolution.Contact.DisplayName != null)
                        {
                            MessageBox.Show("Name:" + resolution.Contact.DisplayName);
                        }

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par blackhox Voir le message
    si je fais ceci et qu'il est nul il m'affiche quand même l'erreur suivante en pointant sur mon if(...):
    La référence d'objet n'est pas définie à une instance d'un objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (resolution.Contact.DisplayName != null)
                        {
                            MessageBox.Show("Name:" + resolution.Contact.DisplayName);
                        }
    Bah c'est normal : tu ne peux pas accéder à DisplayName si Contact est null... Il faut tester si resolution.Contact est null, pas resolution.Contact.DisplayName

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Bah c'est normal : tu ne peux pas accéder à DisplayName si Contact est null... Il faut tester si resolution.Contact est null, pas resolution.Contact.DisplayName
    Effectivement avec votre solution l'erreur ne s'affiche plus mais je n'ai aucun résultat en retour alors que mon contact contient EmailAdress,Phonenumber,...

    Je fais donc au début de mon foreach ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(resolution.contact != null)
    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
    foreach (ResolutionType resolution in resolutions)
                    {
                        if (resolution.Contact != null)
                        {
                            if (resolution.Contact.DisplayName != null)
                            {
                                MessageBox.Show("Name:" + resolution.Contact.DisplayName);
                            }
                            MessageBox.Show("EmailAddress:" + resolution.Mailbox.EmailAddress);
                            if (resolution.Contact.PhoneNumbers != null)
                            {
                                foreach (PhoneNumberDictionaryEntryType phone in resolution.Contact.PhoneNumbers)
                                {
                                    MessageBox.Show(phone.Key.ToString() + ":" + phone.Value);
                                }
                            }
     
                            MessageBox.Show("Office Location:" + resolution.Contact.OfficeLocation);
                        }
                    }

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    Petite modification, j'arrive uniquement à sortir les Adresses Mails correspondantes aux contacts.

    Rien pour le numéro de téléphone ou l'adresse. Une idée?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    foreach (ResolutionType resolution in resolutions)
                    {
                            if (resolution.Mailbox != null)
                            {
                                MessageBox.Show("EmailAddress:" + resolution.Mailbox.EmailAddress);
                            }
                            if (resolution.Contact != null)
                            {
                                MessageBox.Show("Phone:" + resolution.Contact.PhoneNumbers);
                                MessageBox.Show("PhysicalAddress" + resolution.Contact.PhysicalAddresses);
                            }
                        }
                    }
    Merci d'avance

  8. #8
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2003
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 274
    Points : 372
    Points
    372
    Par défaut
    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
    foreach (ResolutionType resolution in resolutions)
            {
                Console.WriteLine("Name: " + resolution.Contact.DisplayName);
                Console.WriteLine("EmailAddress: " + resolution.Mailbox.EmailAddress);
     
                if (resolution.Contact.PhoneNumbers != null)
                {
                    foreach (PhoneNumberDictionaryEntryType phone in resolution.Contact.PhoneNumbers)
                    {
                        Console.WriteLine(phone.Key.ToString() + " : " + phone.Value);
                    }
                }
     
                Console.WriteLine("Office location:" + resolution.Contact.OfficeLocation);
                Console.WriteLine("\n");
            }

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par eagleleader Voir le message
    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
    foreach (ResolutionType resolution in resolutions)
            {
                Console.WriteLine("Name: " + resolution.Contact.DisplayName);
                Console.WriteLine("EmailAddress: " + resolution.Mailbox.EmailAddress);
     
                if (resolution.Contact.PhoneNumbers != null)
                {
                    foreach (PhoneNumberDictionaryEntryType phone in resolution.Contact.PhoneNumbers)
                    {
                        Console.WriteLine(phone.Key.ToString() + " : " + phone.Value);
                    }
                }
     
                Console.WriteLine("Office location:" + resolution.Contact.OfficeLocation);
                Console.WriteLine("\n");
            }
    Merci mais toujours rien au niveau du phone number et location

  10. #10
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2003
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 274
    Points : 372
    Points
    372
    Par défaut
    Es-tu certains que ces informations sont presentes ?
    Car si elles ne le sont pas, tu ne les verras jamais

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par eagleleader Voir le message
    Es-tu certains que ces informations sont presentes ?
    Car si elles ne le sont pas, tu ne les verras jamais
    Oui car le contact a été créé via OWA donc il n'y a pas d'erreur possible

  12. #12
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2003
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 274
    Points : 372
    Points
    372
    Par défaut
    Voici un lien sur le sujet, je ne sais pas si cela peut t'aider:

    http://vivekiyer.net/2010/07/17/quer...-services-ews/

    et il y a ce lien aussi:

    http://www.add-in-express.com/creati...line-examples/

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par eagleleader Voir le message
    Voici un lien sur le sujet, je ne sais pas si cela peut t'aider:

    http://vivekiyer.net/2010/07/17/quer...-services-ews/

    et il y a ce lien aussi:

    http://www.add-in-express.com/creati...line-examples/
    J'essaye de tester via une méthode différente mais je dois refaire un if(??? != null) avant mon foreach mais je ne vois quoi mettre!

    Voici mon code et merci d'avance
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    ExchangeServiceBinding esb = new ExchangeServiceBinding();
    
                esb.Credentials = new NetworkCredential("user", "pwd", "domain");
    
                esb.Url = @"https://mail.domain.com/EWS/Exchange.asmx";
    
    
    
                // Tell it you want all the item properties
    
                ItemResponseShapeType itemProperties = new ItemResponseShapeType();
    
                itemProperties.BaseShape = DefaultShapeNamesType.AllProperties;
    
    
    
                // Tell it you only want to look in the contacts folder
    
                DistinguishedFolderIdType[] folderIDArray = new DistinguishedFolderIdType[1];
    
                folderIDArray[0] = new DistinguishedFolderIdType();
    
                folderIDArray[0].Id = DistinguishedFolderIdNameType.contacts;
    
    
    
                PathToUnindexedFieldType field = new PathToUnindexedFieldType();
    
                field.FieldURI = UnindexedFieldURIType.contactsGivenName;
    
    
    
                ConstantValueType fieldValue = new ConstantValueType();
    
                fieldValue.Value = "nom prenom";
    
    
    
                // Look for contacts which have a given name that begins with 'wes'
    
                ContainsExpressionType expr = new ContainsExpressionType();
    
                expr.ContainmentModeSpecified = true;
    
                expr.ContainmentMode = ContainmentModeType.Prefixed;
    
                expr.ContainmentComparisonSpecified = true;
    
                expr.ContainmentComparison = ContainmentComparisonType.IgnoreCase;
    
                expr.Constant = fieldValue;
    
                expr.Item = field;
    
    
    
                RestrictionType restriction = new RestrictionType();
    
                restriction.Item = expr;
    
    
    
                // Form the FindItem request
    
                FindItemType findItemRequest = new FindItemType();
    
                findItemRequest.Traversal = ItemQueryTraversalType.Shallow;
    
                findItemRequest.ItemShape = itemProperties;
    
                findItemRequest.ParentFolderIds = folderIDArray;
    
                findItemRequest.Restriction = restriction;
    
    
    
                // Send the request and get the response
    
                FindItemResponseType findItemResponse = esb.FindItem(findItemRequest);
    
    
    
                if (findItemResponse.ResponseMessages.Items.Length > 0)
                {
    
                    FindItemResponseMessageType responseMessage =
    
                        findItemResponse.ResponseMessages.Items[0] as FindItemResponseMessageType;
    
                    ArrayOfRealItemsType realItems =
    
                        responseMessage.RootFolder.Item as ArrayOfRealItemsType;
    
    
                    
                        foreach (ContactItemType contact in realItems.Items)
                        {
                            if (contact != null)
                            {
    
                                // Do work with data returned for each contact
    
                                Console.WriteLine("Name:  {0} {1}\nEmail: {2}\nPhone: {3}",
    
                                    contact.GivenName, contact.Surname,
    
                                    (contact.EmailAddresses != null && contact.EmailAddresses.Length > 0 ?
    
                                        contact.EmailAddresses[0].Value : ""),
    
                                    (contact.PhoneNumbers != null && contact.PhoneNumbers.Length > 0 ?
    
                                        contact.PhoneNumbers[0].Value : ""));
                            }
    
                        }

  14. #14
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2003
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 274
    Points : 372
    Points
    372
    Par défaut
    Pourauoi dis-tu que tu dois faire
    if(??? != null)
    ?
    As-tu une erreur remontee lors de l'execution et si oui a quelle ligne et quel est le message d'erreur ?

    Sinon, je pense que tu peux verifier si : realItems.Items n'est pas null
    avant de l'utiliser dans ton foreach.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    Voici la solution pour extraire les numéros de téléphone associés à un contact :

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    ExchangeServiceBinding esb = new ExchangeServiceBinding();
     
                    esb.Credentials = new NetworkCredential("user", "password", "domain");
     
                    esb.Url = @"https://mail.domain.com/EWS/Exchange.asmx";
     
     
     
                    // Tell it you want all the item properties
     
                    ItemResponseShapeType itemProperties = new ItemResponseShapeType();
     
                    itemProperties.BaseShape = DefaultShapeNamesType.AllProperties;
     
     
     
                    // Tell it you only want to look in the contacts folder
     
                    DistinguishedFolderIdType[] folderIDArray = new DistinguishedFolderIdType[1];
     
                    folderIDArray[0] = new DistinguishedFolderIdType();
     
                    folderIDArray[0].Id = DistinguishedFolderIdNameType.contacts;
     
     
     
                    PathToUnindexedFieldType field = new PathToUnindexedFieldType();
     
                    field.FieldURI = UnindexedFieldURIType.contactsDisplayName;
     
     
     
                    ConstantValueType fieldValue = new ConstantValueType();
     
                    fieldValue.Value = comboBoxClient.SelectedItem.ToString();
     
     
     
                    // Look for contacts which have a given name that begins with 'wes'
     
                    ContainsExpressionType expr = new ContainsExpressionType();
     
                    expr.ContainmentModeSpecified = true;
     
                    expr.ContainmentMode = ContainmentModeType.Prefixed;
     
                    expr.ContainmentComparisonSpecified = true;
     
                    expr.ContainmentComparison = ContainmentComparisonType.IgnoreCase;
     
                    expr.Constant = fieldValue;
     
                    expr.Item = field;
     
     
     
                    RestrictionType restriction = new RestrictionType();
     
                    restriction.Item = expr;
     
     
     
                    // Form the FindItem request
     
                    FindItemType findItemRequest = new FindItemType();
     
                    findItemRequest.Traversal = ItemQueryTraversalType.Shallow;
     
                    findItemRequest.ItemShape = itemProperties;
     
                    findItemRequest.ParentFolderIds = folderIDArray;
     
                    findItemRequest.Restriction = restriction;
     
     
     
                    // Send the request and get the response
     
                    FindItemResponseType findItemResponse = esb.FindItem(findItemRequest);
                    FindItemResponseMessageType responseMessage = findItemResponse.ResponseMessages.Items[0] as FindItemResponseMessageType;
                    ArrayOfRealItemsType realItems = responseMessage.RootFolder.Item as ArrayOfRealItemsType;
     
                    if (findItemResponse.ResponseMessages.Items.Length > 0)
                    {
     
     
                        foreach (ContactItemType contact in realItems.Items)
                        {
                            for (int compteur = 0; compteur < contact.PhoneNumbers.Length; compteur++)
                            {
     
     
                                if (contact.PhoneNumbers[compteur] != null)
                                {
                                    comboBoxASms.Items.Add(contact.PhoneNumbers[compteur].Value);
     
                                }
                            }
                        }
                    }
    Pour l'adresse postal correspondante à un contact:
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    ExchangeServiceBinding esb = new ExchangeServiceBinding();
     
                esb.Credentials = new NetworkCredential("user", "password", "domain");
     
                esb.Url = @"https://mail.domain.com/EWS/Exchange.asmx";
     
     
     
                // Tell it you want all the item properties
     
                ItemResponseShapeType itemProperties = new ItemResponseShapeType();
     
                itemProperties.BaseShape = DefaultShapeNamesType.AllProperties;
     
     
     
                // Tell it you only want to look in the contacts folder
     
                DistinguishedFolderIdType[] folderIDArray = new DistinguishedFolderIdType[1];
     
                folderIDArray[0] = new DistinguishedFolderIdType();
     
                folderIDArray[0].Id = DistinguishedFolderIdNameType.contacts;
     
     
     
                PathToUnindexedFieldType field = new PathToUnindexedFieldType();
     
                field.FieldURI = UnindexedFieldURIType.contactsDisplayName;
     
     
     
                ConstantValueType fieldValue = new ConstantValueType();
     
                fieldValue.Value = "Prenom Nom";
     
     
     
                // Look for contacts which have a given name that begins with 'wes'
     
                ContainsExpressionType expr = new ContainsExpressionType();
     
                expr.ContainmentModeSpecified = true;
     
                expr.ContainmentMode = ContainmentModeType.Prefixed;
     
                expr.ContainmentComparisonSpecified = true;
     
                expr.ContainmentComparison = ContainmentComparisonType.IgnoreCase;
     
                expr.Constant = fieldValue;
     
                expr.Item = field;
     
     
     
                RestrictionType restriction = new RestrictionType();
     
                restriction.Item = expr;
     
     
     
                // Form the FindItem request
     
                FindItemType findItemRequest = new FindItemType();
     
                findItemRequest.Traversal = ItemQueryTraversalType.Shallow;
     
                findItemRequest.ItemShape = itemProperties;
     
                findItemRequest.ParentFolderIds = folderIDArray;
     
                findItemRequest.Restriction = restriction;
     
     
     
                // Send the request and get the response
     
                FindItemResponseType findItemResponse = esb.FindItem(findItemRequest);
                FindItemResponseMessageType responseMessage = findItemResponse.ResponseMessages.Items[0] as FindItemResponseMessageType;
                ArrayOfRealItemsType realItems = responseMessage.RootFolder.Item as ArrayOfRealItemsType;
     
                if (findItemResponse.ResponseMessages.Items.Length > 0)
                {
                    foreach (ContactItemType contact in realItems.Items)
                    {
                        if (contact != null)
                        {
     
                            // Do work with data returned for each contact
                            Console.WriteLine("Street : {0}", contact.PhysicalAddresses[1].Street.ToString());
                            Console.WriteLine("PostalCode : {0}", contact.PhysicalAddresses[1].PostalCode.ToString());
                            Console.WriteLine("City : {0}", contact.PhysicalAddresses[1].City.ToString());
                            Console.WriteLine("Country : {0}", contact.PhysicalAddresses[1].CountryOrRegion.ToString());
     
                        }
                    }
                }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer adresse mail destinataire
    Par melouille56 dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 20/07/2009, 15h08
  2. Récupérer adresses mails dans corps de message
    Par aztecq dans le forum VBA Outlook
    Réponses: 5
    Dernier message: 09/04/2009, 10h10
  3. Récupérer adresse mail et objet d'un mail outlook?
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/03/2009, 19h48
  4. Récupérer adresse mail de sharepoint
    Par pyroshady dans le forum InfoPath
    Réponses: 1
    Dernier message: 10/02/2009, 11h52
  5. Récupérer adresse mail dans un workflow
    Par pyroshady dans le forum SharePoint
    Réponses: 1
    Dernier message: 10/02/2009, 11h51

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