blackangel
Goto Top

Email versenden wenn neue Dateien vorhanden

Hallo,

ich suche ein Tool, das mir einen Ordner überwacht und sobald es neue Dateien gibt eine Email versendet.
Es sollte möglichst Freeware sein.
Es muss nichts umfangreiches sein, einfach nur eine Email versenden sobald neue Dateien vorhanden sind.

Content-ID: 60096

Url: https://administrator.de/contentid/60096

Ausgedruckt am: 23.11.2024 um 00:11 Uhr

Dani
Dani 29.05.2007 um 17:50:27 Uhr
Goto Top
Hallo Blackangel,
ich bring mal einen Batchvorschlag ein. Und zwar baut diese Batchdatei auf die Blat.exe auf.

Ich denke, man kann sich hier das Archivbit zu nutze machen. Sprich, es wird immer überprüft, ob da Bit gesetzt ist - Ja: Neue Datei oder geändert - Nein: Alt

Hier mal ein Schnipsel:
@echo off & setlocal
::
set src_dir=C:\text\123
::
::Archivbit wird gelöscht und Dateiname wird in Logdatei geschrieben.
for /f "delims=" %%a in ('dir /aa /b "%src_dir%"') do (  
attrib -a %%a
echo %%a >> "C:\log\new_files.txt"  
::
::Verschickt eine Mail mit Textdatei als Anhang
"c:\tools\blat.exe" "C:\log\new_files.txt" -server mailserver -to ziel@firma.de -f sender@firma.de -s Betreff  
::
::Löscht die Logdatei
del "C:\log\new_files.txt"  
Ungeteste Skizze! Die Pfade musst du natürlich noch anpassen. Und die entsprechenden Variablen auch.
Edit 29.05.2007 19:48
Peinlich, peinlich aber wahr: Ich habe in der Schleife den dir Befehl vergessen.


Gruß
Dani
36539
36539 29.05.2007 um 19:42:08 Uhr
Goto Top
Hallo,
Welches Betriebssystem?
Um was für einen Ordner geht es - um den Posteingang in einem Mailprogramm oder wo?
Wenn ja welches Mailprogramm?

Muss man sowas immer erst erfragen?

"Wie man Fragen richtig stellt"
Wie Du eine Frage richtig stellst

gruß
Blackangel
Blackangel 29.05.2007 um 19:45:07 Uhr
Goto Top
Es geht um einen Dateiordner, Betriebsystem ist Windows Xp Prof und Windows2003SBS
Blackangel
Blackangel 01.06.2007 um 13:21:26 Uhr
Goto Top
Edit 29.05.2007 19:48
Peinlich, peinlich aber wahr: Ich habe in
der Schleife den dir Befehl vergessen.

Wo muss der dann hin?
Kenn mich mit Batch Befehlen nicht so aus.
Wäre nett wenn du mir das noch beantworten würdest.

Gruß
Tim
Dani
Dani 01.06.2007 um 13:23:01 Uhr
Goto Top
Moin,
ich habe ihn oben in den Code eingefügt!


Gruß
Dani
Blackangel
Blackangel 01.06.2007 um 15:15:21 Uhr
Goto Top
Servus und danke für die Rückantwort,

leider funktioniert das nicht!

Hiermal mein Code

@echo off & setlocal
::
set src_dir=C:\TEST
::
::Archivbit wird gelöscht und Dateiname wird in Logdatei geschrieben.
for /f "delims=" %%a in ('dir /aa /b "%src_dir%"') do (attrib -a %%a)  
echo %%a >> "C:\log\new_files.txt"  
::
::Verschickt eine Mail mit Textdatei als Anhang
"c:\tools\blat.exe" "C:\log\new_files.txt" -server 10.2.232.32 -to admin@hbme.intern -f admin@hbme.intern -s TEST  
::
::Löscht die Logdatei
del "C:\log\new_files.txt"  

Die Ordner habe ich mal erstellt konnte aber nichts feststellen, das überhaupt ne LOG Datei geschrieben wird.

Gruß
Tim

Edit:
funktioniert jetzt soweit hat eine Klammer gefehlt (attrib -a %%a).
Aber ich bekomme jetzt ins Logfile und in die Email %a mehr nicht als TEXT.
Blackangel
Blackangel 01.06.2007 um 16:41:21 Uhr
Goto Top
So hab jetzt mal wieder ein wenig gerabeitet anscheinend war noch ein Fehler drin, aber da ist immer noch irgendwo einer!
Hier mal mein Code:
@echo off & setlocal
::
set src_dir=C:\TEST
::
::Archivbit wird gelöscht und Dateiname wird in Logdatei geschrieben.
for /f "delims=" %%a in ('dir /aa /b "%src_dir%"') do (attrib "%src_dir%\%%a")  
echo %%a >> "C:\log\new_files.txt"  
::
::Verschickt eine Mail mit Textdatei als Anhang
"c:\tools\blat.exe" "C:\log\new_files.txt" -server 10.2.232.32 -to admin@hbme.intern -f admin@hbme.intern -s TEST  
::
::Löscht die Logdatei
del "C:\log\new_files.txt"  

Irgendwie gibt er den Wert"%%a" nicht ans echo weiter bzw. schreibt sich auch nicht in die Logfile!
Dani
Dani 01.06.2007 um 17:03:32 Uhr
Goto Top
Hallo,
du solltest die echo - Zeile natürlich in die Schleife miteinbeziehen. face-smile
So sollte es klappen:
@echo off & setlocal
::
set src_dir=C:\TEST
::
::Archivbit wird gelöscht und Dateiname wird in Logdatei geschrieben.
for /f "delims=" %%a in ('dir /aa /b "%src_dir%"') do (  
attrib "%src_dir%\%%a"  
echo %%a >> "C:\log\new_files.txt"  
)
::
::Verschickt eine Mail mit Textdatei als Anhang
"c:\tools\blat.exe" "C:\log\new_files.txt" -server 10.2.232.32 -to admin@hbme.intern -f admin@hbme.intern -s TEST  
::
::Löscht die Logdatei
del "C:\log\new_files.txt"  
Ungetestete Skizze!


Schönes Wochenende
Dani
Blackangel
Blackangel 01.06.2007 um 19:00:38 Uhr
Goto Top
Super jetzt klappts hatte es vorher erst nochmal für der Schleife eine eigene gemacht wo die Log erstellt wird und dann die Attribut änderung, aber so ist es natürlich besser!
Wie kann ich das jetzt am besten alle 10 Minuten ablaufen lassen?
Jede Menge Task erstellen wäre ja schwachsinn!
Was meint ihr mit diesem Wait Befehl ist das sinnvoll oder doch was anderes?

Gruuß
Tim
Dani
Dani 01.06.2007 um 20:54:38 Uhr
Goto Top
Super jetzt klappts hatte es vorher erst nochmal für der Schleife eine eigene gemacht wo die
Log erstellt wird und dann die Attribut änderung, aber so ist es natürlich besser!
Schön zuhören, dass es funktioniert.

Wie kann ich das jetzt am besten alle 10 Minuten ablaufen lassen?
Ich würde einfach den GOTO & ping - Befehl dazu benutzen. Somit kannst du per Hand diesen Batch starten. Der Batch wäre dann einen Endlosschleife!
@echo off & setlocal
::
set src_dir=C:\TEST
::
:start
::Archivbit wird gelöscht und Dateiname wird in Logdatei geschrieben.
for /f "delims=" %%a in ('dir /aa /b "%src_dir%"') do (  
attrib "%src_dir%\%%a"  
echo %%a >> "C:\log\new_files.txt"  
)
::
::Verschickt eine Mail mit Textdatei als Anhang
"c:\tools\blat.exe" "C:\log\new_files.txt" -server 10.2.232.32 -to admin@hbme.intern -f admin@hbme.intern -s TEST  
::
::Löscht die Logdatei
del "C:\log\new_files.txt"  

ping 127.0.0.1 -n 600 >nul
goto start
Durch das goto springt er wieder hoch zur Sprungmarke. Ungetestete Skizze...


Gruß
Dani
Blackangel
Blackangel 02.06.2007 um 11:12:29 Uhr
Goto Top
So habe das ganze noch ein bisschen verfeinert:
setlocal
::
set src_dir=V:\
::
:start
::Archivbit wird gelöscht und Dateiname wird in Logdatei geschrieben
echo Folgende neue Werbedateien sind jetzt bereitgestellt:  > "C:\log\new_files.txt"  
for /f "delims=" %%a in ('dir /aa /b "%src_dir%"') do (  
attrib -a "%src_dir%\%%a"  
echo %%a >> "C:\log\new_files.txt"  
)
for %%F in (C:\log\new_files.txt) do set groesse=%%~zF
if %groesse% geq 58 goto mail 
if not %groesse% geq 57 goto wait
:mail
::Verschickt eine Mail mit Textdatei als Anhang
"c:\tools\blat.exe" "C:\log\new_files.txt" -server mailserver -to mailempf. -f mailsender -s betreff  
::
::Löscht die Logdatei
del "C:\log\new_files.txt"  
::
:wait
::wait Befehl
ping 127.0.0.1 -n 600 >nul
goto start
Dani
Dani 02.06.2007 um 23:16:43 Uhr
Goto Top
G' Abend,
sehr schön...sieht richtig gut aus. Ich möchte dich bitten, den Beitrag als "Wie kann ich einen Beitrag als gelöst markieren?" zu markieren.
Danke...


Gruß
Dani