Top-Themen

Aktuelle Themen (A bis Z)

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, 2417 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 ..
Ähnliche Inhalte
Batch & Shell
Batch Schleife als FOR-SCHLEIFE
gelöst Frage von mp2711Batch & Shell2 Kommentare

Mit den FOR-Schleifen habe ich mich leider bislang zu selten auseinander gesetzt, aber da ich sonst gerade nicht weiter ...

Microsoft Office
Vereinfachen einer Schleife
Frage von Jens1975Microsoft Office1 Kommentar

Hallo, ich bin neu und versuche mich jetzt mit VBA Ich möchte die Funktion Autofill durch eine Schleife ersetzen. ...

Netzwerkprotokolle
STP und Schleifen
gelöst Frage von ottokarlNetzwerkprotokolle20 Kommentare

Hallo, ich habe eine allgemeine Frage. Situation: Ich nehme ein Kabel und stecke es im Switch z.B. in Port ...

Entwicklung
PowerShell - Schleifen
gelöst Frage von 119785Entwicklung8 Kommentare

Hallo Leute, ich habe hier eine Aufgabe und brauche mal einen kleinen Tip. Entweder habe ich eine Denkbloacke oder ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 10 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 14 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 14 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 17 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte14 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...