mrandre
20-02-2011, 13:37
Nella mia azienda c'e' la necessità di mantenere tutti i documenti cartacei che riceviamo (fatture, bollettini di spedizione, contratti con i clienti...etc) in maniera ordinata all'interno del nostro server principale in modo da poter avere sempre tutto sottomano e a portata di click invece di dover cercare i documenti in giro per l'ufficio.
Ho impostato un servizio che gira sul server che "sniffa" tutto ciò che viene passato sullo scanner in automatico e lo salva in formato pdf in una cartella predefinita.
Poi, chi si occupa dell'amministrazione (in questo momento io stesso ma in un futuro, si spera, sarà un ragioniere XD) deve aprire questa cartella, visualizzare i pdf e riordinarli nelle altre cartelle relative all'amministrazione della ditta.
Ora io voglio assicurarmi che i documenti scannerizzati vengono poi presi e ordinati nelle varie cartelle e per fare ciò, oltre ai controlli "dal vivo", stavo pensando di farmi aiutare da uno script che avvisasse il personale amministrativo per email qualora fossero stati dimenticati dei pdf non registrati nella cartella dello scanner.
E' un progetto molto semplice, soggetto a molte falle ma ha il solo compito di incentivare l'opera di riordinamento dei files e sarà sempre e comunque affiancato al controllo "manuale" vecchio stampo.
Giungendo al dunque sono riuscito a programmare un piccolo script che non fa altro che verificare se all'interno della cartella specificata non ci siano file pdf...se ce ne sono invia un email all'indirizzo di chi si occupa della contabilità per ricordagli di ordinare i file.
Lo script carica i dati ogni volta da un file di configurazione che si chiama "config.txt" che si trova sempre nella stessa cartella dello script ed associa ogni linea del .txt alla cella di un array che viene poi utilizzato per impostare la mail (server smtp, nome utente, password, destinatario...etc)
Tutto sembrerebbe funzionare se non il fatto che, non importa quali credenziali di accesso al server smtp uso ma ricevo sempre un'errore di Timeout dal server (sia esso quello di google, quello di msn o persino quello a pagamento legato alla mia mail aziendale.
Qui di sotto riporto lo script e un esempio del file config.txt contenente la configurazione per l'utilizzo con gmail:
config.txt :
NOTA: TUTTO CIO CHE VIENE INSERITO IN QUESTA PRIMA RIGA VERRA IGNORATO;in ordine : cartella da controllare,from, to1, password, port, smtpserver, sslcheck (1=true; 0=false ;)
f:\pdf
zelogcheck@gmail.com
andrea.z****@zelog.com
"PASSWORD"
465
smtp.gmail.com
1
Codice visual basic 2010:
Imports System.Net.Mail
Public Class Form1
Dim message As New MailMessage
Dim smtp As New SmtpClient
Dim mestesso, file, scanner As String
Dim from1, to1, password, port, smtpserver, sslcheck As String
Dim body, object1 As String
Dim conf(0 To 7) As String
Dim c As Integer
Public myfilename As String
Public mynewline(1000) As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
mestesso = CurDir() & "\"
myfilename = mestesso & "config.txt"
c = 0
FileOpen(1, myfilename, OpenMode.Input)
Do Until EOF(1)
mynewline(c) = LineInput(1)
c = c + 1
Loop
FileClose(1)
scanner = mynewline(1)
from1 = mynewline(2)
to1 = mynewline(3)
password = mynewline(4)
port = mynewline(5)
smtpserver = mynewline(6)
sslcheck = mynewline(7)
object1 = DateTime.Today & " - Zelog Checker : Alcuni pdf non sono stati archiviati!"
file = Dir(scanner & "\*.pdf")
If file = "" Then
Else
message.From = New MailAddress(from1)
message.To.Add(to1)
message.Body = "Messaggio inviato automaticamente dal nostro Server, le risposte verranno ignorate"
message.Subject = object1
message.Priority = MailPriority.Normal
'impostazioni del server smtp
If sslcheck = "1" Then
smtp.EnableSsl = True
Else : smtp.EnableSsl = False
End If
smtp.Port = port
smtp.Host = smtpserver 'nome del server smtp
smtp.Credentials = New Net.NetworkCredential(from1, password)
smtp.Send(message)
MsgBox("ffatto!")
End If
End Sub
End Class
Ho impostato un servizio che gira sul server che "sniffa" tutto ciò che viene passato sullo scanner in automatico e lo salva in formato pdf in una cartella predefinita.
Poi, chi si occupa dell'amministrazione (in questo momento io stesso ma in un futuro, si spera, sarà un ragioniere XD) deve aprire questa cartella, visualizzare i pdf e riordinarli nelle altre cartelle relative all'amministrazione della ditta.
Ora io voglio assicurarmi che i documenti scannerizzati vengono poi presi e ordinati nelle varie cartelle e per fare ciò, oltre ai controlli "dal vivo", stavo pensando di farmi aiutare da uno script che avvisasse il personale amministrativo per email qualora fossero stati dimenticati dei pdf non registrati nella cartella dello scanner.
E' un progetto molto semplice, soggetto a molte falle ma ha il solo compito di incentivare l'opera di riordinamento dei files e sarà sempre e comunque affiancato al controllo "manuale" vecchio stampo.
Giungendo al dunque sono riuscito a programmare un piccolo script che non fa altro che verificare se all'interno della cartella specificata non ci siano file pdf...se ce ne sono invia un email all'indirizzo di chi si occupa della contabilità per ricordagli di ordinare i file.
Lo script carica i dati ogni volta da un file di configurazione che si chiama "config.txt" che si trova sempre nella stessa cartella dello script ed associa ogni linea del .txt alla cella di un array che viene poi utilizzato per impostare la mail (server smtp, nome utente, password, destinatario...etc)
Tutto sembrerebbe funzionare se non il fatto che, non importa quali credenziali di accesso al server smtp uso ma ricevo sempre un'errore di Timeout dal server (sia esso quello di google, quello di msn o persino quello a pagamento legato alla mia mail aziendale.
Qui di sotto riporto lo script e un esempio del file config.txt contenente la configurazione per l'utilizzo con gmail:
config.txt :
NOTA: TUTTO CIO CHE VIENE INSERITO IN QUESTA PRIMA RIGA VERRA IGNORATO;in ordine : cartella da controllare,from, to1, password, port, smtpserver, sslcheck (1=true; 0=false ;)
f:\pdf
zelogcheck@gmail.com
andrea.z****@zelog.com
"PASSWORD"
465
smtp.gmail.com
1
Codice visual basic 2010:
Imports System.Net.Mail
Public Class Form1
Dim message As New MailMessage
Dim smtp As New SmtpClient
Dim mestesso, file, scanner As String
Dim from1, to1, password, port, smtpserver, sslcheck As String
Dim body, object1 As String
Dim conf(0 To 7) As String
Dim c As Integer
Public myfilename As String
Public mynewline(1000) As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
mestesso = CurDir() & "\"
myfilename = mestesso & "config.txt"
c = 0
FileOpen(1, myfilename, OpenMode.Input)
Do Until EOF(1)
mynewline(c) = LineInput(1)
c = c + 1
Loop
FileClose(1)
scanner = mynewline(1)
from1 = mynewline(2)
to1 = mynewline(3)
password = mynewline(4)
port = mynewline(5)
smtpserver = mynewline(6)
sslcheck = mynewline(7)
object1 = DateTime.Today & " - Zelog Checker : Alcuni pdf non sono stati archiviati!"
file = Dir(scanner & "\*.pdf")
If file = "" Then
Else
message.From = New MailAddress(from1)
message.To.Add(to1)
message.Body = "Messaggio inviato automaticamente dal nostro Server, le risposte verranno ignorate"
message.Subject = object1
message.Priority = MailPriority.Normal
'impostazioni del server smtp
If sslcheck = "1" Then
smtp.EnableSsl = True
Else : smtp.EnableSsl = False
End If
smtp.Port = port
smtp.Host = smtpserver 'nome del server smtp
smtp.Credentials = New Net.NetworkCredential(from1, password)
smtp.Send(message)
MsgBox("ffatto!")
End If
End Sub
End Class