Ciao a tutti ....
ho un problema per quanto riguarda una pagina asp di inserimento Dati.
Vi spiego un attimo quale dovrebbe essere il risultato :
ho un form in cui posso inserire dei dati;
una volta inseriti i dati tramite un submit faccio l'upload del file che ho selezionato e mando una mail con l'allegato appena uplodato all'utente in questione
il Problema e il seguente:
il file viene uplodato correttamente e la mail viene mandata, ma 8 volte su 10 ci mette un secolo a inviarlo. Questo succede anche se non inserisco alcun allegato.
Molto sovente mi appare il messaggio che IIS nn è riuscito a Inviare perche la sessione e scaduta e consiglia di usare lo scriptsettimeout.
Vi posto il codice della pagina qua sotto...magari riuscite a darmi una mano nell'iserire qualche comando che velocizza il tutto. Grazie in anticipo...sto sbattendo la testa da vari giorni![]()
<head>
<title>INSERISCI DOCUMENTO</title>
<link href="stile.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/interface.js"></script>
<link href="stylemenu.css" rel="stylesheet" type="text/css" />
</head>
<%
Dim oUpload
Dim oFile
Dim sFileName
Dim oFSO
Dim sPath 'percorso del file
Dim sNewData
Dim nLength
Dim bytBinaryData
Dim Tipo 'campo TIPOLOGIA del form
Dim Destinatario
Dim Mittente 'campo PERSONA del form
Const nForReading = 1
Const nForWriting = 2
Const nForAppending = 8
Dim anno, mese, giorno, ore, minuti, secondi
Dim Differenza3
'data = day(date)
' Funzione DataInNum a cui passo una data
' Preleva dalla data l'anno
anno = Year(date)
' Preleva dalla data il mese
mese = Month(date)
' Preleva dalla data il giorno
giorno = Day(date)
' Concatena i valori in un unico numero
solodata = giorno & "/" & mese & "/" & anno
data = giorno & mese & anno
ore = hour(time)
minuti = minute(time)
secondi = second(time)
'data = data & ore & minuti & secondi
Orax= ore & minuti & secondi
' Differenza3 = DateDiff("s", Data_ricevimento, Now)
' grab the uploaded file data
Set oUpload = New clsUpload
Tipo = oUpload.ValueOf(1)' il numero contrassegnato nella parentesi sta a indicare il numero del campo ( in quest caso ) '
Data_ricevimento = oUpload.ValueOf(2)
Mittente = oUpload.ValueOf(3)
Ritirato_da = oUpload.ValueOf(5)
Data_ritiro = oUpload.ValueOf(6)
Destinatario = oUpload.ValueOf(4)
Priorita = oUpload.ValueOf(7)
Mail = oUpload.ValueOf(8)
Note = oUpload.ValueOf(9)
Allegato = oUpload.ValueOf(10)
StatoPosta = oUpload.ValueOf(11)
Set oFile = oUpload("File1")
' parse the file name
sFileName = oFile.FileName
If Not InStr(sFileName, "\") = 0 Then
sFileName = Mid(sFileName, InStrRev(sFileName, "\") + 1)
End If
' Convert the binary data to Ascii
bytBinaryData = oFile.BinaryData
nLength = LenB(bytBinaryData)
For nIndex = 1 To nLength
sNewData = sNewData & Chr(AscB(MidB(bytBinaryData, nIndex, 1)))
Next
' Save the file to the file system
sPath = Server.MapPath("allegati") & "/"
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
sFileName = data & "-" & sFileName
sFileName = replace(sFileName, " ", "_")
oFSO.OpenTextFile(sPath & sFileName, nForWriting, True).Write sNewData
Set oFSO = Nothing
Set oFile = Nothing
Set oUpload = Nothing
'Dim Differenza,Differenza2,dataP
'dataP = data
dataP = Data_ricevimento
'Differenza = DateDiff("h", Orax, Date)
'Differenza2 = DateDiff("n", Data_ricevimento, Date)
'Differenza2=CDate(solodata)
'response.write(Differenza2)
dim conn, rs, rs2, rs3, rs4, rs5, sql
' --- costruzione stringa di connessione al db ---
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};" &_
"DBQ="& Server.MapPath("Posta.mdb")
'response.Write(solodata)
'response.Write(Destinatario)
'response.Write(Mittente)
'response.Write(sFileName)
'response.write (nLength) pesantezza file
'response.write(Orax)
' --- preparazione connection e recordset ---
Set cn = Server.CreateObject("Adodb.Connection")
Set rs3 = Server.CreateObject("Adodb.Recordset")
Set rs = Server.CreateObject("Adodb.Recordset")
Set rs2 = Server.CreateObject("Adodb.Recordset")
Set rs4 = Server.CreateObject("Adodb.Recordset")
Set rs5 = Server.CreateObject("Adodb.Recordset")
sql5 = "SELECT * FROM T_Diff ORDER BY ID desc"
SET rs5 = conn.execute(sql5)
Do while not rs5.EOF
if rs5("StatoPosta") = "NO" then
if rs5("Differenza") > 12 then
if rs5("Sollecito") = "No" then
to_field = Request.Querystring("to_field")
message = Request.Querystring("message")
'Creo l'oggetto objCDOSYSMail
Set objCDOSYSMail = Server.CreateObject("CDO.Message")
Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")
'Imposto l'SMTP
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "pop.manital.it"
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objCDOSYSCon.Fields.Update
'Update the CDOSYS Configuration
Set objCDOSYSMail.Configuration = objCDOSYSCon
objCDOSYSMail.From = "PostaInternaManital@prova.com" ' inserire l'indirizzo ( ci deve per forza essere la @ )
objCDOSYSMail.TO = rs5("Mail") 'passo il campo Mail per fare in modo che lo script invii all' indirizzo che si scrive sul campo mail
objCDOSYSMail.Subject = "Avviso attivazione posta"
objCDOSYSMail.HTMLBody = "SOLLECITO"
objCDOSYSMail.AddAttachment server.MapPath("allegati\" & sFileName)
objCDOSYSMail.Send
'chiudi la connessione con l'oggetto objCDOSYSMail
Set objCDOSYSMail = Nothing
Set objCDOSYSCon = Nothing
'rs5.Open "T_Diff", conn, 2, 2
rs5.movefirst
sqlupdate = "UPDATE T_Diff SET Sollecito = 'Si'"
'sqlupdate1 = "UPDATE T_Diff SET Differenza = '" & Differenza & "'"
conn.execute(sqlupdate)
'conn.execute(sqlupdate1)
'rs5.update
'rs5.close
'set rs5 = nothing
end if
end if
end if
response.write( "
" & rs5( "Mail" ) )
rs5.movenext
'rs6.movenext
Loop
rs2.Open "T_Posta", conn, 2, 2
' --- aggiunta di un record ---
rs2.addnew
rs2("Mittente") = Mittente
rs2("Tipo") = Tipo
rs2("Data_ricevimento") = Data_ricevimento
rs2("Destinatario") = Destinatario
rs2("Ritirato_da") = Ritirato_da
rs2("Data_ritiro") = Data_ritiro
rs2("Priorita") = Priorita
rs2("Mail") = Mail
rs2("Note") = Note
rs2("Allegato") = sFileName
rs2("StatoPosta") = StatoPosta
'Mail=session("Mail")
'session("Mail")=rs2("Mail")
rs2.update
sql11 = "SELECT ID FROM T_Posta ORDER BY ID desc"
set rs11 = conn.execute(sql11)
rs11.movefirst
IDPosta = rs11("ID")
'
rs.Open "T_Documenti", conn, 2, 2
' --- aggiunta di un record ---
rs.addnew
rs("Destinatario") = Destinatario
rs("Data") = solodata
rs("Mail") = Mail
rs.update
rs3.Open "T_MailR", conn, 2, 2
' --- aggiunta di un record ---
rs3.addnew
rs3("Mail") = Mail
rs3("Ora") = Orax
rs3("Data") = solodata
rs3("Destinatario") = Destinatario
rs3.update
rs4.Open "T_Diff", conn, 2, 2
' --- aggiunta di un record ---
rs4.addnew
rs4("Mail") = Mail
rs4("DataCorr") = DataP
rs4("OraInvio") = Orax
rs4("Differenza") = Differenza3
rs4("StatoPosta") = StatoPosta
rs4("Sollecito") = "No"
rs4("IDPosta") = IDPosta
rs4.update
sql5 = "SELECT *, DateDiff('s', Data_ricevimento, 'Now') AS Differenza3 FROM T_Diff,T_Posta"
set rs5 = conn.execute(sql5)
do while not rs5.EOF
'fondamentale perche senno non fa riga per riga
Data_ricevimento = rs5("Datacorr")
Differenza3 = DateDiff("s", Data_ricevimento, Now)
'modifichiamo la differenza e associamo l'ID della posta
sqlupdate1 = "UPDATE T_Diff SET Differenza = " & Differenza3 & " WHERE IDPosta=" & rs5("IDPosta")
conn.execute(sqlupdate1)
rs5.movenext
loop
'
Dim to_field, message
to_field = Request.Querystring("to_field")
message = Request.Querystring("message")
'Creo l'oggetto objCDOSYSMail
Set objCDOSYSMail = Server.CreateObject("CDO.Message")
Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")
'Imposto l'SMTP
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "pop.manital.it"
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objCDOSYSCon.Fields.Update
'Update the CDOSYS Configuration
Set objCDOSYSMail.Configuration = objCDOSYSCon
objCDOSYSMail.From = "PostaInternaManital@prova.com" ' inserire l'indirizzo ( ci deve per forza essere la @ )
objCDOSYSMail.TO = Mail 'passo il campo Mail per fare in modo che lo script invii all' indirizzo che si scrive sul campo mail
objCDOSYSMail.Subject = "Avviso attivazione posta"
objCDOSYSMail.HTMLBody = "Avviso ricezione posta presso Sede Ivrea"
objCDOSYSMail.AddAttachment server.MapPath("allegati\" & sFileName)
objCDOSYSMail.Send
'chiudi la connessione con l'oggetto objCDOSYSMail
Set objCDOSYSMail = Nothing
Set objCDOSYSCon = Nothing
'Dim MiaData
'MiaData = "15/3/1994"
'Dim Differenza, Differenza2
'Differenza = DateDiff("yyyy", MiaData, Date)
'Differenza2 = DateDiff("D", MiaData, Date)
'Response.write Differenza & "-"
'Response.write Differenza2
'Restituisce 12/12/2003
'Dim MiaData
'MiaData = rs3("Data")
'miaOra = rs3("Ora")
'Dim Differenza, dataP
'dataP = rs3("Data")
'Differenza = DateDiff("h", dataP, Date)
'Differenza2 = DateDiff("D", MiaData, Date)
'Response.write MiaData
'Response.write Differenza & "-"
'Response.write Differenza2
rs.close
set rs = nothing
rs2.close
set rs2 = nothing
conn.close
set conn = nothing
'rs5.close
'set rs5 = nothing
'cn.close()
'set cn = nothing
AzioneLog = "Inserita registrazione di tipo " & Tipo & " registrata il " & Data_ricevimento & " da " & Mittente & " per " & Destinatario & " con allegato " & sFileName
%>
<html>
Il file è stato salvato!</p>
Indietro
<%
'response.redirect "visualizza.asp"
%>
</html>

Rispondi quotando
