Envoi mail auto via VBA sur Gmail

Résolu
texastina Messages postés 55 Statut Membre -  
 jh -
Bonjour à tous!

Je souhaiterais envoyé un mail automatiquement via un classeur excel,

Petites précisions : Application de l'expéditeur et du receveur => Gmail
Le corps du mail sera composé d'une seul phrase

J'ai déjà commencé à récupérer un code d'une autre discussion, mais étant débutant je ne comprends pas toutes les lignes,

Sub test2()
Dim Mail As New Message
 
Dim Config As Configuration: Set Config = Mail.Configuration
 
Config(cdoSendUsingMethod) = cdoSendUsingPort
Config(cdoSMTPServer) = "smtp.gmail.com"
Config(cdoSMTPServerPort) = 25
Config(cdoSMTPAuthenticate) = cdoBasic
Config(cdoSMTPUseSSL) = True
Config(cdoSendUserName) = "**@gmail.com"
Config.Fields.Update
 
Mail.To = "**@gmail.com"
Mail.from = Config(cdoSendUserName)
Mail.Subject = "Subject from VBA"
Mail.HTMLBody = "Body from VBA"
 
Mail.Send
MsgBox "Message bien envoyé"
 
End Sub


J'ai aussi quelques questions :
- Faut-il obligatoirement avoir installé l'application GMAIL pour que le code fonctionne ? Ou peut-on aussi passer par internet (Chrome, Expolrer ou autre) ?

- Quelle sont les significations des lignes 3 à 9 (Config....) ?

Je vous remercie par avance de vos réponses :)
Au plaisir de vous lire!

EDIT : Pour poster du code, merci d'utiliser correctement les balises de code.
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

3 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,

    Je ne sais pas où tu as récupéré ce code mais je pense qu'il manque des choses...(et que ce n'est pas du VBA au passage)

    Essaye ça :
    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 pour t'en servir
    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
    


    0
    1. texastina Messages postés 55 Statut Membre
       
      Salut Jordane merci pour ta réponse,

      Le code à été récupéré sur un site avec pourtant assez bonnes réputation,

      J'essais ce code au plus vite et vous fait un petit retour sur ce que ça à donné :)

      Merci encore pour ce code bien détaillé et tes précisions,

      Cordialement
      Nicolas
      0