Ciao a tutti!
Ho un modulo di contatto/inviocurriculum (con selezione del destinatario) che, oltre ad inviare una e-mail (utilizzando CDOSYS), esegue l'upload di files (di dimensioni medio/piccole, dunque l'esempio di aruba mi va benissimo).
Lo scopo è (anche) quello di permettere ad un potenziale candidato di inviare una email e di allegare (uploadare) il proprio curriculum (al destinatario arriverà quindi una e-mail con l'url dove poter scaricare il file del CV).
Nel "miscelare" i codici di queste 2 funzionalità all'interno di un'unica pagina asp (l'ordine è: 1) upload - 2) invio e-mail), dapprima sono incorsa in errori di incompatibilità tra "Request.BinaryRead" (dell'upload) ed i vari "Request.Form" (passati dal form), ma li ho ben presto risolti sostituendo a questi ultimi l'istruzione UploadRequest.Item("nomecampoform").Item("Value").
Tutto bene fin quando, anzichè passare il contenuto di un campo di tipo testo, passo il contenuto di un campo selezionato da un menu a tendina, nel mio caso specifico il destinatario.
L'errore che ottengo è il seguente:
Cosa c'è che non va? Perchè i campi di testo li passo regolarmente mentre il destinatario, selezionato da un menu a tendina (input type select), non me lo passa?codice:CDO.Message.1 error '8004020c' È necessario specificare almeno un destinatario, ma non ne è stato trovato alcuno. formcdosys.asp, line 122
Il codice del menu a tendina nel form è il seguente:
Mentre il codice dell'upload + invio è il seguente:codice:<select name="destinatario"> <option>Scegliere un destinatario...</option> <option value="email1">Informazioni</option> <option value="email2">Ufficio Vendite</option> <option value="email3">Ufficio Commerciale</option> <option value="email4">Invio Curriculum Vitae</option> </select>
Vi ringrazio per qualunque aiuto potrete darmi!codice:<% Response.Expires=0 Response.Buffer = TRUE Response.Clear byteCount = Request.TotalBytes RequestBin = Request.BinaryRead(byteCount) Dim UploadRequest Set UploadRequest = CreateObject("Scripting.Dictionary") BuildUploadRequest RequestBin contentType = UploadRequest.Item("blob").Item("ContentType") filepathname = UploadRequest.Item("blob").Item("FileName") vardestinatario=UploadRequest.Item("destinatario").Item("Value") varnome=UploadRequest.Item("nome").Item("Value") varazienda=UploadRequest.Item("azienda").Item("Value") varemail=UploadRequest.Item("email").Item("Value") varmessaggio=UploadRequest.Item("messaggio").Item("Value") varblob=UploadRequest.Item("blob").Item("Value") filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\")) value = UploadRequest.Item("blob").Item("Value") 'Create FileSytemObject Component Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject") 'Create and Write to a File pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14 Set MyFile = ScriptObject.CreateTextFile(Left(Server.mappath(Request.ServerVariables("PATH_INFO")),pathEnd) & filename) For i = 1 to LenB(value) MyFile.Write chr(AscB(MidB(value,i,1))) Next MyFile.Close %> <% DIM corpoMessaggio, numeroCampi, invioA, invioDa, nomeDominio, indirizzoIp, modulo, browserSistemaOperativo If vardestinatario = "email1" Then invioA = "casella1@dominio.it" ElseIf vardestinatario = "email2" Then invioA = "casella2@dominio.it" ElseIf vardestinatario = "email3" Then invioA = "casella3@dominio.it" ElseIf vardestinatario = "email4" Then invioA = "casella4@dominio.it" End If invioDa = varemail nomeDominio = Request.ServerVariables("HTTP_HOST") indirizzoIp = Request.ServerVariables("REMOTE_ADDR") modulo = Request.ServerVariables("HTTP_REFERER") browserSistemaOperativo = Request.ServerVariables("HTTP_USER_AGENT") If varblob = "" Then corpoMessaggio = vbCrLf & "Nome: " & varnome & vbCrLf & "Azienda: " & varazienda & vbCrLf & "E-mail: " & varemail & vbCrLf & "Messaggio: " & vbCrLf & varmessaggio Else corpoMessaggio = vbCrLf & "Nome: " & varnome & vbCrLf & "E-mail: " & varemail & vbCrLf & "File del C.V.: http://www.dominio.it/public/cv/" & varblob & vbCrLf & "Messaggio: " & vbCrLf & varmessaggio End If '* 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 = varemail .Sender = invioDa If varblob = "" Then .Subject = "Messaggio dal sito" Else .Subject = "Curriculum Vitae dal sito" End If .TextBody = "Questi i dati inseriti nel modulo di contatto presente sul sito PippoPluto all'indirizzo " & modulo & "):" & vbCrLf & corpoMessaggio & "" .Send End With %> <script> document.location.replace('/contatti_ok.asp'); </script>![]()
t.

Rispondi quotando
