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

VBA Discussion :

Excel VBA / W10 : Envoyer des emails via SMTP


Sujet :

VBA

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut Excel VBA / W10 : Envoyer des emails via SMTP
    Bonjour à tous.
    Je sais que le sujet a été évoqué quelques fois sur le site, mais je n'ai pas trouvé de solution.
    Voici mon souci.

    Depuis plusieurs années, en vba / Excel, nous envoyons des emails avec le code suivant :
    Code excel : 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
     
            WMessage1 = "Envoi du mail à " + P_Destinataire
            WMessage2 = ""
            WMessage3 = ""
            WDestinataire = P_Destinataire
            Set WCdoMessage = CreateObject("CDO.Message")
            With WCdoMessage
                .From = WFrom
                .To = WDestinataire
                .Subject = P_Objet
                .TextBody = P_Corps
                .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
                .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = WUser
                .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = WMdp
                .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
                .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = WServeurSMTP 'adresse IP du serveur SMTP smtp.xxxx.xxxx
                .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = WPort '587
                .Configuration.Fields.Update
                .AddAttachment (P_Fichier)
                .Send
            End With

    Ce code fonctionne parfaitement depuis, donc, très longtemps.

    Je viens d'apprendre qu'il fallait que je change le serveur SMTP, dont on m'a donné les nouveaux paramètres avec une nouvelle adresse IP, startls 1.2 et toujours le port 587.
    J'ai essayé plein de choses trouvées sur le net et surtout ici, mais rien n'a fonctionné.

    Voici le dernier code utilisé :
    Code excel : 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
     
            WMessage1 = "Envoi du mail à " + P_Destinataire
            WMessage2 = ""
            WMessage3 = ""
            Call Affiche_Message(G_NOM_APPLI_LONG, "NON", "SUITE", "OUI", WMessage1, WMessage2, WMessage3)
            WDestinataire = P_Destinataire
            Set WCdoMessage = CreateObject("CDO.Message")
            With WCdoMessage
                .From = WFrom
                .To = WDestinataire
                .Subject = P_Objet
                .TextBody = P_Corps
                .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
                .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = WUser
                .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = WMdp
                .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
                .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = WServeurSMTP
                .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = WPort
    ' Les 3 lignes ajouitées...
                .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/tlsprotocol") = 1 '1 pour TLS 1.2
                .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True 'True pour SSL/TLS
                .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    '...
                .Configuration.Fields.Update
                .AddAttachment (P_Fichier)
                .Send
            End With

    Mais bien, sur ça ne fonctionne pas, et j'ai toujours la même erreur :
    Nom : err_smtp01.png
Affichages : 73
Taille : 28,0 Ko

    J'en appelle donc à vos lumière pour trouver une solution, car je suis vraiment dans le caca

    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 165
    Billets dans le blog
    2
    Par défaut
    Bonsoir,

    j'ai bien peur que ce soit la fin des envois de mail par CDO
    https://www.developpez.net/forums/d2.../#post12006266

    pas assez spécialiste du sujet pour proposer une alternative (à part contrôler un client de messagerie lourd qui serait déjà configuré avec un compte de messagerie en VBA, il y a plusieurs codes qui existent pour envoyer un mail via Outlook par exemple)

  3. #3
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Citation Envoyé par tototiti2008 Voir le message
    Bonsoir,

    j'ai bien peur que ce soit la fin des envois de mail par CDO
    https://www.developpez.net/forums/d2.../#post12006266

    pas assez spécialiste du sujet pour proposer une alternative (à part contrôler un client de messagerie lourd qui serait déjà configuré avec un compte de messagerie en VBA, il y a plusieurs codes qui existent pour envoyer un mail via Outlook par exemple)
    Parle pas de malheur !
    J'ai 2 grosses appli qui fonctionnent encore très bien avec le CDO sur le 587, derrière un proxy, sur l'ancien serveur qu'on utilise depuis de très nombreuses années.
    Mon problème est qu'avec le nouveau serveur qu'on vient de me donner, ça ne fonctionne pas avec le 587, mais par contre (ce que je ne comprends pas) ça fonctionne très bien sur le 25 !!!

Discussions similaires

  1. impossible d'envoyer des emails via outlook 2007+gmail
    Par med_alpa dans le forum Outlook
    Réponses: 1
    Dernier message: 05/03/2010, 10h27
  2. [XL-2007] envoyer des email via outlook a partir d'une liste excel
    Par kaayna dans le forum Excel
    Réponses: 1
    Dernier message: 10/02/2010, 16h53
  3. Réponses: 0
    Dernier message: 09/02/2010, 10h52
  4. [AC-2007] envoyer des emails avec vba access
    Par David1259 dans le forum VBA Access
    Réponses: 4
    Dernier message: 05/02/2010, 17h54
  5. je peux pas envoyer des emails via mon application
    Par scofild20 dans le forum Réseau
    Réponses: 7
    Dernier message: 20/10/2007, 22h54

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