Envoi mail auto via VBA sur Gmail

Envoi mail auto via VBA sur Gmail Pb sécurité outlook envoi mail auto vba » Forum - VB / VBA Envoi mail Outlook via macro depuis un formulaire sous VBA » Forum - VB / VBA Accusé de reception avec Gmail (Résolu) » Forum - Gmail Envoi mail html par VBA Pb avec img src = » Forum - VB / VBA Envoi mail automatique via lotus notes » Forum - Bureautique

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

Forum

Envoi mail auto via VBA sur Gmail Pb sécurité outlook envoi mail auto vba » Forum - VB / VBA Envoi mail Outlook via macro depuis un formulaire sous VBA » Forum - VB / VBA Accusé de reception avec Gmail (Résolu) » Forum - Gmail Envoi mail html par VBA Pb avec img src = » Forum - VB / VBA Envoi mail automatique via lotus notes » Forum - Bureautique

Web: www.shapebootstrap.net

4 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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, "[email protected]", "Pasw", 465, 10, "[email protected]", "[email protected]", "[email protected]", "Suivi des modifications.", "tel truc a été modifile", "" End Sub 




Cordialement, 
Jordane                                                                 

Reply
réponses:
  • texastina

    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

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,

Pour envoyer un mail à partir d'une adresse Gmail sans utiliser Outlook, il faut utiliser l'objet CDO.

La première étape, c'est d'ajouter dans l'éditeur VBA la bibliothèque CDO :
Outils --> Références --> Microsoft CDO WINDOWS FOR 2000

La deuxième étape, c'est d'utiliser ce code

 Sub EnvoiMail()     'Add the Project Reference Microsoft CDO WINDOWS FOR 2000     Dim cdo_msg As New CDO.Message          'configuration message     cdo_msg.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com"     cdo_msg.Configuration.Fields(cdoSMTPConnectionTimeout) = 60     cdo_msg.Configuration.Fields(cdoSendUsingMethod) = cdoSendUsingPort     cdo_msg.Configuration.Fields(cdoSMTPServerPort) = 465     cdo_msg.Configuration.Fields(cdoSMTPAuthenticate) = cdoBasic     cdo_msg.Configuration.Fields(cdoSMTPUseSSL) = True     cdo_msg.Configuration.Fields(cdoSendUserName) = "[email protected]"     cdo_msg.Configuration.Fields(cdoSendPassword) = "ppppppppp"     cdo_msg.Configuration.Fields.Update          'remplissage et envoi message     cdo_msg.To = "adresse1"     cdo_msg.From = "adresse2"     cdo_msg.Subject = "filename Sent to www.???.com "     cdo_msg.TextBody = "File FTP LOG ATTACHED."     cdo_msg.AddAttachment ("C:\Users\nnnnnn\Documents\classeur1.xls")     cdo_msg.Send          'libération objet message     Set cdo_msg = Nothing End Sub 


Le serveur d'envoi du mail est : smtp.gmail.com (ligne 6)
Le port d'envoi du mail est : 465 et non 25 (ligne 9)
Le cryptage SSL doit être activé (ligne 11)
Le user et mot de passe du compte GMail sont à fournir. (lignes 12 et 13)

Reply
réponses:
  • texastina

    Bonjour Thev,

    Merci pour toutes tes réponses ainsi que ce code lui aussi bien détaillé,

    Je comprends mieux les lignes de configuration, même si les chiffres comme 465 ou 25 ou 60 reste un mystère.. :)

    J'essais aussi le code et te fait un retour rapide,

    Merci bonne journée
    Cordialement,
    Nicolas

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed