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

Schleife für Anhänge in Mail.vbs

Frage Entwicklung Batch & Shell

Mitglied: ColdZero89

ColdZero89 (Level 1) - Jetzt verbinden

10.01.2013, aktualisiert 16:23 Uhr, 2351 Aufrufe, 6 Kommentare

Weiß selbst nicht ob die Frage zu BASH oder zu VBS gehört, da ich denke das die Frage auf beiden wegen gelöst werden kann - da mein persöhnliches Interesse an Batch größer ist, liegt es bei Batch.

Moinsen,

ich habe hier das altbekannte mail.vbs - tausendfach im Inet zu finden.

01.
Set "M=%temp%\Mailversand.vbs" 
02.
	>"%M%" echo Dim objMail,objConfig,objFields 
03.
	>>"%M%" echo Set objMail = CreateObject("CDO.Message") 
04.
	>>"%M%" echo Set objConfig = CreateObject("CDO.configuration") 
05.
	>>"%M%" echo Set objFields = objConfig.Fields 
06.
	>>"%M%" echo With objFields 
07.
	>>"%M%" echo   .Item("http://schemas.microsoft.com/cdo/configuration/SendUsing")= 2 
08.
	>>"%M%" echo   .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")= "mail.gmx.net" 
09.
	>>"%M%" echo   .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")= 1 
10.
	>>"%M%" echo   .Item("http://schemas.microsoft.com/cdo/configuration/SMTPServerPort")= 25 
11.
	>>"%M%" echo   .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "BENUTZERNAME" 
12.
	>>"%M%" echo   .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "PASSWORT" 
13.
	>>"%M%" echo   .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = true 
14.
	>>"%M%" echo   .Update 
15.
	>>"%M%" echo End With 
16.
	>>"%M%" echo With objMail 
17.
	>>"%M%" echo   Set .Configuration = objConfig 
18.
	>>"%M%" echo   .To = "%Mail%" 
19.
	>>"%M%" echo   .From = "XXXX@XXXX" 
20.
	>>"%M%" echo   .Subject = "Ultimativ Wichtiger Kram von Notebook" 
21.
	>>"%M%" echo   .TextBody = "Ultimativ Wichtiger Kram von Notebook" 
22.
	IF EXIST >>"%M%" echo   .AddAttachment "%Send%\*.XX" 
23.
	>>"%M%" echo   .Send 
24.
	>>"%M%" echo End With
Bei mir auch schon 100 Fach im einsatz.
Nun kam ne Specialanfrage von einem Kollegen. Dieser verschickt ca. 2-3 mal die Woche Datein (doc, txt, gif, bmp, jpg, 7z, etc.) von seinem Notebook an den PC. (Notebook und PC sind Netzwerktechnisch getrennt, da die Notebooks nach außen hin ohne Firefall betrieben werden "müssen" (Es ist der IT zuviel aufwand sämtliche Adressen in die FW einmal einzutragen :D))

Bisher geschah dieses über einen USB Stick. Da die Datein aber maximal 1MB groß sind ist dies bequemer und schneller über E-Mail zu lösen.

Problem was ich nun habe: Wie teile ich dem Script mit bei .AddAttachment das er ALLE Datein im Ordner SEND nehmen soll.

Ich habe dies Zeitweise über mehrere Zeilen von .AddAttachment gelöst und dem Kollegen gesagt er müsse die Datein dann wie folgt benennen (1.gif, 2.gif, etc.) und das dann über IF EXIST gelöst.
Dies ist auf dauer nervig und finde ich selbst nicht schön.

An eine Schleife um den Mailversand habe ich gedacht. Wäre aber auch unangebracht, da dann für JEDE Datei eine Mail versendet wird, 20 Datein = 20 Mails = Doof.

Wie ist es zu realisieren, das alle Datein im Ordner SEND in EINER E-Mail versendet werden?
Wo und Wie ist die schleife zu setzen?
Wäre eine Schleife um genau die Zeile IF EXIST >>"%M%" echo .AddAttachment "%Send%\*.XX" sinnvoll? Sodass in der Schleife die Variable SEND gesetzt wird mit dem kompletten Pfad und dann immer eine Zeile hinzugefügt wird ín die vbs - oder ist dies eleganter zu lösen?
Sofern mein Gedankenansatz der mir gerade kam sinnvoll ist, brauch nur ein JA zu folgen, dann bastel ich das, brauch also keiner für mich zu arbeiten.
Gruß Zero
Mitglied: bastla
10.01.2013 um 16:39 Uhr
Hallo ColdZero89!

JA ...

... nur das "IF EXIST" ist ohne Angabe einer zu prüfenden Datei / eines zu prüfenden Ordners sinnfrei und kann einfach entfallen.

Grüße
bastla
Bitte warten ..
Mitglied: ColdZero89
10.01.2013 um 16:49 Uhr
Moin bastla,

danke für das JA :D

hab ich auch gemerkt als ich grad runterscrollte. Das ist noch die "alte" Version auf meinem PC nicht das was aufm Notebook liegt beim Kollegen und getestet ist.

Das IF Exist werde ich dann ja nicht mehr benötigen.

Danke Sobald funktionsfähig im Einsatz setz ich das hier als Gelöst mit dem Script.

Gruß Zero
Bitte warten ..
Mitglied: ColdZero89
10.01.2013, aktualisiert um 17:12 Uhr
Moin,

ok ich bin verwundert wieso das nicht so sauber funktioniert.

Abschnitt:
01.
FOR %%F IN ("C:\allerlei\*") do ( 
02.
	set Send=%%F 
03.
	>>"%M%" echo   .AddAttachment "%Send%" 
04.
	)
Die Schleife an sich geht. Bei Echo on zeigt er alle Datein sauber an das diese als "Send" gesetzt wurden. Ankommen tun aber nur ATXXXXXXXX.bin Datein.
Bei der ausführung von Zeile 3 steht dann aber in der CMD folgendes:

echo .AddAttachment "" 1>>"C:\.........\Mailversand.vbs"

Wieso steht dort nur "" ? Wenn ich den Pfad direkt eingebe funktioniert das ganze sauber.

Gruß Zero
Bitte warten ..
Mitglied: bastla
10.01.2013 um 17:16 Uhr
Hallo ColdZero89!

Eine eigene Variable ist nicht erforderlich (und ohne "delayedExpansion" nicht sinnvoll) - daher einfach
01.
FOR %%F IN ("C:\allerlei\*") do ( 
02.
    >>"%M%" echo   .AddAttachment "%%~fF" 
03.
)
Grüße
bastla
Bitte warten ..
Mitglied: ColdZero89
11.01.2013 um 11:01 Uhr
Moinsen,

ah klar... ich beweg mich ja inner schleife und die Datein sind dann ja eh in der Variable.... manchmal bin ich aufn kop gefallen :D

danke dir

Gruß Zero
Bitte warten ..
Mitglied: ColdZero89
11.01.2013, aktualisiert um 11:20 Uhr
Fertiges Script, es versendet alle Datein in einem Ordner an die gewünschte E-Mailadresse
01.
@echo off & setlocal 
02.
 
03.
rem Changelog 
04.
rem 1.0 Mailversand von .gif Datein in einem Ordner 
05.
rem 2.0 Schleife eingebaut um alle Dateitypen versenden zu können 
06.
rem V2.0 Kevin Lange 11.01.2013 
07.
 
08.
rem ==================================================================== 
09.
rem Deklarierung 
10.
rem ==================================================================== 
11.
	set "Mail=EMAIL@EMAIL.com" 
12.
 
13.
rem ==================================================================== 
14.
rem Erstellung des VBS zum Mailversand 
15.
rem ==================================================================== 
16.
	Set "M=%temp%\Mailversand.vbs" 
17.
	>"%M%" echo Dim objMail,objConfig,objFields 
18.
	>>"%M%" echo Set objMail = CreateObject("CDO.Message") 
19.
	>>"%M%" echo Set objConfig = CreateObject("CDO.configuration") 
20.
	>>"%M%" echo Set objFields = objConfig.Fields 
21.
	>>"%M%" echo With objFields 
22.
	>>"%M%" echo   .Item("http://schemas.microsoft.com/cdo/configuration/SendUsing")= 2 
23.
	>>"%M%" echo   .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")= "mail.gmx.net" 
24.
	>>"%M%" echo   .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")= 1 
25.
	>>"%M%" echo   .Item("http://schemas.microsoft.com/cdo/configuration/SMTPServerPort")= 25 
26.
	>>"%M%" echo   .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "SENDER@EMAIL.com" 
27.
	>>"%M%" echo   .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "PASSWORT" 
28.
	>>"%M%" echo   .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = true 
29.
	>>"%M%" echo   .Update 
30.
	>>"%M%" echo End With 
31.
	>>"%M%" echo With objMail 
32.
	>>"%M%" echo   Set .Configuration = objConfig 
33.
	>>"%M%" echo   .To = "%Mail%" 
34.
	>>"%M%" echo   .From = "SENDER@EMAIL.com" 
35.
	>>"%M%" echo   .Subject = "Ultimativ Wichtiger Kram von Notebook" 
36.
	>>"%M%" echo   .TextBody = "Ultimativ Wichtiger Kram von Notebook" 
37.
FOR %%F IN ("C:\allerlei\*.*") do ( 
38.
	>>"%M%" echo .AddAttachment "%%~fF" 
39.
40.
	>>"%M%" echo   .Send 
41.
	>>"%M%" echo End With 
42.
	 
43.
	echo ____________________________________ 
44.
	echo Ich versende nun die Dateien an %Mail%. Bitte Warten... 
45.
	cscript //nologo "%M%" 
46.
	pause 
47.
rem ==================================================================== 
48.
rem Versendete Anhänge löschen 
49.
rem ==================================================================== 
50.
	 del /Q "C:\allerlei\*"
Gruß Zero
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
iOS
IOS 9: E-Mail Anhänge nur im Papierkorb öffnen? (2)

Frage von BERGER-IT zum Thema iOS ...

E-Mail
Plesk 17 - E-Mail zurückgestellt in Warteschlange (3)

Frage von ZeldaFreak zum Thema E-Mail ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...