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, 3180 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
E-Mail
gelöst BLAT zum Mail versenden. Fehler für mich nicht lösbar (25)

Frage von 130217 zum Thema E-Mail ...

Outlook & Mail
gelöst E-Mail versenden mit PowerShell (6)

Frage von 112Timo zum Thema Outlook & Mail ...

Outlook & Mail
gelöst Office 365 - SMTP - automatisierte Mail versenden - "Gerät freigeben?!" (4)

Frage von KMUlife zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...