User Tools

Site Tools


vbs:alertmailer

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
vbs:alertmailer [2013/06/04 15:50] gfsadministratorvbs:alertmailer [2014/04/07 19:55] (current) – old revision restored (2014/04/07 19:51) gfsadministrator
Line 1: Line 1:
 +====== 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:
 +
 +<file winbatch Alert.cmd>
 +set sender="PROVA <mario@rossi.it>"
 +set alert=giovanni@bianchi.it
 +set message=Messaggio di prova!
 +cscript Mailer.vbs %sender% %alert% "OGGETTO MAIL DI PROVA" "%message%"
 +</file>
 +
 +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:
 +
 +<file vb Mailer.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
 +</file>
 +
 +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.
vbs/alertmailer.txt · Last modified: 2014/04/07 19:55 by gfsadministrator