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

Macros et VBA Excel Discussion :

Consulter Sujet des mails non lu via Gmail [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 127
    Points : 56
    Points
    56
    Par défaut Consulter Sujet des mails non lu via Gmail
    Bonjour,

    J'ai un fichier Excel avec lequel j'arrive à envoyer des mails sans passer par Outlook :

    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
    Dim iMsg As Object, iConf As Object, Flds As Object
     
    Set iMsg = CreateObject("cdo.message")
    Set iConf = CreateObject("cdo.configuration")
     
     
     
    Set Flds = iConf.Fields
     
     With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xxxxx@gmail.com"
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxxx"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
        .Item("http://schemas.microsoft.com/cdo/configuration/connectiontimeout") = 100
        .Update
    End With
     
    With iMsg
        Set .Configuration = iConf
        .To = "xxxxxx@gmail.com"
        .From = "xxxx@gmail.com"
        .Subject = "sujet"
        .HTMLBody = "Message"
        .Send
    End With
    J'arrive donc à envoyer des mails de façon automatique.

    Mais je n'arrive pas a trouver une façon de consulter le titre des mails non lu et leur contenu sans passer par Outlook ( car pour plusieurs raisons je ne veux pas passer par Outlook).

    Connaîtriez-vous une façon de pouvoir récupérer les titres et éventuelle les messages texte du mail sans passer par Outlook ?

    Je vous remercie !

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 127
    Points : 56
    Points
    56
    Par défaut
    J'ai trouver une solution pour pouvoir consulter le dernier mail reçu dans sa boîte GMAIL via VBA que je vais vous partager étant donné le manque d'information sur ce sujet sur internet.

    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
    Dim myIE As Object
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim InputGoogleZoneTexte As HTMLInputElement
    Dim InputGoogleBouton As HTMLInputElement
    Dim HtmlElementStandard As HTMLGenericElement
    Dim LeTexteExtrait As String
    Dim MailyTesty() As String
    On Error GoTo Sortie
    Set myIE = CreateObject("InternetExplorer.Application")
     
     'on rentre l'URL de gmail
     myIE.Navigate URL:="https://accounts.google.com/ServiceLogin?service=mail&continue=https://mail.google.com/mail/&hl=fr"
     
     'Activer pour débugé le code pas à pas
     'myIE.Visible = True
     
       'On attend que la page soit chargé
       Do Until myIE.readyState = READYSTATE_COMPLETE
          DoEvents
       Loop
     
       'On relève toutes les id des objets sur la page
       Set IEDoc = myIE.document
     
       'On défini la zone de texte ou entrer son adresse mail
       Set InputGoogleZoneTexte = IEDoc.all("Email")
       'puis on le rentre
       InputGoogleZoneTexte.Value = "xxxxx@gmail.com"
     
       'On défini la zone de texte ou entrer le mdp
       Set InputGoogleZoneTexte = IEDoc.all("Passwd")
       'puis on le rentre
       InputGoogleZoneTexte.Value = "xxxxx"
     
       'On défini le bouton pour se logger
       Set InputGoogleBouton = IEDoc.all("signIn")
       'On clique
       InputGoogleBouton.Click
     
       'On attends le chargement de la page
       Do Until myIE.readyState = READYSTATE_COMPLETE
          DoEvents
       Loop
       'mais on attends quand même 5 secondes de plus (le chargement
       'de la page ne détecte pas la fin de la barre de "loading" de
       'gmail)
       Application.Wait Time + TimeSerial(0, 0, 5)
     
       'On défini le dernier mail reçut
       Set HtmlElementStandard = IEDoc.body.all(":3g")
     
       'puis on le met dans la variable LeTexteExtrait
       LeTexteExtrait = HtmlElementStandard.innerText
     
           'on rentre dans le mail
           Set InputGoogleBouton = IEDoc.all(":3g")
           InputGoogleBouton.Click
           'On attend le chargement de le page
           Do Until myIE.readyState = READYSTATE_COMPLETE
              DoEvents
           Loop
     
           'Après je n'ai pas trouver comment retrouver le body du mail seul
           'alors j'ai décidé de mettre une balise SOF et EOF avant et après
           ' ce que j'ai pu mettre dans le mail
     
                If InStr(HtmlElementStandard.innerText, "EOF") <> 0 Then
                    LeTexteExtrait = HtmlElementStandard.innerText
                    LeTexteExtrait = Mid(LeTexteExtrait, InStr(LeTexteExtrait, "SOF"))
                    LeTexteExtrait = Mid(LeTexteExtrait, 1, InStr(LeTexteExtrait, "EOF") + 2)
                    LeTexteExtrait = Replace(LeTexteExtrait, "SOF ", "")
                    LeTexteExtrait = Replace(LeTexteExtrait, " EOF", "")
     
                        MailyTesty = Split(LeTexteExtrait, ".")
     
                        For i = 0 To UBound(MailyTesty, 1)
                            Sheets("Base").Range("AY" & i + 1).Value = MailyTesty(i)
                        Next i
                    GoTo Sortie
                End If
           Next
    Sortie:
     
     
       myIE.Quit
    Voilà j'espère que ça pourra aider des personnes souhaitant faire la même chose et si jamais vous avez des suggestions pour améliorer ce code, je suis preneur !

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

Discussions similaires

  1. Copier localement des mails depuis mon compte Gmail
    Par rambc dans le forum Général Python
    Réponses: 4
    Dernier message: 16/03/2012, 08h03
  2. Envoyer un mail d'Access via gmail ?
    Par alexandre47 dans le forum VBA Access
    Réponses: 0
    Dernier message: 28/07/2011, 10h22
  3. [AC-2007] Envoyer un mail d'Access via gmail ?
    Par gsacre dans le forum Access
    Réponses: 4
    Dernier message: 05/07/2011, 10h37
  4. [Thunderbird] Modification du sujet des mails
    Par podz dans le forum Thunderbird
    Réponses: 7
    Dernier message: 16/03/2010, 17h54
  5. Sujet des mail avec IdPOP31 de indy
    Par Coussati dans le forum Delphi
    Réponses: 8
    Dernier message: 13/07/2006, 15h08

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