Sono riuscito (in qualche modo!!) ad assemblare una serie di script che mi effettuano l'upload di un file e l'invio tramite email.
E' già da qualche tempo che li sto provando mi sembra che funzionino benino.
In effetti il file allegato viene quasi sempre inviato ed eliminato correttamente, però a volte mi appare questo errore (e non la pagina grazie.asp):
CDO.Message.1 error '80070002'
The system cannot find the file specified.
/invio/form.asp, line 65
Come se non trova il file da allegare e quando compare questo messaggio mi sa che non lo elimina neanche dal server.
Mi aiutate??
paghero da bere! Promesso.
Questo il codice per l'invio ed alla fine in grassetto la porzione per eliminare il file.
<%
filename = Request.Form("filename")
%>
<!--METADATA TYPE="typelib" UUID="CD000000-8B95-11D1-82DB-00C04FB1625D" NAME="CDO for Windows 2000 Type Library" -->
<!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4" NAME="ADODB Type Library" -->
<%
DIM corpoMessaggio, numeroCampi, invioA, invioDa, nomeDominio, indirizzoIp, modulo, browserSistemaOperativo, cartella, fileAllegato
'* voce da modificare con il proprio indirizzo email
invioA = "tuaemail@email.it"
'* voce da modificare con un indirizzo email che funga da mittente:
'* in caso di errore riceverete notifica a questo indirizzo un MAILER-DAEMON
'* dato che cdosys supporta questa notifica
invioDa = "tuaemail@email.it"
'* indicare il nome del file da allegare, il file deve
'* risiedere in questa stessa cartella, come il file allegato a titolo di esempio
filename= filename
'------------fine modifiche necessarie------------------
nomeDominio = Request.ServerVariables("HTTP_HOST")
indirizzoIp = Request.ServerVariables("REMOTE_ADDR")
modulo = Request.ServerVariables("HTTP_REFERER")
browserSistemaOperativo = Request.ServerVariables("HTTP_USER_AGENT")
cartella = Server.MapPath("/public")
'*rilevo i campi del form
FOR numeroCampi = 1 TO (Request.Form.Count() - 1)
IF NOT Request.Form(numeroCampi) = "" AND NOT Request.Form.Key(numeroCampi) = "privacy" THEN
corpoMessaggio = corpoMessaggio & "<table width=100% border=1 cellpadding=4 cellspacing=0>" & "<tr>" &_
"<td width=150 bgcolor=#E3E9F2><font size=2><b>" & Request.Form.Key(numeroCampi) & "</b></font></td>" &_
"<td bgcolor=#F8F8F8><font size=2>"& Trim(Request.Form(numeroCampi)) & "</font></td>" & "</tr>" & "</table>"
END IF
NEXT
'* creo gli oggetti cdosys sul server e li gestisco
DIM iMsg, Flds, iConf
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
Flds(cdoSendUsingMethod) = cdoSendUsingPort
Flds(cdoSMTPServer) = "smtp.aruba.it"
Flds(cdoSMTPServerPort) = 25
Flds(cdoSMTPAuthenticate) = cdoAnonymous ' 0
Flds.Update
With iMsg
Set .Configuration = iConf
.To = invioA
.From = Request.Form("email")
.Sender = invioDa
.Subject = "Invio allegato | " & nomeDominio
.HTMLBody = "<font face=verdana size=2>Questi i dati inseriti nel modulo presente alla pagina <b> " & modulo & " </b>da utente con indirizzo IP <b>" & indirizzoIp & " </b> browser e sistema operativo <b>" & browserSistemaOperativo & "</b><br><br>" & corpoMessaggio
.AddAttachment (cartella & "\" & filename)
.Send
End With
Dim objFSO
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile(cartella & "\" & filename)
Set objFSO = Nothing
%>
<script>
document.location.replace('grazie.asp');
</script>