Schleife für Anhänge in Mail.vbs
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.
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
Moinsen,
ich habe hier das altbekannte mail.vbs - tausendfach im Inet zu finden.
Set "M=%temp%\Mailversand.vbs"
>"%M%" echo Dim objMail,objConfig,objFields
>>"%M%" echo Set objMail = CreateObject("CDO.Message")
>>"%M%" echo Set objConfig = CreateObject("CDO.configuration")
>>"%M%" echo Set objFields = objConfig.Fields
>>"%M%" echo With objFields
>>"%M%" echo .Item("http://schemas.microsoft.com/cdo/configuration/SendUsing")= 2
>>"%M%" echo .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")= "mail.gmx.net"
>>"%M%" echo .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")= 1
>>"%M%" echo .Item("http://schemas.microsoft.com/cdo/configuration/SMTPServerPort")= 25
>>"%M%" echo .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "BENUTZERNAME"
>>"%M%" echo .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "PASSWORT"
>>"%M%" echo .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = true
>>"%M%" echo .Update
>>"%M%" echo End With
>>"%M%" echo With objMail
>>"%M%" echo Set .Configuration = objConfig
>>"%M%" echo .To = "%Mail%"
>>"%M%" echo .From = "XXXX@XXXX"
>>"%M%" echo .Subject = "Ultimativ Wichtiger Kram von Notebook"
>>"%M%" echo .TextBody = "Ultimativ Wichtiger Kram von Notebook"
IF EXIST >>"%M%" echo .AddAttachment "%Send%\*.XX"
>>"%M%" echo .Send
>>"%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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 196771
Url: https://administrator.de/contentid/196771
Ausgedruckt am: 05.11.2024 um 18:11 Uhr
6 Kommentare
Neuester Kommentar