Zum Inhalt springen

VBS: Dateien per Mail übertragen

Schlagwörter:
Symbolbild E-Mail

Ein kleines VB-Script, dass einen Ordner auf Dateien prüft und diese dann als E-Mailanhang verschickt.

Das Script prüft beim Aufruf den Quellordner („sourcefolder“) auf Dateien. Die gefundenen Dateien werden per E-Mailanhang verschickt und im Anschluss in den Zielordner („targetfolder“) verschoben. Die Vorgänge werden fortlaufend in einer Log-Datei protokolliert. Sofern im Script-Verzeichnis noch keine Log-Datei existiert, wird diese automatisch erstellt.

Das Script kann automatisiert über die Windows Aufgabenplanung ausgeführt werden.

'#################### L I C E N S E ####################
' Script: Mailtransfer
' Developer: www.anreiter.at
' License: CC BY-SA 4.0
' https://creativecommons.org/licenses/by-sa/4.0/
'#######################################################


'############## E I N S T E L L U N G E N ##############
' Ordner:
sourcefolder = "c:"	' Quellordner
targetfolder = "c:"	' Zielordner
 
' Mail:
server = "mailserver"
port = 25
mailto = "Empfängername <zu@sonstwo.at>"
mailfrom = "Absendername <von@sonstwo.at>"
mailsubject = "Mail-Transfer"
mailbody = ""
'#######################################################
 
' Log-Function
Dim ObjFso      :   Set ObjFso = CreateObject("Scripting.FileSystemObject")
Dim FIL_LOG     :   FIL_LOG = Replace(WScript.ScriptFullName,".vbs",".log")
Function WriteLog(Inhalt)
  Dim FileOut
    Set FileOut = ObjFso.OpenTextFile(FIL_LOG,8,true)
    FileOut.WriteLine (Now() & " - " & Inhalt)
    FileOut.Close
    Set FileOut = Nothing
End Function
 
' Dateien im Quellordner vorhanden?
FilesCount = ObjFso.GetFolder(sourcefolder).Files.count
 
if FilesCount > 0 then
 
  ' Dateien vorhanden
  WriteLog("Dateien vorhanden!")
 
  ' Mail
  set lobj_cdomsg = CreateObject("CDO.Message")
  lobj_cdomsg.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
  lobj_cdomsg.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = server
  lobj_cdomsg.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = port
  lobj_cdomsg.Configuration.Fields.Update
  lobj_cdomsg.To = mailto
  lobj_cdomsg.From = mailfrom
  lobj_cdomsg.Subject = mailsubject
  lobj_cdomsg.TextBody = mailbody
 
  ' Mailanhang
  Set Folder=ObjFso.GetFolder(sourcefolder)
  For Each File in Folder.Files
    lobj_cdomsg.AddAttachment (Folder & "\" & File.Name)
  Next
 
  ' Dateien loggen
  WriteLog("Dateien:")
  For Each File in Folder.Files
    WriteLog(File.Name)
  Next
 
  ' Mail senden
  lobj_cdomsg.Send
 
  ' Dateien verschieben
  For Each File in Folder.Files
    ObjFso.MoveFile sourcefolder & "\" & File.Name, targetfolder & "\"
  Next
 
  WriteLog("Vorgang abgeschlossen!")
 
else
 
  ' KEINE Dateien vorhanden!
  WriteLog("KEINE Dateien vorhanden!")
 
end if
Code-Sprache: PHP (php)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

vier + achtzehn =