Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Nach neuen Dateien im Ordner suchen und per Mail versenden

Frage Entwicklung Batch & Shell

Mitglied: PaceLu

PaceLu (Level 1) - Jetzt verbinden

03.07.2012 um 08:40 Uhr, 3198 Aufrufe, 3 Kommentare

Hallo zusammen

Mein Anliegen sieht folgender massen aus.

Immer ende Monat erstellt mir ein Program eine PDF-Datei in ein Ordner. Die Dateinamen werden immer am Anfang mit dem Jahr und dem Monat generiert. z.B. (2012-06-asldkfjasldkf)

Jetzt bin ich nicht immer erreichbar und möchte mir diese per Mail senden.

Kann man eine Batch-Datei erstellen, welches mir abruft ob eine neue Datei erstellt wurde und mir diese gleich per Mail weiterleitet?


Gruss PaceLu
Mitglied: nubbeldupp
03.07.2012 um 10:10 Uhr
Hi,

habe hier keine Lösung mit Batch, aber mit einem VB-Script. Dieses Script sollte dir, wenn heute die Datei erstellt würde, die Datei morgen per Mail zuschicken.
Konnte es hier nicht testen, deshalb ohne Gewähr. Bin nicht der Profi in Sachen VBS


01.
Dim intTage 
02.
 
03.
'Pfad in dem die Datei liegt? 
04.
Mailversand "C:\xxx\" 
05.
 
06.
Function Mailversand(strDir) 
07.
	Set objFSO = CreateObject("scripting.filesystemobject") 
08.
	Set objFolder = objFSO.GetFolder(strDir) 
09.
	 
10.
	'Wie alt darf die Datei sein? 
11.
	intTage = 1 
12.
	 
13.
	For Each tmpFile In objFolder.files 
14.
		If DateDiff("d", tmpfile.DateLastModified, now) > intTage Then 
15.
			Set objMessage = CreateObject("CDO.Message")   
16.
			'Betreff-Zeile 
17.
			objMessage.Subject = "Test"    
18.
			'Absender 
19.
			objMessage.From = """Absender"" <Absender@domain.de>"   
20.
			'E-Mail-Adr. des Empängers 
21.
			objMessage.To = "empfänger@domain.de"    
22.
			'CC E-Mail-Adr. 
23.
			objMessage.CC = "" 
24.
			'BCC E-Mail-Adr. 
25.
			objMessage.BCC = "" 
26.
			'Mailtext 
27.
			objMessage.TextBody = "test"   
28.
			'Datei die angehängt werden soll 
29.
			objMessage.AddAttachment "c:\voller\Pfad\zur\Datei\" & tmpfile  
30.
			  
31.
			objMessage.Configuration.Fields.Item _  
32.
			("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2   
33.
			 
34.
			'Name oder IP des SMTP-Servers 
35.
			objMessage.Configuration.Fields.Item _   
36.
			("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.domain.de"  
37.
			 
38.
			'Serverport (Standart 25) 
39.
			objMessage.Configuration.Fields.Item _  
40.
			("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25  
41.
			 
42.
			objMessage.Configuration.Fields.Item _  
43.
			("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1   
44.
			 
45.
			'Username und Passwort (Falls nicht benötigt, einfach entfernen oder auskommentieren) 
46.
			objMessage.Configuration.Fields.Item _  
47.
			("http://schemas.microsoft.com/cdo/configuration/sendusername") = "absender@domain.de"			 
48.
			objMessage.Configuration.Fields.Item _  
49.
			("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "Passwort"   
50.
			 
51.
			'SSL für die Verbindung benutzen? (True/False) 
52.
			objMessage.Configuration.Fields.Item _  
53.
			("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False  
54.
			 
55.
			objMessage.Configuration.Fields.Item _  
56.
			("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60  
57.
			 
58.
			objMessage.Configuration.Fields.Update  
59.
			  
60.
			objMessage.Send  
61.
		End If 
62.
	Next 
63.
End Function
Grüße

Mirko
Bitte warten ..
Mitglied: nubbeldupp
03.07.2012, aktualisiert um 10:31 Uhr
Nochmal ich... habe gerade meinen eigenen Denkfehler entdeckt...

Deshalb eine Frage... liegen in dem Verzeichnis dann auch noch die alten Dateien?
Falls dies der Fall ist, dann würdest du jetzt für jede Datei die älter als einen Tag ist eine Mail bekommen.

Grüße

Mirko

Edit:

Hier das Script, dass nur Dateie berücksichtigt die mindestens einen Tag und maximal fünf Tage alt sind.
Aber wie gesagt, OHNE GEWÄHR xD

01.
Dim intTageMin 
02.
Dim intTageMax 
03.
 
04.
'Pfad in dem die Datei liegt? 
05.
Mailversand "C:\xxx\" 
06.
 
07.
Function Mailversand(strDir) 
08.
	Set objFSO = CreateObject("scripting.filesystemobject") 
09.
	Set objFolder = objFSO.GetFolder(strDir) 
10.
	 
11.
	'Wie alt muss/darf die Datei sein? 
12.
	intTageMin = 1 
13.
	intTageMax = 5 
14.
	 
15.
	For Each tmpFile In objFolder.files 
16.
		If DateDiff("d", tmpfile.DateLastModified, now) > intTageMin AND DateDiff("d", tmpfile.DateLastModified, now) < intTageMax Then 
17.
			Set objMessage = CreateObject("CDO.Message")   
18.
			'Betreff-Zeile 
19.
			objMessage.Subject = "Test"    
20.
			'Absender 
21.
			objMessage.From = """Absender"" <Absender@domain.de>"   
22.
			'E-Mail-Adr. des Empängers 
23.
			objMessage.To = "empfänger@domain.de"    
24.
			'CC E-Mail-Adr. 
25.
			objMessage.CC = "" 
26.
			'BCC E-Mail-Adr. 
27.
			objMessage.BCC = "" 
28.
			'Mailtext 
29.
			objMessage.TextBody = "test"   
30.
			'Datei die angehängt werden soll 
31.
			objMessage.AddAttachment "c:\voller\Pfad\zur\Datei\" & tmpfile  
32.
			  
33.
			objMessage.Configuration.Fields.Item _  
34.
			("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2   
35.
			 
36.
			'Name oder IP des SMTP-Servers 
37.
			objMessage.Configuration.Fields.Item _   
38.
			("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.domain.de"  
39.
			 
40.
			'Serverport (Standart 25) 
41.
			objMessage.Configuration.Fields.Item _  
42.
			("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25  
43.
			 
44.
			objMessage.Configuration.Fields.Item _  
45.
			("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1   
46.
			 
47.
			'Username und Passwort (Falls nicht benötigt, einfach entfernen oder auskommentieren) 
48.
			objMessage.Configuration.Fields.Item _  
49.
			("http://schemas.microsoft.com/cdo/configuration/sendusername") = "absender@domain.de"			 
50.
			objMessage.Configuration.Fields.Item _  
51.
			("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "Passwort"   
52.
			 
53.
			'SSL für die Verbindung benutzen? (True/False) 
54.
			objMessage.Configuration.Fields.Item _  
55.
			("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False  
56.
			 
57.
			objMessage.Configuration.Fields.Item _  
58.
			("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60  
59.
			 
60.
			objMessage.Configuration.Fields.Update  
61.
			  
62.
			objMessage.Send  
63.
		End If 
64.
	Next 
65.
End Function
Bitte warten ..
Mitglied: PaceLu
03.07.2012 um 10:58 Uhr
Danke dir viel mals.

Es hat wunderbar funktionert.
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (25)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Hardware
16-20 Port POE Switch mit VLAN (19)

Frage von thomasreischer zum Thema Hardware ...

Windows Server
Exchange HyperV Prozessorlast (18)

Frage von theoberlin zum Thema Windows Server ...