Salve,
ho un problema da quando mi hanno trasferito il sito su host windows2012, utilizzo il modulo cdosys preleveto da aruba, per l'iscrizione alla newsletter del mio sito, al file formcdosys.asp che allego di seguito, ho aggiunto il campo .Cc per far si che l'utente che si iscrive riceva una copia dell'iscrizione per conferma.
Ora accade che se nel campo email del modulo viene inserito un indizzo errato (es. pico@palla.hh) compaia il messaggio di errore 500, viceversa se l'indirizzo è esatto o "verosimile" (es. pico@palla.com) appare la pagina di avvenuto invio del modulo.
C'è un modo per evitare l'errore 500 anche nel primo caso, cioè che l'invio si concluda comunque con la pagina di conferma di avvenuto invio?
Grazie
formcdosys.asp
<!--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" -->
<%
'============Linkbruttocane su specifiche MSDN================
'* il corpo finale del messaggio contiene tutti i campi *
'* inseriti nella pagina html, in pratica puoi mettere *
'* tutti i campi che ti servono nel modulo di invio senza *
'* fare altre configurazioni aggiuntive. *
'================================================= ============
DIM corpoMessaggio, numeroCampi, invioA, invioDa, nomeDominio, indirizzoIp, modulo, browserSistemaOperativo
'* voce da modificare con il proprio indirizzo email
invioA = "webmaster@miosito.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 = "Newsletter <webmaster@miosito.it>"
'------------fine modifiche necessarie------------------
nomeDominio = Request.ServerVariables("HTTP_HOST")
indirizzoIp = Request.ServerVariables("REMOTE_ADDR")
modulo = Request.ServerVariables("HTTP_REFERER")
browserSistemaOperativo = Request.ServerVariables("HTTP_USER_AGENT")
'*rilevo i campi del form
FOR numeroCampi = 1 TO (Request.Form.Count() - 1)
IF NOT Request.Form(numeroCampi) = "" THEN
corpoMessaggio = corpoMessaggio & vbCrLf & Request.Form.Key(numeroCampi) & ": " & Trim(Request.Form(numeroCampi))
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
.Cc = Request.Form("Email")
.From = Request.Form("Email")
.Sender = invioDa
.Subject = "Iscrizione Newsletter "
.TextBody = "Iscrizione alla Newsletter" & vbCrLf & vbCrLf & "Questi i dati inseriti nel modulo all'indirizzo: " & modulo & vbCrLf & corpoMessaggio & vbCrLf & vbCrLf & "IP utente: " & indirizzoIp & vbCrLf & "Browser e sistema operativo: " & browserSistemaOperativo &""
.Send
End With
%>
<script>
document.location.replace('iscrizione_ok.htm');
</script>

Rispondi quotando