Envoyer mails avec Gmail à partir d'Excel

Bonjour :

Je voulais envoyer des mails avec Gmail à partir d'Excel. Voici programme :

Sub Test()
 MailEnvoi "smtp.googlemail.com", True, "pao@distrame.fr", "PASSWORD", 465, 10, "pao@distrame.fr", "pao@distrame.fr", "stg.pao@distrame.fr", "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

En gros, j'ai crée une procédure MailEnvoi qui va faire le boulot. Par contre je sais pas si je dois mettre "465, 10" comme port parce que je ne sais pas comment voir la configuration.

J'ai eu une erreur d'exécution : Le code d'erreur de transport était 0x80040217 à la ligne

.Send 'envoi du message

Quelqu'un a une solution?Merci d'avance

bonjour,

plus de précision sur la configuration Gmail smtp server ici

https://support.google.com/a/answer/176600?hl=fr

h2so4 a écrit :

bonjour,

plus de précision sur la configuration Gmail smtp server ici

https://support.google.com/a/answer/176600?hl=fr

Bonjour :

Merci de m'avoir répondu. J'avais vu la page que vous m'avez montré, mais je n'ai pas compris ce qu'il faut faire :

  • Port 465 (SSL requis).
    Port 587 (TLS requis).
    Adresses IP dynamiques autorisées

Qu'est-ce qu'il faut je configure exactement?

je pense au port 465 mais en combinaison avec un compte gmail pour l'authentification et l'envoyeur.

h2so4 a écrit :

je pense au port 465 mais en combinaison avec un compte gmail pour l'authentification et l'envoyeur.

Je pense pareil. c'est ce que j'avais mis dans le programme. Mais la connexion ssl on peut s'en profiter comme ça ou il faut télécharger certain truc?

FrancisZheng a écrit :
h2so4 a écrit :

je pense au port 465 mais en combinaison avec un compte gmail pour l'authentification et l'envoyeur.

Je pense pareil. c'est ce que j'avais mis dans le programme. Mais la connexion ssl on peut s'en profiter comme ça ou il faut télécharger certain truc?

en principe tu peux en profiter comme ça. mais le compte mentionné dans ton code, ne me parait pas être un compte gmail. as-tu essayé de configurer ton compte Gmail dans outlook ?

Bonjour,

Faut il forcement configurer gmail avec outlook?

Moi j'ai essayé avec ce code la et j'ai aussi une erreur avec Send.

Je comprends pas...

Nossila a écrit :

Bonjour,

Faut il forcement configurer gmail avec outlook?

[/attachment]

non mais cela permet de vérifier que les paramètres utilisés sont corrects. Si cela fonctionne avec outlook, cela devrait aussi fonctionner via vba.

h2so4 a écrit :
FrancisZheng a écrit :
h2so4 a écrit :

je pense au port 465 mais en combinaison avec un compte gmail pour l'authentification et l'envoyeur.

Je pense pareil. c'est ce que j'avais mis dans le programme. Mais la connexion ssl on peut s'en profiter comme ça ou il faut télécharger certain truc?

en principe tu peux en profiter comme ça. mais le compte mentionné dans ton code, ne me parait pas être un compte gmail. as-tu essayé de configurer ton compte Gmail dans outlook ?

En fait c'est pas un mail xx@gmail.xx, mais c'est du gmail pour l'entreprise. Tout est pareil sauf que c'est @distrame.

Je vais télécharger Outlook ce soir pour voir la configuration. Bonne fin de journée et à demain.

moi aussi c'est du gmail pour l'entreprise, et je comprends vraiment pas quel code il faut mettre pour que ça marche...

j'ai testé tellement de truc... Besoin d'aide aussi

Bonjour,

s'il s'agit d'une version gmail entreprise il faut demander au gestionnaire du serveur quels sont les paramètres à utiliser.

Bonjour à tous :

J'ai trouvé la solution. Avant d'envoyer des mails, il faut autoriser votre envoie sur gmail:

Cochez la case "Activer".

Ensuite, utilisez un de ces deux codes ci-dessous :

Sub test1()
    Dim iMsg As Object
    Dim iConf As Object
    Dim strbody As String
    Dim Flds As Variant

    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")

    iConf.Load -1    ' CDO Source Defaults
    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") = "**@gmail.**"
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "**"
        .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") = 25
        .Update
    End With

        With iMsg
        Set .Configuration = iConf
        .To = "**@gmail.**"
        .CC = ""
        .BCC = ""
        .from = """**"" <**@gmail.**>"
        .Subject = "Confirmation d'inscription"
        .textBody = "Bonjour "
        .Send

    End With

MsgBox "Votre message a bien été envoyé!"

End Sub
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.**"
Config(cdoSendPassword) = "**"
Config.Fields.Update

Mail.To = "**@gmail.**"
Mail.from = Config(cdoSendUserName)
Mail.Subject = "Subject from VBA"
Mail.HTMLBody = "Body from VBA"

Mail.Send
MsgBox "Votre message a bien été envoyé!"

End Sub

Problème résolu.

Bonjour,

Mon problème = Ma recherche de résolution de l'erreur 0x80040217 ("Le message n'a pu être envoyé vers le serveur SMTP") a pris plusieurs semaines, aussi je ne résiste pas à vous communiquer humblement une solution. J'utilise Excel 2016, Windows 10 et la messagerie Gmail. J'envoie un message depuis un classeur Excel en VBA.

Ma solution = Il faut modifier les paramètres de votre messagerie Gmail de la façon suivante :

1. Ouvrir votre messagerie Gmail

2. Clic sur la flèche du bouton Paramètres de Gmail

3. Choisir Paramètres

4. Clic sur l’onglet « Compte et importation »

5. Choisir « Autres paramètres de votre compte »

6. Dans Préférences de compte : choisir « Accessibilité»

7. À gauche dans le bandeau « Mon compte » choisir « Connexion et sécurité »

8. Descendre en bas de la page jusqu’au paragraphe « Paramètre "Autoriser les applications moins sécurisées" et déplacer le curseur à droite pour activer cette fonction.

La référence "Microsoft CDO for Windows 2000 Library" doit être présente au niveau du classeur Excel (VBA / Outils / Références).

J'espère que cela fonctionnera pour vous.

Rechercher des sujets similaires à "envoyer mails gmail partir"