• User Attivo

    @La Maglia Rosanero said:

    arisalve.....
    riprendo questopost....sperando di risolvere....
    nonostante il settore aggiungi record del mi sito sia protetto da password...per evitare abusi da sconosciuti.....
    quello che io vorrei è che una volta aggiunto un record mi sia mandata una notifica al mio indirizzo email dell'avvenuto inserimento.....c'è un modo per farlo?
    che problemi hai nell'riutilizzare il codice cui siamo addivenuti in quest'altro thread: http://www.giorgiotave.it/forum/asp-asp-net/16850-invio-email-asp-mi-date-un-consiglio-3.html#post136850?

    Ovvero:

         
        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 xxx" ' Oggetto
        objMail.HTMLBody = "Qui puoi scrivere dettagli sulla DATA/ORA dell'inserimento, l'IP dell'utente che ha inserito etc. etc." ' Messaggio
        objMail.Send()
        Set objMail = Nothing
    

  • Moderatore

    Ciao,
    c'è questa discussione a proposito dell'invio di mail tramite asp.

    PS: ricordo che prima di richiedere un consiglio è vivamente consigliato fare una ricerca prima sul forum e poi eventualmente su Google per un dato problema.

    :ciauz:


  • 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!