Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente bannato
    Registrato dal
    Nov 2004
    Messaggi
    221

    Email di controllo da GuestBook

    Premetto che ho postato questo anche nel forum FLASH/actionscript ma a posteriori mi son reso conto di aver sbagliato forum ... almeno non ho più avuto risposte .... premetto pure che ho letto qualche pagina dove si parla dei cambiamenti di win2003 ma le mie conoscienze in ASP sono nulle e volevo solo realizzare questa pagina per l'email di controllo ... almeno per ora

    Passando al problema ecco il codice che mi hanno proposto (al posto della versione CDONTS che avevo già trovato!)

    codice:
    <%
    
    on error resume next
    
    if err.number>0 then
    strOutput= "Si è verificato un errore nell'invio dei dati tramite posta elettronica. I dati sono stati comunque salvati regolarmente."
    				else
    strOutput ="Richiesta inoltrata correttamente, sarà nostra cura inviarLe una conferma della richiesta"
    				end if
    response.write "inserimento avvenuto con successo"
    
    
    DIM corpoMessaggio, numeroCampi, invioA, invioDa, nomeDominio, indirizzoIp, modulo, browserSistemaOperativo
    
    	
    	
    invioA =  "tuamai@esempio.it"
    
    '* voce da modificare con un indirizzo email che funga da mittente: 
    			
    invioDa =  "tuamail@esempio.it"
    
    
    
    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
    corpoMessaggio = corpoMessaggio & vbCrLf &"<font size=2>Nome : " & Request.Form("nome")
    corpoMessaggio = corpoMessaggio & vbCrLf & "Messaggio : " & Request.Form("messaggio")
    
    
    n =Request.Form("nome")
    r =Request.Form("messaggio")
    '* 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
    'qui dovrai mettere l'smpt del tuo sito
    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 = "Nuovo Messaggio sul Zoo Guest Book"
       .HTMLBody = "Questi i dati inseriti nel Guest Book dall'utente " & nome & "  . " & vbCrLf & corpoMessaggio & ""
       .Send
    End With
    %>

    Io ho provato ad usarlo ma nulla ma faccio alcune osservazione soprattutto perchè contiente dei passaggi che non riesco a capire se mi servono:


    --- non capisco cosa mi genera questa parte visto che non ne esiste traccia nel vecchio formato CDONTS ----
    codice:
    on error resume next
    
    if err.number>0 then
    strOutput= "Si è verificato un errore nell'invio dei dati tramite posta elettronica. I dati sono stati comunque salvati regolarmente."
    				else
    strOutput ="Richiesta inoltrata correttamente, sarà nostra cura inviarLe una conferma della richiesta"
    				end if
    response.write "inserimento avvenuto con successo"
    ---- tutta la parte che riguarda corpoMessaggio, numeroCampi ... non riesco a capirne la funzione?!?! e se quindi mi servono nel codice-----

    --- n ed r a che servono .... ----


    Questi sono i dati che pesca dal form di flash:
    nome, email, msg => ho sostituito

    codice:
    r =Request.Form("messaggio")
    con
    codice:
    r =Request.Form("msg")
    Ok ... non è che mi interessa una spiegazione dettagliata (comunque ben gradita se qualche volenteroso volesse) ma più che altro capire come far funzionare questo codice.

    Molte Grazie
    Mir

    PS: qui trovate il thread all'altro forum

  2. #2
    Hai sostituito a

    invioA = "tuamai@esempio.it"

    l'istruzione

    invioA = "l'indirizzo_al_quale_vuoi_che_la_mail_venga_invia ta"?
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  3. #3
    Utente bannato
    Registrato dal
    Nov 2004
    Messaggi
    221
    si si .... anche se pensavo che bastasse fosse formalmente corretta ... oppure se torna indietro crea errore?!?

  4. #4
    Se non la invii a un indirizzo esistente come fai a controllarne il risultato, in modo poi da sistemare il codice?
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  5. #5
    Utente bannato
    Registrato dal
    Nov 2004
    Messaggi
    221
    Spiego meglio: il code in asp completo imposta una variabile su falsa all'inizio e diventa vera solo dopo aver fatto alcuni controlli ... tra i quali anche quello dell'invio ... quindi setta su vera la variabile ed in risposta in flash ottengo "Tutto OK" ... quindi è da li che mi rendo conto dell'errore ... chiaro poi che l'email non mi arriva .... comunque il resto del codice è giusto perchè rimuovendo il code sull'email funziona correntemente!


  6. #6
    chiaro poi che l'email non mi arriva ....
    non credo di avere capito.........per verificare che il codice sia corretto dovrai pure provare l'invio di una mail ad un indirizzo esistente, no?

    In ogni caso, se la mail non viene inviata per qualche motivo che non sia un destinatario inesistente, dovresti avere un messaggio di errore ........ nel tuo caso, inoltre:

    if err.number>0 then
    strOutput= "Si è verificato un errore nell'invio dei dati tramite posta elettronica. I dati sono stati comunque salvati regolarmente."
    else
    strOutput ="Richiesta inoltrata correttamente, sarà nostra cura inviarLe una conferma della richiesta"
    end if
    Questa parte di codice non serve visto che poi non utilizzi la variabile strOutput contenente il messaggio di errore.

    Idem per
    n =Request.Form("nome")
    r =Request.Form("messaggio")
    le variabili n ed r non vengono poi utilizzate.

    Del form, il tuo codice acquisisce solo i campi nome e messaggio, questo script evidentemente è stato modificato senza dargli una sistemata, per esempio eliminando le variabili (come numeroCampi) non più utilizzate........
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  7. #7
    Utente bannato
    Registrato dal
    Nov 2004
    Messaggi
    221
    Esatto ... penso anch'io .... dando una sistemata sono arrivato a questo ... potresti dargli una controllata?


    codice:
    DIM invioA
    	
    invioA =  "tuamai@esempio.it"
    '* voce da modificare con un indirizzo email che funga da mittente: 
    
    '* 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
    'qui dovrai mettere l'smpt del tuo sito
    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 = "Nuovo Messaggio sul Zoo Guest Book"
       .HTMLBody = "Questi i dati inseriti nel Guest Book dall'utente " & nome & "  . " & vbCrLf & msg & ""
       .Send
    End With
    %>

  8. #8
    Mancano dichiarazione e valorizzazione delle variabili nome e msg :

    codice:
    dim nome, msg
    nome = request.form("nome")
    msg = request.form("messaggio")
    da inserire prima del ciclo with.......end with.

    Anche la variabile invioDa, che compare come mittente del messaggio nel ciclo with.....end with, non è dichiarata e valorizzata.

    Puoi inserire, all'inizio:

    codice:
    dim invioDa
    invioDa = request.form("email")
    Si suppone, ovviamente, che il form che l'utente dovrà compilare contenga almeno i campi nome , messaggio e email .

    Lo script che uso per il modulo contatti dei miei siti, ove sia utilizzato l'oggetto CDOSYS, contiene un ciclo che rileva automaticamente tutti i campi del form, anzichè farne il request uno per uno.
    Lo incollo qui di seguito perchè possa confrontarlo con il tuo.
    codice:
    <%
    DIM corpoMessaggio, numeroCampi, invioA, invioDa, nomeDominio, indirizzoIp, modulo, browserSistemaOperativo
    
    	
    invioA =  "il_mio_indirizzo_email"
    
    invioDa =  "linkbruttocane@technet.it"
    
    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())
       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.xxxxxxxxxxxxxx.xxx" 
    Flds(cdoSMTPServerPort) = 25
    Flds(cdoSMTPAuthenticate) = cdoBasic
    Flds(cdoSendUserName) = "postmaster@xxxxxxxxxxxxxxxx.xxx"
    Flds(cdoSendPassword) = "xxxxxxxxxxx"
    Flds.Update 
    
    With iMsg
       Set .Configuration = iConf
       .To = invioA
       .From = Request.form("email")
       .Sender = invioDa
       .Subject = "Contatto dal dominio " & nomeDominio
       .textBody = "Questi i dati inseriti nel modulo presente alla pagina " & modulo & " da utente con indirizzo IP " & indirizzoIp & "  browser e sistema operativo " & browserSistemaOperativo  & vbCrLf & corpoMessaggio & ""
       .Send
    End With
    %> 
    <script>
    document.location.replace('grazie.asp');
    </script>
    Il ciclo che rileva i campi del form è for numeroCampi..........next

    Il messaggio di buon esito, anzichè nello stesso script, è contenuto nella pagina grazie.asp alla quale l'utente viene rinviato dopo l'inoltro del form.

    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  9. #9
    Utente bannato
    Registrato dal
    Nov 2004
    Messaggi
    221


    niente niente niente ... domani ripiglio tutto da capo ... ormai ho una cosa senza più forma sotto le mani ... probabilmente ho dei richiami a delle variabili nella parte restante del codice e quindi mi crea problemi ...


    Grazie comunque!!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.