Salve a tutti!
In questa settimana pre-ferragosto io sto qua in ufficio col ventilatore sparato in faccia a sbattere la testa su vbs
Devo creare un programma che fa questo:
1) Monitorare una directory
2) Quando viene aggiunto un file nuovo, manda lo stesso come allegato ad una mail
La prima parte l'ho risolta con un programma che ho trovato in rete: Directory Monitor
Questo simpatico programmino monitora la directory e all'aggiunta di un nuovo file, esegue un programma (ho pensato a un semplice vbs, ma sono flessibile su quale linguaggio utilizzare
) passandogli anche dei parametri, tra cui il percorso assoluto del file.
Il problema sorge nella seconda parte...
I file che vengono aggiunti in questa directory sono delle registrazioni audio generate dal nostro centralino voip. Quando parte la registrazione viene subito creato un file wav vuoto e poi scritto ogni 1-2 secondi.
E qui casca l'asino: appena viene creato il file vuoto, Directory Monitor esegue subito il vbs che restituisce l'errore " il file è utilizzato da un altro processo..." quando cerca di allegare il file. Avevo pensato di gestire l'errore con un WScript.Sleep e poi provare a riallegare il file.
A parte la soluzione balorda, questo sotterfugio non funziona se anche la seconda volta viene restituito l'errore
Come posso fare??? Come posso migliorare il codice in modo da gestire n tentativi di allegare il file??
Grazie a tutti!!!
codice:
Set email = CreateObject("CDO.Message")
email.Subject = "Test Email"
email.From = "XXX"
email.To = "XXX"
email.TextBody = "Message Text"
attachment = WScript.arguments(0)
email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "XXX"
email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "XXX"
email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "XXX"
email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
email.Configuration.Fields.Update
On Error Resume Next
email.AddAttachment attachment
If Err.Number <> 0 Then
WScript.Sleep 30000
email.AddAttachment attachment
email.Send
End If
Err.Clear
email.Send