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

VBA Outlook Discussion :

Erreur d'exécution lors de l'appel de la méthode Send


Sujet :

VBA Outlook

  1. #1
    J1
    J1 est déconnecté
    Membre averti Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Points : 335
    Points
    335
    Par défaut Erreur d'exécution lors de l'appel de la méthode Send
    Bonjour à toutes et à tous,

    dans le cadre d'une procédure d'envoi de mails, je crée un objet de type Outlook.MailItem, je modifie ensuite ses propriétés HTMLBody, Subject, To et SendUsingAccount et j'exécute enfin sa méthode Send.
    Dans 90% des cas, tout se passe bien mais pour certaines adresses de destinataires, j'obtiens le message d'erreur suivant lors de l'appel de la méthode Send :

    Erreur d'exécution '-2147024809 (80070057)':
    Impossible de terminer l'opération. Une ou plusieurs valeurs de paramètres ne sont pas valides.
    Si je souhaite alors consulter les propriétés HTMLBody, Subject, To et SendUsingAccount définies plus haut dans le code, je me rends compte que la propriété To n'est plus renseignée (alors qu'elle l'était bien juste avant l'appel de la méthode Send).
    Après un certain temps passé à essayer de comprendre le pourquoi du comment, je me suis rendu compte que cela se produisait principalement dans le cas où l'adresse mail du destinataire était déjà présente dans les "Contacts suggérés" du carnet d'adresses du compte Outlook.
    Verriez-vous une explication à cela ? Outlook tenterait-il de résoudre à l'aide du carnet d'adresses l'adresse indiquée dans le To ?

    Si vous voyez une explication (même totalement différente de celle que j'évoque) et surtout une solution (qui ne nécessite pas de purger les contacts suggérés du carnet d'adresses), n'hésitez pas !

    Merci d'avance pour vos lumières.

  2. #2
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    Tu peux vérifier tes destinataires avant l'envoi,
    avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OMail.recipients.resolveAll

  3. #3
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    voici l'exemple de l'aide

    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
    Sub CheckRecipients()
        Dim MyItem As Outlook.MailItem
        Dim myRecipients As Outlook.Recipients
        Dim myRecipient As Outlook.Recipient 
     
        Set myItem = Application.CreateItem(olMailItem)
        Set myRecipients = myItem.Recipients
        myRecipients.Add("Aaron Con")
        myRecipients.Add("Nate Sun")
        myRecipients.Add("Dan Wilson")
        If Not myRecipients.ResolveAll Then
            For Each myRecipient In myRecipients
                If Not myRecipient.Resolved Then
                    MsgBox myRecipient.Name
                End If
            Next
        End If
    End Sub

  4. #4
    J1
    J1 est déconnecté
    Membre averti Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Points : 335
    Points
    335
    Par défaut
    Merci pour ta réponse, Oliv.
    Néanmoins, en admettant que ma théorie soit correcte, ce dont j'aurais besoin est de m'assurer qu'Outlook n'essaie pas de résoudre l'adresse que j'indique dans le To.

  5. #5
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Pourquoi ?

  6. #6
    J1
    J1 est déconnecté
    Membre averti Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Points : 335
    Points
    335
    Par défaut
    Comme je l'indiquais dans mon premier post, l'erreur semble survenir lorsque l'adresse mail mentionnée dans le To reprend celle d'un des "contacts suggérés" du carnet d'adresses. Partant de là, je me dis que l'erreur serait peut-être liée à une tentative de résolution d'adresse qu'Outlook ferait.

    Mais je reste évidemment ouvert à toute autre explication !

  7. #7
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    C'est pas impossible mais il faut les identifier pour les corriger

  8. #8
    J1
    J1 est déconnecté
    Membre averti Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Points : 335
    Points
    335
    Par défaut
    Mais donc, empêcher Outlook de résoudre ce qui est stocké dans la propriété To, c'est possible ? En gros, je voudrais que ce qui est stocké dans la propriété To soit utilisé "tel quel" comme adresse de destinataire lorsque j'appelle la méthode Send.

  9. #9
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    SAlut,

    Je t'ai fait un code pour tester tes contacts suggérés.
    en principe s'il y a un bug lors de la résolution sur l'un d'eux il devrait l'afficher

    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
    Option Compare Text
     
    Sub test_suggere()
        Dim MyItem As Outlook.MailItem
        Dim myRecipients As Outlook.Recipients
        Dim myRecipient As Outlook.Recipient
        Dim OL As Outlook.Application
        If UCase(Application) = "OUTLOOK" Then
            Set OL = Application
        Else
            Set OL = CreateObject("outlook.application")
        End If
        Dim Item As Outlook.MailItem
     
        Dim CS As Folder
     
        Set CS = Session.GetDefaultFolder(olFolderSuggestedContacts)
     
        Dim Contact_CS As ContactItem
        MsgBox CS.Items.Count, vbInformation, "Nombre de fiches testées"
        For n = CS.Items.Count To 1 Step -1
     
            If CS.Items(n).Class = olContact Then
                Set Contact_CS = CS.Items(n)
                                If Contact_CS.FullName = "test" Or Contact_CS.FirstName = "test" Then Stop
     
                If Contact_CS.Email1Address <> "" Then
                    Set MyItem = OL.CreateItem(olMailItem)
                    Set myRecipients = MyItem.Recipients
                    myRecipients.Add (Contact_CS.Email1Address)
                    If Not myRecipients.ResolveAll Then
                        MsgBox Contact_CS.FullName & vbCr & Contact_CS.Email1Address, vbCritical, "NON RESOLU"
                        Contact_CS.Display
     
                        MyItem.Close olDiscard
                    Else
                        MyItem.Close olDiscard
                    End If
                End If
            End If
     
        Next n
    End Sub

  10. #10
    J1
    J1 est déconnecté
    Membre averti Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Points : 335
    Points
    335
    Par défaut
    Merci pour ton aide, Oliv. Néanmoins, ce que je cherche à faire, c'est forcer Outlook à respecter ce que j'indique initialement dans la propriété To et qu'il ne cherche donc pas une éventuelle correspondance dans le carnet d'adresses au moment où j'appelle la méthode Send. En d'autres termes, je voudrais qu'il ne cherche pas à résoudre l'adresse que j'indique dans le To.
    Mais ça, d'après les investigations que je mène depuis quelques jours, je ne suis pas sûr du tout que ce soit possible...

  11. #11
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    J'ai bien compris ta demande, mais je pense que ton problème provient de quelques enregistrements erronés, tu peux faire autrement en envoyant via CDO tes messages mais un moment donné tu retomberas sur le problème.

    il faudrait que tu identifies précisément quand ton problème se produit, c'est à dire que tu réussisses à le reproduire !

    C'est dans ce sens que je t'ai fait mon précédent code , l'as tu essayé ?

Discussions similaires

  1. Erreur lors de l'appel d'une méthode Zend Helper
    Par donbrico dans le forum Zend Framework
    Réponses: 4
    Dernier message: 16/04/2008, 15h52
  2. [Wamp] Erreur d'entête lors de l'appel à session_start
    Par gozu13 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 04/03/2008, 18h51
  3. erreur (methode introuvable) lors de l'appel
    Par anisj1m dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 17/08/2007, 14h44
  4. [forward] Erreur lors de l'appel d'une méthode
    Par GLDavid dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 03/07/2007, 17h10
  5. Erreur : Non implémenté lors de l'appel d'un evenement
    Par pedouille dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 10/12/2005, 10h15

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