Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Aide] Usage de la fonction mail + Personnalisation
Auteur Message
Répondre en citant
Message [Aide] Usage de la fonction mail + Personnalisation 
Bonsoir à tous,
Voilà je développe un petit outil de suivie de PC (Suppression temp, nettoyage de quelques clé registres, optimisation de variable registres, et scan de certaines infection, ...), mais voilà je voudrai que le rapport généré à la fin me soit directement envoyé par mail.

Voilà la partie envoi de mon code source, j'ai essayé de le commenter au mieux Smile

Code:
@echo off REM Pour nettoyer le code et ne pas afficher les commandes
title Mail Sender REM Titre de la fenêtre

set rapport=rapport.txt REM Déclaration de la variable rapport

echo Bonjour, je m'appelle %username%. >> %rapport% REM 1ère ligne du rapport
echo Ceci est un message de test. >> %rapport% REM 2ème ligne du rapport
echo. >> %rapport% REM 3ème ligne du rapport
echo. >> %rapport% REM 4ème ligne du rapport
echo Cordialement >> %rapport% REM 5ème ligne du rapport
echo %username% >> %rapport% REM 6ème ligne du rapport

set email=dst445@gmail.comm  >> %rapport% REM J'indique mon email personnel
set smtp=smtp.free.fr  >> %rapport% REM J'indique le smtp Gmail

echo off "%~dp0mailto.exe" -h "!smtp!" -U "!email!" -D "dst445@gmail.com" -S "%username%_%time%_LOG" -MF "rapport.txt"
REM %username%_%time%_LOG a pour but de me permettre à mieux m'y retrouver après dans les mails. Le top serait que le titre du message soit : [Nom du pc]_[Date et heure d'exécution]_LOG.txt
pause>nul
exit



Merci d'avance
dsT



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Aide] Usage de la fonction mail + Personnalisation 
Bonjour
le smtp peut etre différent suivant l utilisateur a qui tu destines cet outil. Il n'est pas possible de détecter le smpt de l utilisateur du PC il faudra peut etre faire une saisie manuelle.

De plus envoyer un mail à l insu de l utilisateur est pas très legal.

Pour ce que tu as demandé :

Code:
%comptuername%_%date%_Log.txt

Suivant le PC il y aurait surement à ajuster la variable %date%

PS : dans le commentaire tu indiques utiliser le smtp gmail alors qu'il s'agit de celui de free.




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Aide] Usage de la fonction mail + Personnalisation 
Voilà j'ai rectifié, maintenant la personne doit indiquer son fournisseur d'accès, et selon sa réponse cela configure le smtp. Et j'ai également modifié la syntaxe pour le fichier.txt
Tu pourrai me dire si la syntaxe est bon, et comment faire pour ajouter une condition si il a mis un choix qui n'existe pas ?

Code:
@echo off REM Pour nettoyer le code et ne pas afficher les commandes
title Mail Sender REM Titre de la fenêtre

set rapport=%username%_%mm%%dd%%yyyy%_log REM Déclaration de la variable rapport

echo Bonjour, je m'appelle %username%. >> %rapport% REM 1ère ligne du rapport
echo Ceci est un message de test. >> %rapport% REM 2ème ligne du rapport
echo. >> %rapport% REM 3ème ligne du rapport
echo. >> %rapport% REM 4ème ligne du rapport
echo Cordialement >> %rapport% REM 5ème ligne du rapport
echo %username% >> %rapport% REM 6ème ligne du rapport

set email=dst445@gmail.com  >> %rapport% REM J'indique mon email personnel
set /p repsmpt=Veuilez ins,erez le nom de votre fournisseur d'acces :
if "%repsmpt%"=="free" goto free
if "%repsmpt%"=="orange" goto orange
if "%repsmpt%"=="numericable" goto neuf

:free
set smtp=smtp.free.fr
goto sendmail

:orange
set smtp=smtp.orange.fr
goto sendmail

:numericable
set smtp=smtp.numericable.fr
goto sendmail

:sendmail
echo off "%~dp0mailto.exe" -h "!smtp!" -U "!email!" -D "dst445@gmail.com" -S "%username%_%mm%%dd%%yyyy%_log" -MF "%username%_%mm%%dd%%yyyy%_log.txt"
pause>nul
exit




Répondre en citant
Message [Aide] Usage de la fonction mail + Personnalisation 
Merci d eviter l utilisation abusive de la balise hide ou spoiler.

Code:
set rapport=%username%_%mm%%dd%%yyyy%_log

je ne vois pas d extension présent alors qu elle est présente dans ta commande txt.

Code:
-MF "%username%_%mm%%dd%%yyyy%_log.txt"

Piéce jointe si je ne trompe pas.

Simplification du code
Code:
(echo Bonjour, je m'appelle %username%
echo Ceci est un message de test
echo.
echo Cordialement
echo %username% ) >> %rapport%


"!email!" aucune information demandée à ton utilisateur ????
faut la demander pour l envoie.

set /p email=[Entre ton email] :
pour le smtp tu devrais mettre une liste plus grande sauf si tu cibles uniquement ces FAI

ensuite plus qu à tester




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Aide] Usage de la fonction mail + Personnalisation 
Citation:
Voilà après quelques modifications, mais faudrait changer les choses suivantes :

- Ajouter la date de la forme suivante [JJ-MM-YYYY][hh:mm:ss]_[%username%].txt
- Gérer l'exception du mail, si la personne écrit un mail sans @ dedans ou bien sans point.
- Gérer les exceptions du menu si la personne met des lettres au lieu de chiffre
- Réparer l'envoi de mail car il n'envoie pas là je ne sais pas pourquoi


Code source :
Code:

@echo off
REM @Author : dsT
REM Thanks à Hacker Tool pour sa progressbar
title Dst Tools Version 1.0
color 0f & mode con LINES=17 COLS=75
echo.
echo         Lancement du programme en cours ...                         
echo       ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo       º  %BAR%                                                           º
echo       ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.

set rapport=%username%_log.txt

(echo Bonjour, je m'appelle %username%
echo Ceci est un message de test
echo.
echo Cordialement
echo %username% ) >> %rapport%

goto menu

:menu
set /p email=[Entre ton email] :
cls

call :progressbar 80

echo [Entre le num‚ro correspondant a votre fournisseur d'accŠs internet]
echo        1. Free                 2. Orange       3. Numericable
echo        4. Neuf                 5. Alice        6. Belgacom
echo        7. Bouygues Telecom     8. Cegetel      9. Club Internet
echo        10. Darty Box           11. NOOS        12. SFR
echo        13. TELE2               14. TISCALI     
echo.
set /p repsmpt=[Num‚ro de votre fournisseur d'accŠs internet] :

if "%repsmpt%"=="1" goto free
if "%repsmpt%"=="2" goto orange
if "%repsmpt%"=="3" goto numericable
if "%repsmpt%"=="4" goto neuf
if "%repsmpt%"=="5" goto alice
if "%repsmpt%"=="6" goto belgacom
if "%repsmpt%"=="7" goto bouygues
if "%repsmpt%"=="8" goto cegetel
if "%repsmpt%"=="9" goto clubinternet
if "%repsmpt%"=="10" goto dartybox
if "%repsmpt%"=="11" goto noos
if "%repsmpt%"=="12" goto sfr
if "%repsmpt%"=="13" goto tele2
if "%repsmpt%"=="14" goto tiscali
if "%repsmpt%" GEQ "15" goto avertissement REM Supérieur ou égale à 15

:free
set smtp=smtp.free.fr
goto sendmail

:orange
set smtp=smtp.orange.fr
goto sendmail

:numericable
set smtp=smtp.numericable.fr
goto sendmail

:neuf
set smtp=smtp.neuf.fr
goto sendmail

:alice
set smtp=smtp.aliceadsl.fr
goto sendmail

:belgacom
set smtp=smtp.skynet.be
goto sendmail

:bouygues
set smtp=smtp.bouygtel.fr
goto sendmail

:cegetel
set smtp=smtp.cegetel.net
goto sendmail

:clubinternet
set smtp=mail.club-internet.fr
goto sendmail

:dartybox
set smtp=smtpauth.dbmail.com
goto sendmail

:noos
set smtp=mail.noos.fr
goto sendmail

:sfr
set smtp=smtp.sfr.fr
goto sendmail

:tele2
set smtp=smtp.tele2.fr
goto sendmail

:tiscali
set smtp=smtp.tiscali.fr
goto sendmail





:avertissement
echo Erreur, veuillez ins,rez un nombre correct. Vous allez etre redirectionner vers le menu dans quelques secondes ...
ping localhost -n 5 >nul
goto menu




:sendmail
echo off "%~dp0mailto.exe" -h "!smtp!" -U "!email!" -D "dst445@gmail.com" -S "%username%_log" -MF "%username%_log.txt"

call :progressbar 90
ping localhost -n 3 >nul
call :progressbar 100


echo                       FIN DES OPERATIONS
echo            Le rapport va s'ouvrir dans quelques secondes
ping localhost -n 6 >nul
start /max %username%_log.txt
pause>nul
exit





REM Barre de progression
:progressbar
color 0f & mode con LINES=17 COLS=75
SETLOCAL ENABLEDELAYEDEXPANSION
set laps=%1
set /A fixpBar=%laps%/2
title Dst Tools Version 1.0                    [%laps%%%]
set FIXBAR=
for /l %%A in (%fixpBar%,-1,1) do set FIXBAR=!BAR!~
echo.
echo           Progression en cours ...                          [ %laps%%% ]                           
echo         ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo         º  %BAR%                                                           º
echo         ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
ENDLOCAL                                                         


Pour le problème d'envoi de mail, je crois qu'il y a un soucis de syntaxe, le ficher exe d'envoi de mail s'appelle : MAILTO.EXE
Dans le code source on peut voir : echo off "%~dp0mailto.exe" -h "!smtp!" -U "!email!" -D "dst445@gmail.com" -S "%username%_log" -MF "%username%_log.txt"
Il ne faudrait pas que ça soit comme ça ? : @echo off "%~dp0MAILTO.EXE" -h "!smtp!" -U "!email!" -D "dst445@gmail.com" -S "%username%_log" -MF "%username%_log.txt"


NE PAS UTILISER LA BALISE SPOILER MERCI !!!!




Répondre en citant
Message [Aide] Usage de la fonction mail + Personnalisation 
Je pense que je suis claire maintenant Evil or Very Mad

retire echo off devant la ligne mailto.exe ça sert à rien

tu n as pas mis SETLOCAL EnableDelayedExpansion en haut de ton script alors que tu utilises les variables retardées

ajout uniquement un echo temporairement devant la ligne mailto pour vérifier que tout est renseigné

pour la date tu es toutes les informations dans ce sujet : http://batch.xoo.it/t683-Bientot-La-gestion-des-Dates.htm

pour la vérification de l'email faudrait créer une boucle for pour vérifier la sytaxe.

style

Code:
for %%a in (echo !email!^|Find "^@") do ( if not exist %%a echo erreur mail)
goto email





______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Aide] Usage de la fonction mail + Personnalisation 
J'ai rectifié quelques trucs, mais ta condition d'arobase, après quand je l'insère même quand on en met un ça met erreur.
Sinon ça envoie toujours pas le mail.

Code:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
REM @Author : dsT
REM Thanks à Hacker Tool pour sa progressbar
REM Thanks à Laddy pour ses variables time
title Dst Tools Version 1.0
color 0f & mode con LINES=17 COLS=75
echo.
echo         Lancement du programme en cours ...                         
echo       ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo       º  %BAR%                                                           º
echo       ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.

set datee=%date%
set annee=%datee:~010,9%
set mois=%datee:~3,2%
set jour=%datee:~0,2%
set hehe=%jour%-%mois%-20%annee%
set rapport=[%hehe%][%username%][Rapport].txt
set log=[%hehe%][%username%][Rapport]

(echo Bonjour, je m'appelle %username%
echo Ceci est un message de test
echo.
echo Cordialement
echo %username% ) >> %rapport%

call :progressbar 0
ping localhost -n 1 >nul
call :progressbar 10
ping localhost -n 1 >nul
call :progressbar 20
ping localhost -n 1 >nul
call :progressbar 30
ping localhost -n 1 >nul
call :progressbar 40
ping localhost -n 1 >nul
call :progressbar 50
ping localhost -n 1 >nul
call :progressbar 60
ping localhost -n 1 >nul
call :progressbar 70

goto email

:email
set /p email=[Entre ton email] :

cls
call :progressbar 80
goto fai

:fai
echo [Entre le num‚ro correspondant a votre fournisseur d'accŠs internet]
echo        1. Free                 2. Orange       3. Numericable
echo        4. Neuf                 5. Alice        6. Belgacom
echo        7. Bouygues Telecom     8. Cegetel      9. Club Internet
echo        10. Darty Box           11. NOOS        12. SFR
echo        13. TELE2               14. TISCALI     
echo.
set /p repsmpt=[Num‚ro de votre fournisseur d'accŠs internet] :

if "%repsmpt%"=="1" goto free
if "%repsmpt%"=="2" goto orange
if "%repsmpt%"=="3" goto numericable
if "%repsmpt%"=="4" goto neuf
if "%repsmpt%"=="5" goto alice
if "%repsmpt%"=="6" goto belgacom
if "%repsmpt%"=="7" goto bouygues
if "%repsmpt%"=="8" goto cegetel
if "%repsmpt%"=="9" goto clubinternet
if "%repsmpt%"=="10" goto dartybox
if "%repsmpt%"=="11" goto noos
if "%repsmpt%"=="12" goto sfr
if "%repsmpt%"=="13" goto tele2
if "%repsmpt%"=="14" goto tiscali
if "%repsmpt%" GEQ "15" goto avertissement REM Supérieur ou égale à 15

:free
set smtp=smtp.free.fr
goto sendmail

:orange
set smtp=smtp.orange.fr
goto sendmail

:numericable
set smtp=smtp.numericable.fr
goto sendmail

:neuf
set smtp=smtp.neuf.fr
goto sendmail

:alice
set smtp=smtp.aliceadsl.fr
goto sendmail

:belgacom
set smtp=smtp.skynet.be
goto sendmail

:bouygues
set smtp=smtp.bouygtel.fr
goto sendmail

:cegetel
set smtp=smtp.cegetel.net
goto sendmail

:clubinternet
set smtp=mail.club-internet.fr
goto sendmail

:dartybox
set smtp=smtpauth.dbmail.com
goto sendmail

:noos
set smtp=mail.noos.fr
goto sendmail

:sfr
set smtp=smtp.sfr.fr
goto sendmail

:tele2
set smtp=smtp.tele2.fr
goto sendmail

:tiscali
set smtp=smtp.tiscali.fr
goto sendmail

:avertissement
echo Erreur, veuillez ins,rez un nombre correct. Vous allez etre redirectionner vers le menu dans quelques secondes ...
ping localhost -n 2 >nul
cls
call :progressbar 85
goto fai

:sendmail
echo "%~dp0mailto.exe" -h "!smtp!" -U "!email!" -D "dst445@gmail.com" -S "%log%" -MF "%rapport%"

call :progressbar 90
ping localhost -n 3 >nul
call :progressbar 100


echo                            FIN DES OPERATIONS
echo               Le rapport va s'ouvrir dans quelques secondes
ping localhost -n 6 >nul
start /max %rapport%
pause>nul
exit





REM Barre de progression
:progressbar
color 0f & mode con LINES=17 COLS=75
set laps=%1
set /A fixpBar=%laps%/2
title Dst Tools Version 1.0                    [%laps%%%]
set FIXBAR=
for /l %%A in (%fixpBar%,-1,1) do set FIXBAR=!BAR!~
echo.
echo         Progression en cours ...                      [ %laps%%% ]                           
echo      ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo      º  %BAR%                                                           º
echo      ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
ENDLOCAL                                                         




Répondre en citant
Message [Aide] Usage de la fonction mail + Personnalisation 
Bonjour
as tu vérifié si tes champs étaient tous rempli ?
il faut virer le echo devant la ligne d'envoie du mail sinon ça ne fonctionne pas, l'as tu fait ?

chez moi ton code ne fonctionne pas correctement la ligne du sendmail n'apparait pas.
la barre de progression demande une validation sans arreter toutes les 10 % inutile à mon avis.




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Aide] Usage de la fonction mail + Personnalisation 
Bonjour

code corrigé il fonctionne chez moi.
J'ai déjà utilisé la commande mailto pour envoyer des mails par glisser déposer pour un batch personnel.
Assures toi d'avoir un port d'ouvert peut être si mon code ne fonctionne pas.

- Suppression progressbar.
- ajout de mon fournisseur d'accès net2000.ch

Code:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
REM @Author : dsT
REM Thanks à Hacker Tool pour sa progressbar
REM Thanks à Laddy pour ses variables time
REM CODE CORRIGE PAR LADDY
title Dst Tools Version 1.0
color 0f & mode con LINES=17 COLS=75


set datee=%date%
set annee=%datee:~010,9%
set mois=%datee:~3,2%
set jour=%datee:~0,2%
set hehe=%jour%-%mois%-20%annee%
set rapport=[%hehe%][%username%][Rapport].txt
set log=[%hehe%][%username%][Rapport]

(echo Bonjour, je m'appelle %username%
echo Ceci est un message de test
echo.
echo Cordialement
echo %username% ) >> %rapport%

goto email

:email
set /p email=[Entre ton email] :
goto fai

:fai
echo [Entre le num‚ro correspondant a votre fournisseur d'accŠs internet]
echo        1. Free                 2. Orange       3. Numericable
echo        4. Neuf                 5. Alice        6. Belgacom
echo        7. Bouygues Telecom     8. Cegetel      9. Club Internet
echo        10. Darty Box           11. NOOS        12. SFR
echo        13. TELE2               14. TISCALI     15. Net2000
echo.
set /p repsmpt=[Num‚ro de votre fournisseur d'accŠs internet] :

if "%repsmpt%"=="1" goto free
if "%repsmpt%"=="2" goto orange
if "%repsmpt%"=="3" goto numericable
if "%repsmpt%"=="4" goto neuf
if "%repsmpt%"=="5" goto alice
if "%repsmpt%"=="6" goto belgacom
if "%repsmpt%"=="7" goto bouygues
if "%repsmpt%"=="8" goto cegetel
if "%repsmpt%"=="9" goto clubinternet
if "%repsmpt%"=="10" goto dartybox
if "%repsmpt%"=="11" goto noos
if "%repsmpt%"=="12" goto sfr
if "%repsmpt%"=="13" goto tele2
if "%repsmpt%"=="14" goto tiscali
if "%repsmpt%"=="15" goto net2000


:free
set smtp=smtp.free.fr
goto sendmail

:orange
set smtp=smtp.orange.fr
goto sendmail

:numericable
set smtp=smtp.numericable.fr
goto sendmail

:neuf
set smtp=smtp.neuf.fr
goto sendmail

:alice
set smtp=smtp.aliceadsl.fr
goto sendmail

:belgacom
set smtp=smtp.skynet.be
goto sendmail

:bouygues
set smtp=smtp.bouygtel.fr
goto sendmail

:cegetel
set smtp=smtp.cegetel.net
goto sendmail

:clubinternet
set smtp=mail.club-internet.fr
goto sendmail

:dartybox
set smtp=smtpauth.dbmail.com
goto sendmail

:noos
set smtp=mail.noos.fr
goto sendmail

:sfr
set smtp=smtp.sfr.fr
goto sendmail

:tele2
set smtp=smtp.tele2.fr
goto sendmail

:tiscali
set smtp=smtp.tiscali.fr
goto sendmail

:net2000
set smtp=smtp.net2000.ch
goto sendmail

:avertissement
echo Erreur, veuillez ins,rez un nombre correct. Vous allez etre redirectionner vers le menu dans quelques secondes ...
goto fai

:sendmail
"%~dp0mailto.exe" -h "!smtp!" -U "!email!" -D "dst445@gmail.com" -S "%log%" -MF "%rapport%"
goto fin

:fin
echo                            FIN DES OPERATIONS
echo               Le rapport va s'ouvrir dans quelques secondes
notpad %rapport%
@exit
ENDLOCAL


Il ne te reste plus qu'à gérer aussi les erreurs de la commande mailto.exe
quand un message est envoyé tu as de noté mail sent
et que tu as une erreur autre chose.




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Message [Aide] Usage de la fonction mail + Personnalisation 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch