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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2018
    Messages : 15
    Points : 12
    Points
    12

    Par défaut [VBscript] Envoie d'un mail sur année bissextile

    Bonjour,
    Oui c'est encore moi !
    Alors mon projet a vraiment bien avancé depuis les derniers topics et est presque fonctionnel ! je suis en phase de peaufinage,
    J'aurais besoin d'un peu d'aide sur un problème tout bête, en fait le programme va envoyer un email contenant le rapport des activités du jour
    l'envoie du mail à heure fixe est fonctionnel (on l'envoie a 23h59 et 11h59) et je voudrais aussi que on puisse envoyer se mail a la fin du mois (attention février et au année bissextiles ^^)
    alors voila mon programme pour le moment
    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
    Dim mail1,mail2,mail3,mail4,mail5,email,heureM
    'Les Procédures ayant une portée locale peuvent être mises en œuvre ici.
    'Cette procédure est exécutée une seule fois lorsque le module graphique est commencé.
    Sub Graphics_OnStart()
    End Sub
    'Cette procédure est exécutée en continu tandis que le module graphique est en cours d'exécution.
    Sub Graphics_WhileRunning()
    	'*** recupertation des addresses mails
    	email = ""
    	mail1 = $GetTagValue("email1",1)
    	mail2 = $GetTagValue("email2",1)
    	mail3 = $GetTagValue("email3",1)
    	mail4 = $GetTagValue("email4",1)
    	mail5 = $GetTagValue("email5",1)
    	If mail1 <> "" Then
    		email = mail1
    	End If
    	If mail2<> "" Then
    		email = email & ";" & mail2
    	End If
    	If mail3 <> "" Then
    		email = email & ";" & mail3
    	End If
    	If mail4<> "" Then
    		email = email & ";" & mail5
    	End If
    	If mail5 <> "" Then
    		email = email & ";" & mail5
    	End If
        '*** Envoie du email a 23:59:59
     
        	heureM =$Time 
          If heureM="11:59:59"  Or heurM="23:59:59 " Then
    		$SendEmailExt("-DO NOT REPLY- Compte rendu du jour","Bonjour, Voila les Données , CDLT",email,"","", "C:\Users\PRODERGIE\Documents\InTouch Machine Edition v8.1 Projects\vitogaz\save.txt")
    		End If	
    End Sub
    Comme d'habitude merci beaucoup d’avance pour votre aide :3

    [edit]
    J'ai oublier de préciser mais la configuration de l'adresse mail du script c'est fait ailleurs via un outil de mon programme d'automatisation ^^
    Pour se que serai intéressé voila la configuration en script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CnfEmail("hostname/IP du serveur sortant","email envoyant le mail","hostname/Ip du serveur entrant", "Login", "password", "timeout limit(en seconde)", optNumAuthType, optStrSMTPUser, optStrSMTPPassword )

  2. #2
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 595
    Points : 9 971
    Points
    9 971

    Par défaut

    Salut

    Je suppose qu'un Timer tourne quelque par dans ton code et va jouer ta sub Graphics_WhileRunning

    Le code qui suit devrait être dans la partie Timer (procédure déclenchée au moins toutes les minutes).
    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
    If Month(Date) <> Month(dateadd("d",1,Date)) then
            'msgbox "Aujourd'huis nous sommes le dernier jour du mois"
            If (Hour(Time)="11" Or Hour(Time)="23") and Minute(Time)="59" then
                    'msgbox "il est 11h59 ou 23h59"
                    If EmailEnvoyer = false Then
                            'msgbox "L'Email n'a pas encor été envoyé"
                            'envoyer l'Email
                            Graphics_WhileRunning()
                            EmailEnvoyer = True
                    End if
            End If
            If (Hour(Time)="12" Or Hour(Time)="0") Then EmailEnvoyer = False
            Else
            'msgbox "Aujourd'huis nous ne sommes pas le dernier jour du mois"
    End If
    Dans ta procédure Graphics_WhileRunning, tu peux supprimer les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        	heureM =$Time 
          If heureM="11:59:59"  Or heurM="23:59:59 " Then
    et son End If car toutes les conditions, 11h59 ou 23h59 et dernier jours du mois sont vérifier dans le code fournit.
    Ne pas oublier de déclarer la variable global EmailEnvoyer en l'initialisant à False.

    Précision, If Month(Date) <> Month(dateadd("d",1,Date)) then te permet de te passer de surveiller année bissextile ou pas.
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2018
    Messages : 15
    Points : 12
    Points
    12

    Par défaut

    Merci beaucoup our ton aide
    petit question comment fonctionne la fonction ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Month(dateadd("d",1,Date)
    si j'ai bien compris on rajoute 1 jour a la date et on compare les deux mois ?
    Si oui c'est super ingénieux
    merci encore pour ton aide

    Re alors voila le code final
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       If Month(Date) <> Month(DateAdd("d",1,Date)) Then
           	If $Time="23:59:59" Then
    					$SendEmailExt("-DO NOT REPLY- Compte rendu du jour","Bonjour, Voila les Données , CDLT",email,"","", "C:\Users\PRODERGIE\Documents\InTouch Machine Edition v8.1 Projects\vitogaz\save.txt")
    		 	End If
        End If
        If $time="11:59:59"  Or $time="23:59:59 " Then
    			$SendEmailExt("-DO NOT REPLY- Compte rendu du jour","Bonjour, Voila les Données , CDLT",email,"","", "C:\Users\PRODERGIE\Documents\InTouch Machine Edition v8.1 Projects\vitogaz\save.txt")
    	End If
    Je me suis permis de remettre la vérification de l'heure précédente car en fait on doit envoyer un mail de raport tout les jours a 11h59 et 23h59 avec en plus un rapport mensuel.
    Voila merci pour ton aide en attendant 2020 pour tester le code (je plaisante)

    Et pour repondre a ta question en fait dans mon projet automate le Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub Graphics_WhileRunning()
    Va être exécuter en boucle par l'automate.

  4. #4
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 595
    Points : 9 971
    Points
    9 971

    Par défaut

    Re
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      If Month(Date) <> Month(DateAdd("d",1,Date)) Then
        If $Time="23:59:59" Then
          $SendEmailExt("-DO NOT REPLY- Compte rendu du jour","Bonjour, Voila les Données , CDLT",email,"","", "C:\Users\PRODERGIE\Documents\InTouch Machine Edition v8.1 Projects\vitogaz\save.txt")
        End If
      End If
      If $time="11:59:59"  Or $time="23:59:59" Then
        $SendEmailExt("-DO NOT REPLY- Compte rendu du jour","Bonjour, Voila les Données , CDLT",email,"","", "C:\Users\PRODERGIE\Documents\InTouch Machine Edition v8.1 Projects\vitogaz\save.txt")
      End If
    Je ne comprend pas trop la logique, pour moi, pour le dernier jour du mois, à l'heure 23:59:59, tu envoies le mail (ligne 3) puis tu arrives sur la 2éme condition If ligne 6 qui est elle aussi vraie, donc tu ré envoies le mail.

    Attention toujours ligne 6 ligne, $time="23:59:59 ", tu as un espace de trop après les secondes.

    Ta 2éme condition est toujours vraie (pour les 2 horaires) tous les jours du mois, pourquoi dans ce cas vérifier le dernier jour du mois ?

    Dernière chose qui me gêne un peu, tu dis que c'est l'automate qui va exécuter en boucle Graphics_WhileRunning(), il faut qu'il le fasse au moins toutes les minutes, surtout pas moins, car de 11H59mn00Sc à 11H59mn59Sc et de 23H59mn00Sc à 23H59mn59Sc, si le cadencement est toutes les secondes, tu envoies 118 mails tous les jours et 177 le dernier jour du mois.
    C'est pourquoi j'avais ajouté une variable EmailEnvoyer.
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. envoi d'un mail sur centos 5.3
    Par dianesoft dans le forum Web
    Réponses: 1
    Dernier message: 19/07/2013, 17h06
  2. Envoi d'un mail sur Outllok 2003 à travers PHP
    Par souminet dans le forum Débuter
    Réponses: 4
    Dernier message: 14/03/2010, 09h55
  3. Tester l'envoi d'e-mails sur son PC avec EasyPHP
    Par khalid_kha dans le forum EasyPHP
    Réponses: 8
    Dernier message: 03/08/2007, 17h36
  4. [Mail] Probléme avec envoi mail sur ovh
    Par Woufeigh dans le forum Fonctions
    Réponses: 6
    Dernier message: 19/04/2007, 19h48
  5. [VB6] Envoi d'un mail par clique sur un mot
    Par batmat86 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/03/2006, 12h31

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