• User Attivo

    paolocavo.....scusa....
    la mi difficoltà sta nel collegare l'inserimento di un record con l'invio di notifica email!
    quello è invece un form per invio email.....il concetto è uguale lo so ma non so come collegare l'inserimento del record all'invio di notifica email!
    E io non intendo collegarlo al semplice pulsante invia record....ma anche a quando si agisce nel database senza passare dal form per l'inserimento del record....inmodo tale che chiunque riuscisse a mod il database non dal form ma dal database stesso il lo vengo a sapere!


  • Moderatore

    @La Maglia Rosanero said:

    paolocavo.....scusa....
    la mi difficoltà sta nel collegare l'inserimento di un record con l'invio di notifica email!
    quello è invece un form per invio email.....il concetto è uguale lo so ma non so come collegare l'inserimento del record all'invio di notifica email!
    E io non intendo collegarlo al semplice pulsante invia record....ma anche a quando si agisce nel database senza passare dal form per l'inserimento del record....inmodo tale che chiunque riuscisse a mod il database non dal form ma dal database stesso il lo vengo a sapere!
    Per la notifica di inserimento da web-form puoi tranquillamente inserire il codice che ti ha segnalato madai in una SUB e poi richiamarla subito dopo l'AddNew (meglio dopo aver chiuso la connessione al DB) del nuovo record.

    Per le notifiche dirette dal Database (senza passare dal tuo form) dovresti scrivere una
    procedura memorizzata all'interno del database (tra i Moduli del DB). Non so se quest'ultima cosa è fattibile con MS Access in quanto so che non supporta i ***Trigger ***(=procedure che gesticono eventi nel DB: ON_INSERT, ON_DELETE, ON_UPDATE, ecc...) come invece avviene per MS SQL-Server, Oracle, ecc...

    PS: Personalmente non ritengo che il livello di criticità del tuo DB sia tale da richiedere simili contromisure, in ogni caso è utile porsi questi problemi. Facci sapere se trovi news sull'argomento.


  • User Attivo

    allora prndendo spunto dallo script che mi hai detto su...ho fatto questo:
    <%Dim objMail, objConfig
    Set objMail = Server.createObject("CDO.Message")
    Set objConfig = Server.createObject ("CDO.Configuration")

    With objConfig
        .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.aruba.it"
        .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
        .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
        .Fields.update
    End With
    
    Set objMail.Configuration = objConfig
    objMail.From = "Add Record" ' Mittente
    objMail.To = "[email protected]" ' Destinatario
    objMail.Subject = "Inserito nuovo record nel DB" ' Oggetto
    objMail.HTMLBody = "E' Stato Inserito un nuovo record nel database per il motore di ricerca" ' Messaggio
    objMail.Send()
    Set objMail = Nothing
    %>
    

    e questa è una pagina chiamata notifyrecord.asp
    ora ho anche modificato la pagina non del form ma quella dello script vero e proprio cheinserisce il record nel db e ho messo un include file per la pagina notifyrecord.asp alla fine dello script dopo il %> che chiude lo script stesso!

    Ora si potrebbe fare che la semplice esecuzione della pagina notifyrecord.asp manda la mail! che ne dici???
    come si può far si che lo script dica ciò??


  • User Attivo

    Come mittente imposta un indirizzo email valido anche se inesistente altrimenti l'email potrebbe non partire.

    Per il resto qual'è il problema? Mi sembra corretto quello che vuoi fare... l'include va bene. Prova.

    :ciauz:


  • User Attivo

    allora ho fatto così :
    <%Dim objMail, objConfig
    Set objMail = Server.createObject("CDO.Message")
    Set objConfig = Server.createObject ("CDO.Configuration")

    With objConfig
        .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.aruba.it"
        .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
        .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
        .Fields.update
    End With
    
    Set objMail.Configuration = objConfig
    objMail.From = "[email protected]" ' Mittente
    objMail.To = "[email protected]" ' Destinatario
    objMail.Subject = "Inserito nuovo record nel DB" ' Oggetto
    objMail.HTMLBody = "E' Stato Inserito un nuovo record nel database per il motore di ricerca" ' Messaggio
    objMail.Send()
    Set objMail = Nothing
    %>
    

    invece la pagina che aggiunge il record è questa :
    <%
    if Session("Autenticato")<>"OK" then
    Response.Redirect("index.asp")
    end if
    %>
    <!--#include file="connessione.asp"-->
    <%
    titolo=Request.Form("titolo")
    anno=Request.Form("anno")
    partita=Request.Form("partita")
    data=Request.Form("data")
    marcatori=Request.Form("marcatori")
    size=Request.Form("size")
    parole_chiave=Request.Form("parole_chiave")
    url=Request.Form("url")
    SQL = "INSERT INTO risultati (titolo,anno,partita,data,marcatori,size,parole_chiave,url)"
    SQL = SQL&"VALUES('"&titolo&"','"&anno&"','"&partita&"','"&data&"','"&marcatori&"','"&size&"','"&parole_chiave&"','"&url&"')"
    Conn.Execute(SQL)
    Response.Redirect "recordok.asp"
    %><!--#include file="notifyrecord.asp"-->

    praticamente aprendo la pagina notifyrecord.asp dovrebbe partire la mail in automatico e invece non parte nulla!
    per quanto riguarda il secondo script postato....beh per funzionare prima dobbiamo far funzionare la pagina notifyrecord.asp 🙂


  • User Attivo

    objMail.To = "[email protected]l" ' Destinatario

    Hai scritto male la tua email... controlla, **c'è una ****l in più
    **


  • User Attivo

    azz eheheheh bene grazie per avermelo fatto notare.....non ci sarei mi arrivato 🙂
    ora funziona!
    senti per mettere i campi che sono stati inseriti???
    come si fa?


  • User Attivo

    Stai facendo grandi progressi... non ci arrivi da solo? 🙂

    Pensaci su... hai riempito delle variabili (titolo, anno, etc.) che poi hai utilizzato per inserirne il contenuto nel DB. Quelle variabili però sono ancora piene delle info che ti servono, quindi le puoi utilizzare per costruire il body del messaggio... una cosa del genere:

    body = "Inserito nuovo record bla bla bla."
    body = body & "Titolo: " & titolo
    body = body & "Anno: " & anno
    ...
    body = body & "IP insertore: " & Request.ServerVariables("REMOTE_ADDR")
    
    objMail.HTMLBody = body
    

  • User Attivo

    grazie per i complimenti
    quindi:

    Set objMail.Configuration = objConfig
    objMail.From = "[email protected]" ' Mittente
    objMail.To = "[email protected]" ' Destinatario
    objMail.Subject = "Inserito nuovo record nel DB" ' Oggetto
    body = body & "Titolo: " & titolo
    body = body & "Anno: " & anno
    body = body & "Partita: " & partita
    body = body & "Data: " & data
    body = body & "Marcatori: " & marcatori
    body = body & "Size: " & size
    body = body & "Parole Chiave: " & parole_chiave
    body = body & "URL: " & url
    objMail.HTMLBody = body
    objMail.Send()
    Set objMail = Nothing
    %>

    giusto?
    dovrebbe andare così giusto???


  • User Attivo

    si... prova no?


  • User Attivo

    praticamente funziona però mi invia la mail con Titolo: Anno: tutti infila orizzontale e non verticale capito???
    dovrebbe essere così :
    Titolo:
    Anno:
    ....

    ho provato ad inserire un record nonostante lo inserisca e quindi esegue la pagina add.process.asp manda l'email.....ma solo con titolo: anno: senza nulla dopo cioè senza ciò che scrivo nei campi!!!
    non capisco


  • Moderatore

    @La Maglia Rosanero said:

    praticamente funziona però mi invia la mail con Titolo: Anno: tutti infila orizzontale e non verticale capito???

    Devi aggiungere il carattere di ritorno a capo ( vbCrLf ) all'interno della stringa che contiene il body:

    
    [...]
    body = body & "Titolo: " & titolo & vbCrLf
    body = body & "Anno: " & anno & vbCrLf
    body = body & "Partita: " & partita & vbCrLf
    [...]
    
    

    ecc... ecc...
    PS: Si dice: "...non so se sono stato chiaro" e non "...capito???"


  • User Attivo

    si scusa 🙂
    allora.....
    niente mi arriva la mail :
    Inserito Nuovo Record con queste Caratteristiche Titolo: Anno: Partita: Data: Marcatori: Size: Parole Chiave: URL:

    usando questo codice :

    Set objMail.Configuration = objConfig
    objMail.From = "[email protected]" ' Mittente
    objMail.To = "[email protected]" ' Destinatario
    objMail.Subject = "Inserito nuovo record nel DB" ' Oggetto
    body = body & "Inserito Nuovo Record con queste Caratteristiche" & vbCrLf
    body = body & "Titolo: " & titolo & vbCrLf
    body = body & "Anno: " & anno & vbCrLf
    body = body & "Partita: " & partita & vbCrLf
    body = body & "Data: " & data & vbCrLf
    body = body & "Marcatori: " & marcatori & vbCrLf
    body = body & "Size: " & size & vbCrLf
    body = body & "Parole Chiave: " & parole_chiave & vbCrLf
    body = body & "URL: " & url & vbCrLf
    objMail.HTMLBody = body
    objMail.Send()
    Set objMail = Nothing
    %>
    

    non mi inserisce neanche cio che ho scritto nei campi!