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 automatique de mail


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur automation industrielle
    Inscrit en
    Février 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur automation industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2020
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Envoi automatique de mail
    Bonjour,

    j'ai fait il y a quelques temps un fichier pour aider mon beau-père à la facturation des pensionnaires de sa ferme.

    Le fichier le guide dans la création des factures, puis lui permet d'envoyer la facture par mail en un clic sur un bouton.

    Tout fonctionnait bien jusqu'à en tout cas cet été.

    Maintenant, lorsque j'essaie d'envoyer le mail, une erreur survient.

    La version du PC n'a pas changé, son mot de passe non plus. Auriez-vous une idée de la raison de ce problème?

    Le code de ma Public Sub:
    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
    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
     
                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
    L'appel de ma fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MailEnvoi "smtp-mail.outlook.com", True, "monmail@hotmail.com", "password", 25, 10, "monmail@hotmail.com", AdresseMail, "", Sujet, CorpsDeTexte, NomFichier
    Merci d'avance pour votre aide

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

    Informations professionnelles :
    Activité : Formateur/développeur

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

    En cherchant un peu, il semble que CDO soit bloqué un peu partout comme méthode d'envoi de mail

    par exemple ici : https://www.developpez.net/forums/d1...exion-serveur/

    Je suppose que c'est dû à une sécurisation des envoi de mails par les différents fournisseurs d'accès
    Voir pour envoyer un mail en passant par un client (par exemple Outlook) mais ça oblige à configurer un compte mail sur un logiciel choisi

  3. #3
    Membre éclairé Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 458
    Points : 800
    Points
    800
    Par défaut
    Bonsoir,
    Quelle erreur et sur quelle ligne ?
    Le port 25 est souvent bloqué, préférez lui le 587.
    Vérifiez le Serveur smtp : smtp-mail.outlook.com
    Si les informations d'authentification sont bonnes alors :
    Coller un point d'arrêt sur la ligne 9 (Clic sur la ligne puis touche F9
    Enfin faire du pas à pas avec F8 pour voir où cela coince.
    Jean-Paul sous Office 365 et Windows 10/11 (Intel I7 16Go)

    Si vous avez trouvé réponse à votre question penser à la passer en Vous avez aimé la discussion alors un fait toujours plaisir.
    Le savoir n'a de valeur que s'il est partagé.
    La vérité de demain se nourrit de l'erreur d'hier. Antoine de Saint-Exupéry

  4. #4
    Candidat au Club
    Homme Profil pro
    Ingénieur automation industrielle
    Inscrit en
    Février 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur automation industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2020
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Valtrase Voir le message
    Bonsoir,
    Quelle erreur et sur quelle ligne ?
    Le port 25 est souvent bloqué, préférez lui le 587.
    Vérifiez le Serveur smtp : smtp-mail.outlook.com
    Si les informations d'authentification sont bonnes alors :
    Coller un point d'arrêt sur la ligne 9 (Clic sur la ligne puis touche F9
    Enfin faire du pas à pas avec F8 pour voir où cela coince.
    Bonsoir ! Merci pour votre réaction rapide ;-)

    Le message "Le transport a échoué dans sa connexion au serveur", au moment de faire le .send (cf pièce jointe).

    Nom : Tranport.PNG
Affichages : 49
Taille : 27,4 Ko

    Egalement, voici ma config mail

    Nom : smtp.png
Affichages : 47
Taille : 70,8 Ko

    Par acquis de conscience j'ai également essayé un autre PC et une autre adresse mail, mais le résultat est le même, que ce soit port 25 ou 587.

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur automation industrielle
    Inscrit en
    Février 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur automation industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2020
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par tototiti2008 Voir le message
    Bonsoir,

    En cherchant un peu, il semble que CDO soit bloqué un peu partout comme méthode d'envoi de mail

    par exemple ici : https://www.developpez.net/forums/d1...exion-serveur/

    Je suppose que c'est dû à une sécurisation des envoi de mails par les différents fournisseurs d'accès
    Voir pour envoyer un mail en passant par un client (par exemple Outlook) mais ça oblige à configurer un compte mail sur un logiciel choisi
    Bonsoir ! Merci pour votre réaction rapide ;-)

    ça reste une solution. Mais comme il y a plusieurs comptes outlook configurés sur le PC, je ne suis pas sûr de savoir comment faire pour choisir le bon compte au moment de l'envoi.
    Je vais creuser dans ce sens.

    En tout cas merci pour votre réaction !

  6. #6
    Membre éclairé Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 458
    Points : 800
    Points
    800
    Par défaut
    Re,
    Cela doit pouvoir se faire, en faisant une boucle, mais je pense qui si le compte n'est pas renseigné c'est celui par défaut qui est utilisé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        ' // Créer un nouvel élément de courriel
        Set Courriel = OutlookApp.CreateItem(0)
     
        ' // Obtenir le compte par défaut
        For Each Compte In OutlookApp.Session.Accounts
            If Compte = OutlookApp.Session.Accounts.Item(1) Then
                Courriel.SendUsingAccount = Compte
                Exit For
            End If
        Next Compte
    Bonne programmation.
    Jean-Paul sous Office 365 et Windows 10/11 (Intel I7 16Go)

    Si vous avez trouvé réponse à votre question penser à la passer en Vous avez aimé la discussion alors un fait toujours plaisir.
    Le savoir n'a de valeur que s'il est partagé.
    La vérité de demain se nourrit de l'erreur d'hier. Antoine de Saint-Exupéry

Discussions similaires

  1. [Wamp] envoi automatique de mails en php
    Par arezki76 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 13/12/2007, 23h32
  2. [Mail] Envoi automatique de mail & génération pdf
    Par moabomotal dans le forum Langage
    Réponses: 1
    Dernier message: 01/06/2006, 09h46
  3. [Servlet]Envoi automatique de mails d'alerte
    Par spk4ever dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 11/05/2006, 15h06
  4. Envoi automatique de mails d'alerte
    Par spk4ever dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/05/2006, 12h11
  5. [Mail] envoi automatique de mail
    Par calitom dans le forum Langage
    Réponses: 17
    Dernier message: 04/04/2006, 17h21

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