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 Access Discussion :

Crash d'envoi de mail outlook [AC-2007]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de zibi7
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 72
    Par défaut Crash d'envoi de mail outlook
    Bonjour, et d'abord un grand merci à Etienne Bar pour le tutoriel (http://access.developpez.com/faq/?page=Outlook#outlook).
    J'ai adapté la fonction au besoin ça donne ceci:
    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
    If MonAppliOutlook.Explorers.Count > 0 Then
        MsgBox "Outlook est déjà ouvert! " & vbNewLine & "La préparation du message ne peut pas se faire.", vbExclamation, "Envoi Automatique de mail"
        Exit Function
    Else
    Set MonMail = MonAppliOutlook.CreateItem(olMailItem)
    With MonMail
        .To = Adresse
    If Not IsNull(Cc) Then .Cc = Cc
    If Not IsNull(Bcc) Then .Bcc = Bcc
        .Subject = Objet
        .Body = corps
    If Piece <> "" Then
     Set MaPiece = .Attachments
     MaPiece.Add Piece, olByValue
    End If
     
        .Display
        .Send
        Msgenvoyé = True
        EnvoiMail = Msgenvoyé
    End With
    J'appelle la fonction dans une procédure de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Select Case nbabs![NBABSENCE]
                        Case 1
                            mailenvoye = EnvoiMail(nbabs![NomA], nbabs![PrenomA], nbabs![MAILA], titre1abs, corps1abs)
                            'If mailenvoye = True Then MsgBox ("mail 1 envoyé")
                        Case 2
                            mailenvoye = EnvoiMail(nbabs![NomA], nbabs![PrenomA], nbabs![MAILA], titre2abs, corps2abs)
                            'If mailenvoye = True Then MsgBox ("mail 2 envoyé")
                        Case 3
                            mailenvoye = EnvoiMail(nbabs![NomA], nbabs![PrenomA], nbabs![MAILA], titre3abs, corps3abs)
                            'If mailenvoye = True Then MsgBox ("mail 3 envoyé")
    End Select
    1. Symptômes :
      - sur un test avec 3 envoi de mail a faire dans la procédure en pas à pas : ça fonctionne normalement
      - en enlevant les points d'arrêt : le troisième mail part pas toujours, il s'arrête au deuxième!
    2. Pistes:
      - le send suivi du display, va trop vite pour lui (remplaçer par send uniquement en changeant le registre d'outlook pour ne pas être bloqué à l'envoi "car XP bloque"?)(quel registre?)
      - mettre une fonction wait (10 secondes) après le send??? (ça existe?)


    C'est singulier comme problème car j'ai déjà utilisé : et mais je n'ai rien trouvé de sérieux à part (le petit logiciel clickyes)
    Merci de votre aide!

  2. #2
    Membre éclairé Avatar de zibi7
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 72
    Par défaut
    RE,

    comme je continue de chercher j'ai trouvé la fonction sleep
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    que j'ai testé après le send du mail ------> il n'y que le premier mail envoyé donc c'est écarté, ça résout pas le problème.

  3. #3
    Membre éclairé Avatar de zibi7
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 72
    Par défaut La suite et fin des recherches
    Résultat de deux jours de recherche :

    -Microsoft bloque considérablement l'envoi automatisé de mail via outlook (obligation de clicker à chaque mail c'est pas top ou de faire du Sendkeys= deux solutions qui ne me conviennent pas niveau sécurité de l'application)

    -La solution existe: un package admin pour paramétrer la sécurité d'outlook et donner ainsi la main à certain programme pour les fonctions outlook
    Seule condition : être en environnement server Exchange
    http://support.microsoft.com/kb/290499/fr

    Du coup, je les envoie par une fonction qui utilise un seveur smtp (bcp plus rapide d'ailleurs que d'utiliser deux clients lourds) et ça marche nickel!

    Merci quand même à ceux qui ont essayé d'y réfléchir!
    Zibi

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

Discussions similaires

  1. Pb envoi de mail (outlook)
    Par ellewided dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 11/08/2009, 11h59
  2. Envoi de mail Outlook à partir d'Excel
    Par Daejung dans le forum VBA Outlook
    Réponses: 8
    Dernier message: 19/12/2008, 23h37
  3. [VBA] envoi de mail Outlook express ne s'ouvre pas
    Par le.dams dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 14/08/2008, 16h56
  4. Envoi e-mail outlook avec access
    Par Jacques-Henri dans le forum VBA Access
    Réponses: 4
    Dernier message: 27/11/2007, 20h19
  5. [VBA-E] pb envois de mail outlook
    Par minoru dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/08/2005, 19h42

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