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 :

envoi de mail avec une macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 120
    Points : 51
    Points
    51
    Par défaut envoi de mail avec une macro
    Bonjour à tous!!!!!

    Voila je j’essaie d'envoyer des mail avec une macro via mon compte g mail mais je me heurte à cette erreur.

    Nom : Capture.PNG
Affichages : 2085
Taille : 28,6 Ko

    voici mon code:

    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
    Set cdomsg = CreateObject("CDO.message")
    With cdomsg.Configuration.Fields
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'NTLM method
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
    .Item("http://schemas.microsoft.com/cdo/configuration/smptserverport") = 587
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "mygmail@gmail.com"
    .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "mypassword"
    .Update
    End With
    ' build email parts
    With cdomsg
    .To = "somebody@somedomain.com"
    .From = "mygmail@gmail.com"
    .Subject = "the email subject"
    .TextBody = "the full message body goes here. you may want to create a variable to hold the text"
    .Send
    End With
        Set cdomsg = Nothing
    L'erreur se situe au niveau du .send


    Quelqu'un pourrai m'aider svp ? Je l'en remercie d'avance.

  2. #2

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour

    entre nous avec CDo je ne vois pas l'intereret de passer par le serveur smtp de gmail

    meme si ta boite mail est chez eux
    le serveur smtp de ton FAI suffit
    chez moi SFR
    fait l'essaie en changeant le serveur en rouge pour le tiens et met ton addresse meme a la place de ce qui est en bleu et regarde ta boite Mail
    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
    Sub test()
    Set cdomsg = CreateObject("CDO.message")
    With cdomsg.Configuration.Fields
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'NTLM method
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.sfr.fr"
    .Update
    End With
    ' build email parts
    With cdomsg
    .To = "destinataire@hotmail.fr"
    .From = "patosh@gmail.com"
    .Subject = "essaie"
    .TextBody = "the full message body goes here. you may want to create a variable to hold the text"
    .Send
    End With
        Set cdomsg = Nothing
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Moi je travail dans une petite boite qui utilise un compte entreprise chez Google; comme chaque adresse mail est payante, j'utilise un compte noreply chez gmail (gratuit) pour un automate d'envois de mails! Et ça marche très bien!

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Merci beaucoup pour vos réponse!!!

    Je suis obligé d'utiliser le smtp de gmail car c'est un petit projet pour la ou je travail et nous utilisons des adresses emails chez gmail.

    j'ai testé ton code:

    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
    Sub test()
     MailEnvoi "smtp.googlemail.com", True, "My.Mail@gmail.com", "Pasw", 465, 10, "My.Mail@gmail.com", "Vous.Mail@gmail.com", "Copy@gmail.com", "Suivi des modifications.", "tel truc a été modifile", ""
    End Sub
    Public Sub MailEnvoi(Serveur, Identify, User, PassWord, Port, Delay, Expediteur, Dest, DestEnCopy, Objet, Body, Pj)
    ' sub pour envoyer les mails
    Dim msg
    Dim Conf
    Dim Config
    Dim ess
    Dim splitPj
    Dim IsplitPj
    Set msg = CreateObject("CDO.Message") 'pour la configuration du message
    Set Conf = CreateObject("CDO.Configuration") '  pour la configuration de l'envoi
    Dim strHTML
     
    Set Config = Conf.Fields
     
    ' Configuration des parametres d'envoi
    '(SMTP - Identification - SSL - Password - Nom Utilisateur - Adresse messagerie)
    With Config
    If Identify = True Then
        .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") = User
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = PassWord
    End If
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = Port
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = Serveur
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = Delay
        .Update
     
    End With
     
     
    'Configuration du message
    'If E_mail.Sign.Value = Checked Then Convert ServeurFrm.SignTXT, ServeurFrm.Text1
     
    With msg
        Set .Configuration = Conf
        .To = Dest
      .cc = DestEnCopy
        .FROM = Expediteur
        .Subject = Objet
    '
     
        .HTMLBody = Body '"<p align=""center""><font face=""Verdana"" size=""1"" color=""#9224FF""><b><br><font face=""Comic Sans MS"" size=""5"" color=""#FF0000""></b><i>" & body & "</i></font> " 'E_mail.ZThtml.Text
                If Pj <> "" Then
            splitPj = Split(Pj & ";", ";")
     
            For IsplitPj = 0 To UBound(splitPj)
                If Trim("" & splitPj(IsplitPj)) <> "" Then
                    .AddAttachment Trim("" & splitPj(IsplitPj))
                End If
            Next
     
        End If
        .Send 'envoi du message
     
    End With
    ' reinitialisation des variables
    Set msg = Nothing
    Set Conf = Nothing
    Set Config = Nothing
     
    End Sub
    Et j'ai une érreur que je n'arrive pas à corriger:

    Nom : Capture2.PNG
Affichages : 1841
Taille : 20,9 Ko

    EDIT: je crois que j'y suis presque car sur mon compte gmail( que j'utilise pour envoyer un mail avec le code) il a bloqué une tentative de connexion et sachant que c'était, je pense que je suis sur le bon chemin encore merci. Mais j'ai relancé et j'ai toujours l'erreur.

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour
    si c'est au boulottu passe certainemet par un subrouteur voir un serveur local
    il faut don parametre par le proxi et la bon courage
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par Google.fr
    En général, les clients de messagerie configurent automatiquement les paramètres de connexion IMAP en fonction de votre compte. Nous vous conseillons toutefois de vérifier ci-dessous que ces derniers sont corrects.

    Si votre client de messagerie ne figure pas dans la liste ci-dessous, les instructions qui suivent vous aideront à configurer la connexion IMAP. Si vous rencontrez des difficultés, nous vous conseillons de contacter le service d'assistance de votre client de messagerie.

    Serveur de courrier entrant (IMAP) - SSL requis
    imap.gmail.com
    Port : 993
    SSL requis : Oui
    Serveur de courrier sortant (SMTP) - TLS requis
    smtp.gmail.com
    Port : 465 ou 587
    SSL requis : Oui
    Authentification requise : Oui

    Utiliser des paramètres identiques à ceux du serveur de courrier entrant
    Nom complet ou nom à afficher : [votre nom]
    Nom du compte ou Nom d'utilisateur : votre adresse Gmail complète (nomutilisateur@gmail.com) Les utilisateurs Google Apps doivent indiquer leur nom d'utilisateur sous cette forme : nomutilisateur@votre_domaine.com
    Adresse de messagerie : votre adresse Gmail complète (nomutilisateur@gmail.com). Les utilisateurs Google Apps doivent indiquer leur adresse e-mail sous cette forme : nomutilisateur@votre_domaine.com
    Mot de passe : votre mot de passe Gmail
    Si votre client n'accepte pas l'authentification SMTP, vous ne pourrez pas envoyer d'e-mails par l'intermédiaire de votre adresse Gmail.

    En outre, si vous rencontrez des difficultés pour envoyer des e-mails alors que le chiffrement est activé pour SMTP dans votre client de messagerie, essayez de configurer votre serveur SMTP sur un autre port : 465 ou 587.
    je me suis servis de ça pour configurer CDO (Avec smtp.googlemail.com, mais smtp.gmail.com marche) et ça marche très bien, j'ai un automate qui utilise ce code toutes les deux heures!

    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
    Sub test()
     MailEnvoi "smtp.googlemail.com", True, "My.Mail@gmail.com", "Pasw", 465, 10, "My.Mail@gmail.com", "Vous.Mail@gmail.com", "Copy@gmail.com", "Suivi des modifications.", "tel truc a été modifile", ""
    End Sub
    Public Sub MailEnvoi(Serveur, Identify, User, PassWord, Port, Delay, Expediteur, Dest, DestEnCopy, Objet, Body, Pj)
    ' sub pour envoyer les mails
    Dim msg
    Dim Conf
    Dim Config
    Dim ess
    Dim splitPj
    Dim IsplitPj
    Set msg = CreateObject("CDO.Message") 'pour la configuration du message
    Set Conf = CreateObject("CDO.Configuration") '  pour la configuration de l'envoi
    Dim strHTML
     
    Set Config = Conf.Fields
     
    ' Configuration des parametres d'envoi
    '(SMTP - Identification - SSL - Password - Nom Utilisateur - Adresse messagerie)
    With Config
    If Identify = True Then
        .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") = User
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = PassWord
    End If
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = Port
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = Serveur
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = Delay
        .Update
     
    End With
     
     
    'Configuration du message
    'If E_mail.Sign.Value = Checked Then Convert ServeurFrm.SignTXT, ServeurFrm.Text1
     
    With msg
        Set .Configuration = Conf
        .To = Dest
      .cc = DestEnCopy
        .FROM = Expediteur
        .Subject = Objet
    '
     
        .HTMLBody = Body '"<p align=""center""><font face=""Verdana"" size=""1"" color=""#9224FF""><b><br><font face=""Comic Sans MS"" size=""5"" color=""#FF0000""></b><i>" & body & "</i></font> " 'E_mail.ZThtml.Text
                If Pj <> "" Then
            splitPj = Split(Pj & ";", ";")
     
            For IsplitPj = 0 To UBound(splitPj)
                If Trim("" & splitPj(IsplitPj)) <> "" Then
                    .AddAttachment Trim("" & splitPj(IsplitPj))
                End If
            Next
     
        End If
        .Send 'envoi du message
     
    End With
    ' reinitialisation des variables
    Set msg = Nothing
    Set Conf = Nothing
    Set Config = Nothing
     
    End Sub
    c'est la même configuration que Thunderbird, je t'invites à l’installer et configurer en automatique ton compte et de regarder en suite la configuration Smtp!
    Images attachées Images attachées  
    Dernière modification par Invité ; 04/08/2015 à 14h17.

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour durupt
    et si au boulot ils passent par un proxy c'est walouh!!!
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour Patrick,
    Je pense que c'est possible de configurer cdo de passer par un proxy mais je ne l'ai jamais fait!

    C'est pour cela que je lui ai proposé de tester par Thunderbird!

    Mais je doute car dans un poste précédant il déclares se faire remonter les bretelles par Google; et pas par le par feu!

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    oui c'est possible a ce qu'il parait faut il aussi que le serveur local eu été paramétré pour cela par defaut non

    le mieux pour eviter de partir dans des tehories du complot

    c'est de savoir si on peut identifier son fournisseur
    j'ai integré ca dans mes app excel mail CDO

    au cas ou je n'est pas de serveur ou erreur sur smtp ca lance ce test
    je l'ai adapter avec un msgbox

    celui ci devrait repondre a toutes tes questions ou pas c'est ca qui est marrant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub je_suis_chez_qui()
        Dim i As Long, url As String
        url = "http://www.libellules.ch/ip.php"
        With CreateObject("internetexplorer.application")
            .navigate url
            Do: DoEvents: Loop Until .readystate = 4
            Set mesp = .document.getelementsbytagname("p")
            For i = 0 To mesp.Length - 1
                If InStr(mesp(i).innertext, "Fournisseur d'accès : ") > 0 Then mes = mesp(i).innertext & vbCrLf: Exit For
            Next
        End With
        MsgBox mes
    End Sub
    Mais je doute car dans un poste précédant il déclares se faire remonter les bretelles par Google; et pas par le par feu!
    oui moi aussi j'ai des mails que google m'm'envoie

    parce que des fois je me connecte a ma boite gmail avec (iphone(perso),android(boulot),PC chez moi ) donc ca les chagrine un peu va savoir pourquoi?

    peut etre parce que c'est devenu quazi automatique tout ce qui ont android ont une boite gmail condition c'est obligatoire pour aller sur les playstores et autre plateforme de telechargement mobile

    alors que le sufixe gmail existe depuis la nuit des temps
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #11
    Invité
    Invité(e)
    Par défaut
    oui moi aussi j'ai des mails que google m'm'envoie
    ce qui tente à me faire dire que la requête est bien parvenu à Google si non le par feu se serrait manifesté!

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    oui c'est sur si google lui envoie des avertissement c'est que la requete leur a été parvenu

    reste a savoir si elle est conforme ou pas

    j'ai posté le test libellule le mieux comme je le dis c'est d'utiliser le serveur dU FAI

    le teste libellule identifie ton FAI si c'est bon utiliser celui la un point c'est tout je ne vois pas l'interet de passer par le smtp de gmail

    des macro cdo avec gmail on en trouve partout elles commence a dater un peu et je ne suis plus sur que c'est parametrable maintenant

    donc serveur FAI point barre

    moins de code
    plus rapide
    plus fiable

    et rien n'empeche de mettre des adresses mails gmail dans les expediteurs ou destinataires ca n'a rien a voir avec le protocole
    moi ce que j'en dis

    exemple ici
    je suis chez sfr
    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
    Sub test()
    Set cdomsg = CreateObject("CDO.message")
    With cdomsg.Configuration.Fields
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'NTLM method
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.sfr.fr"
    .Update
    End With
    ' build email parts
    With cdomsg
    .To = "moi2@hotmail.fr"
    .From = "patosh@gmail.com"
    .Subject = "essaie"
    .TextBody = "je m'envoie un mail tout seul j'ai pas d'amis "
    .Send
    End With
        Set cdomsg = Nothing
    End Sub
    resultat
    Nom : Capture2.jpg
Affichages : 2027
Taille : 186,8 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par Arendelle Voir le message
    ..
    EDIT: je crois que j'y suis presque car sur mon compte gmail( que j'utilise pour envoyer un mail avec le code) il a bloqué une tentative de connexion et sachant que c'était, je pense que je suis sur le bon chemin encore merci. Mais j'ai relancé et j'ai toujours l'erreur.
    Bonsoir,

    sur ton compte google as tu activé: "Autoriser les applications moins sécurisées à accéder à votre compte" ?
    en activant cela ton code fonctionne... sans message "Expéditeur suspect"

Discussions similaires

  1. [XL-2010] Problème envoi de mail avec Lotus lors du lancement d'une Macro via une tache planifiée
    Par Banjalex59 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/03/2015, 20h19
  2. [XL-2010] Envoi mail automatique avec une macro lors d'un changement d'état d'une cellule
    Par sly77400 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/03/2015, 20h00
  3. [WD14] Envoi de mail avec une signature
    Par azer2003fr dans le forum WinDev
    Réponses: 4
    Dernier message: 23/03/2010, 15h27
  4. [Mail] Envoi de mail avec une boucle posant problème
    Par dj-julio dans le forum Langage
    Réponses: 7
    Dernier message: 09/01/2006, 10h44

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