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 :

Message avertissement lors de l'envoi


Sujet :

VBA Outlook

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut Message avertissement lors de l'envoi
    Bonjour,

    Comme beaucoup je suis confronté lors de l'envoi d'un message en automatique, à partir d'ue base Access, à l'ouverture d'un message d'avertissement (sécurité) qui me demande de valider l'envoi.

    J'ai lu sur ce forum quelques solutions comme le code d'"argyronet", ainsi que la possibilité d'utiliser "ClickYes". J'ai vu également le tuto sous "everythinkaccess.com".

    Bien, mais dans la boîte où je travaille certains postes ne demandent pas cette validation de sécurité lors de l'envoi de mails et pour dautres postes ils le demandent. Je pense donc qu'au delà de mettre un programme ou d'inclure un sous-programme en "vba", il doit y avoir un paramétrage possible dans Outlook (voire dans Access).
    Quelqu'un peut-il me renseigner ?
    Par avance merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Non, pas de paramétrage possible.
    Mais la méthode utilisée pour envoyer le message y est pour quelque chose.

    Si tu utilises le Early Binding pour l'application, tu auras le message.
    Il faut passer par du Late Binding et utiliser le processus en cours, donc il faut que Outlook soit ouvert.

    Le Early Binding est obtenu en déclarant la bibliothèque Outlook dans le projet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim oApp As Outllok.Application
    Set oApp = New Outlook.Application
    Le Late Biding est obtenu en déclarant l'objet dans le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim oApp As Object
    Set oApp = GetObject(,"Outlook.Application")
    If oApp Is Nothing Then Set oApp = CreateObject("Outlook.Application")
    Dans le cas de GetObject, tu ne reçois pas le message, tous les autres cas vont l'afficher.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Bonsoir Heureux-oli,

    Tout d'abord merci pour le temps que tu as consacré pour essayer à trouver une solution à mon problème.

    Dans ta réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Il faut passer par du Late Binding et utiliser le processus en cours, donc il faut que Outlook soit ouvert.
     
    Le Late Biding est obtenu en déclarant l'objet dans le code
     
    Dim oApp As Object
    Set oApp = GetObject(,"Outlook.Application")
    If oApp Is Nothing Then Set oApp = CreateObject("Outlook.Application")
    Je comprends qu'il faut utiliser la méthode dite du "Late Biting"
    J'ai donc essayé de copier ton code dans le formulaire où est inséré la macro d'envoi du message. Ma macro d'envoi utilise le principe préformaté "EnvoyerObjet" dans Access.

    Le souci est que j'ai maintenant un message d'erreur "erreur de compilation" "instruction incorrecte à l'extérieur d'une procédure" et le débogueur pointe sur le "Set" de ton code.

    Je pense donc que je ne copie pas le code au "bon endroit" ou bien qu'il manque quelque chose.

    J'avoue également que je suis peux averti en "vba", mais bon tu l'auras compris.

    Encore merci.

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Ce sont des morceaux de code que j'ai cité en exemple.

    Si tu nous donnes plus de renseignements sur ton code existant, on devrait pouvoir mieux te venir en aide.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  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
    Bonjour,

    Je suis pas tout à fait d'accord sur ton exemple tu peux faire du earlybinding sans message de sécurité mais dans certaines conditions uniquement, il faut que ce soit exécuté dans OUTLOOK.

    Ces 2 codes sont identiques.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test_earlybinding_secu()
    'il faut référencer Microsoft Outlook xx.0 library
    Dim oApp As Object
    Set oApp = Outlook.Application
     
    Dim monmail As Object
    Set monmail = oApp.CreateItem(olMailItem)
    monmail.Subject = "test"
    monmail.To = "toto@montest.fr"
    'c'est le SEND qui declenche la sécurité.
    monmail.send
    Set monmail = Nothing
    End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test_latebinding_Secu()
    Dim oApp As Object
    Set oApp = GetObject(, "Outlook.Application")
     
    Dim monmail As Object
    Set monmail = oApp.CreateItem(olMailItem)
    monmail.Subject = "test"
    monmail.To = "toto@montest.fr"
    'c'est le SEND qui declenche la sécurité.
    monmail.send
    Set monmail = Nothing
    End Sub
    Ce qui pose problème dans Outlook c'est le new dans la déclaration
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oApp = New Outlook.Application
    Plusieurs solutions existent
    Exemple ici
    http://www.developpez.net/forums/d65...e/#post3829922

    Une des solutions est de demander à Outlook d'envoyer le mail préparé par l'AUTRE PROGRAMME.
    Dans EXCEL ou Access ou Word
    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
    Sub test_early_binding_SANS_secu()
    'dans EXCEL ou Access ou Word
        Dim oApp As Outlook.Application
        Set oApp = Outlook.Application
        Dim monmail As MailItem
        Set monmail = oApp.CreateItem(olMailItem)
        monmail.Subject = "test ss message de secu"
        monmail.To = "toto@montest.fr"
        monmail.Save
        Dim strID As String
        strID = monmail.EntryID
        Call oApp.send_Monmail(strID)
        Set monmail = Nothing
        Set oApp = Nothing
    End Sub
    Dans OUTLOOK ThisOutlookSession
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub send_Monmail(StrID As String)
    Dim monmail
    Set monmail = Application.GetNamespace("MAPI").GetItemFromID(StrID)
    monmail.Send
    End Sub

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Bonsoir Oliv- et Heureux-Oli,

    Je suis un peu perdu par vos commentaires. Mon niveau en "vba" ne me permet pas de tout comprendre. Ainsi, je ne comprends pas pourquoi dans le code il est nécessaire de faire appel à un nom de mail (ex toto dans l'exemple d'Oliv) tout comme définir un destinataire. Ma base de donnée Access lors de l'exécution de ma Macro peut envoyer à partir de conditions des mails à différents destinataires.

    En fait, j'envoie ces mails sous Outlook au travers d'une application Access. Il est difficile Heureux-Oli de te donner des éléments de code car, en fait, j'utilise directement une Macro Access qui s'appelle "envoyer objet" que l'on configure une fois pour toute. C'est d'ailleurs pour cela que j'ai été bien embêté pour insérer ton code... Je l'ai mis dans le formulaire où se trouve le bouton qui lance la macro sur clic, mais était-ce le bon endroit ?

    Ce que je ne comprends pas c'est qu'en utilisant la même base access mais sur différents PC , le déclenchement du message d'avertissement (sécurité) qui me demande de valider l'envoi se déclenche ou non.

    PS: si vous me donnerz un code, pouvez-vous me dire s'il faut que je l'insère dans le formulaire de la Macro ou ailleurs ?

    Encore merci pour l'aide que vous m'apportez.

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Selon les pc qui donnent le message, c'est toujours avec la même version logicielle, il me semble que cette restriction est apparue avec 2003.

    Le code que nous te donnons est à utiliser dans un module et pas par Macro au sens de la macro sous Access.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  8. #8
    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,
    voici les versions et le patch de sécurité :
    Outlook 97 Not applicable, since the security update is not available for Outlook 97
    Outlook 98 Version 8.5.7806 and later
    Outlook 2000 Version 9.0.0.4201 and later
    Outlook 2002 All versions (10.0.x.x)
    Outlook 2003 All versions (11.0.x.x)
    Outlook 2007 All versions (12.0.x.x)


    Il semblerait qu'avec OUTLOOK 2007 et un anti virus à jour on n'ai pas ce message de sécurité (mais suis tjrs en ol2003 )

  9. #9
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Je ne me souviens plus l'avoir eu avec 2000.
    97, c'est certain.
    Par contre, sous 2007, le message est ouvert prêt à être envoyé, il reste à cliquer sur le bouton envoyer.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    Merci encore à tous les deux.

    Je vais demander à l'administrateur du réseau de faire appliquer les patchs de sécurité.

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

Discussions similaires

  1. [PhpMailer] Message d'erreur lors de l'envoi d'un mail
    Par Pepito dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 25/04/2007, 17h25
  2. Accusé reception lors de l'envoi d'un message
    Par chaval dans le forum Outlook
    Réponses: 6
    Dernier message: 16/04/2007, 19h10
  3. Réponses: 2
    Dernier message: 13/02/2007, 16h53
  4. A respecter lors de l'envoi d'un message (Version 2)
    Par Aurelien.Regat-Barrel dans le forum Windows
    Réponses: 0
    Dernier message: 04/01/2003, 15h59

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