====== Mailer ====== Lo script può essere utilizzato per mandare mail verso l'esterno tramite server SMTP autenticato (base: nome utente e password). Dato che si aspetta dei parametri può /deve essere richiamato da uno script esterno, come un batch. Questo è un esempio di file batch in grado di richiamare e utilizzare lo script: set sender="PROVA " set alert=giovanni@bianchi.it set message=Messaggio di prova! cscript Mailer.vbs %sender% %alert% "OGGETTO MAIL DI PROVA" "%message%" Dove "**sender**" è chiaramente il mittente, "**alert**" il destinatario, "**message**" il contenuto del corpo della mail e l'oggetto può essere sostituito direttamente a "**OGGETTO MAIL DI PROVA**". Il Mailer.vbs deve trovarsi all'interno della stessa cartella oppure occorrerà inserire il percorso completo per richiamarlo. Qui di seguito il VBS: ' MAILER ' Ultima modifica 04062013-rev0 dev@gfsolone.com ' Vedi: http://public.gfsolone.com/wiki/doku.php?id=vbs:alertmailer Set WshNetwork = WScript.CreateObject("WScript.Network") Set objNTInfo = CreateObject("WinNTSystemInfo") Set objFSO = CreateObject("scripting.filesystemobject") dim strFrom, strAlert, strSubject, strTextBody Set objArgs = WScript.Arguments strFrom = objArgs(0) strAlert = objArgs(1) strSubject = objArgs(2) strTextBody = objArgs(3) ' Rilevamento IP locale / VPN della macchina ' Vedi wiki: http://public.gfsolone.com/wiki/doku.php?id=vbs:localhostinfo dim NIC1, Nic, StrIP, CompName Set NIC1 = GetObject("winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration") For Each Nic in NIC1 if Nic.IPEnabled then StrIP = Nic.IPAddress(i) CompName = WshNetwork.Computername Dim WMI, Configs, Config, Adapters, Adapter Set WMI = GetObject("winmgmts:{impersonationlevel=impersonate}root/cimv2") Set Configs = WMI.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled=True") For Each Config In Configs Set Adapters = WMI.AssociatorsOf("Win32_NetworkAdapterConfiguration.Index=" & Config.Index, "Win32_NetworkAdapterSetting") For Each Adapter In Adapters VPNIP = Config.IPAddress(0) Next Next 'Debug: informazioni mostrate in msgbox (togliere i commenti per la verifica) 'MsgBox "IP Address: "&StrIP & vbNewLine _ '& "VPN IP Address: "&VPNIP & vbNewLine _ '& "Computer Name: "&CompName ,4160,"IP Address and Computer Name" 'wscript.quit end if next ' SendMail GSolone 20121122 rev2 con SMTP Esterno ' Vedi wiki: http://public.gfsolone.com/wiki/doku.php?id=vbs:sendmail ' La modifica allo script permette l'utilizzo di un server SMTP esterno passando le credenziali di autenticazione basic, porta 25. 'strComputerName = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" ) Set objMessage = CreateObject("CDO.Message") 'debug objMessage.From = "mittente@localhost.tld" 'debug objMessage.To = "destinatario@localhost.tld" 'debug MsgBox "From rilevato: " & strFrom & vbNewLine & "To rilevato: "& strAlert & vbNewLine objMessage.From = strFrom objMessage.To = strAlert objMessage.Subject = strSubject objMessage.TextBody = strTextBody & vbCRLF & vbCRLF & "------------------------" & vbCRLF & "Source Host: " & CompName & vbCRLF & "Local IP: " & StrIP objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.localhost.tld" objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "mittente@localhost.tld" objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 objMessage.Configuration.Fields.Update objMessage.Send strFrom = objArgs(0), strAlert = objArgs(1), strSubject = objArgs(2), strTextBody = objArgs(3) vengono ereditati dal file batch (possono quindi essere modificati direttamente nel VBS se preferite non inserirli nel batch perdendo però la comodità di richiamare un solo VBS da più script di terze parti). Vanno verificate inoltre le impostazioni nella parte relativa al "**SendMail**" dove ho inserito SMTP da utilizzare, utente e password.