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, 2372 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
iOS
IOS 9: E-Mail Anhänge nur im Papierkorb öffnen? (2)

Frage von BERGER-IT zum Thema iOS ...

Exchange Server
Exchange: Mail abfangen und verändert umleiten (1)

Frage von Koschie zum Thema Exchange Server ...

Windows Tools
gelöst Suche Programm um Log auszuwerten + Mail notify (3)

Frage von NetzwerkDude zum Thema Windows Tools ...

Outlook & Mail
Alle Mail Adressen einer Outlookgruppe anzeigen (7)

Frage von blade999 zum Thema Outlook & Mail ...

Neue Wissensbeiträge
Sicherheits-Tools

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

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (10)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...

Internet Domänen
Nameserver ein Geist? (6)

Frage von zelamedia zum Thema Internet Domänen ...

Microsoft Office
Übertrag in eine andere Tabelle (6)

Frage von charmeur zum Thema Microsoft Office ...