Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764

    Controllo email inviata per mandarla una volta sola

    Ho uno spazio su un server condiviso Windows, dove ho creato un processo schedulato che ogni giorno mi lancia un certo file ASP.
    Il file ASP in questione manda delle email (tutto allo stesso indirizzo), al verificarsi di alcune condizioni.

    Una di queste condizioni è che la differenza fra due numeri sia inferiore ad un certo numero.

    numero1 è fisso.
    numero2, all'inizio, è inferiore rispetto a numero1.
    numero2 aumenta ogni giorno, ma non in maniera costante. Cioè, oggi numero2 potrebbe essere 1000, domani 1700, dopodomani 3000, ecc.

    Il giorno in cui numero2 sarà maggiore o uguale a numero1, dovrà partire l'email.
    Il giorno successivo, numero2 sarà sempre maggiore rispetto a numero1, ma non dovrà partire l'email, visto che è già partita.

    Pensavo che, nel momento in cui numero2 sarà minore o uguale a numero1, scriverò "qualcosa nel db" ed il giorno successivo userò quell'informazione per non inviare l'email.

    Il processo sarebbe:
    1. Controlla se numero2 >= numero1
    2. Se lo è e se cè scritto "qualcosa nel db", non mando l'email, se non c'è, la mando e poi scrivo "qualcosa nel db".

    Il dubbio è: come faccio ad avere la certezza che l'email (inviata con CDO) sia partita davvero?

    Qualche idea? C'è qualche modo di gestire gli errori?
    Ho letto qualcosa che fa riferimento a Err.Number, ma non mi è chiaro.
    Ultima modifica di Roby140569; 30-04-2019 a 19:39

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,657
    per il processo farei così:
    la prima volta che mandi una mail te la segni nel db, quindi ad ogni processo verifichi se è già stata mandata o meno. ovvio che è meglio segnarlo al termine del processo d'invio.

    per quanto riguarda gli errori dipende...
    se il server è bloccato per l'invio: la mail non parte ma non restituisce il numero di errore.

    puoi comunque tentare di recuperarlo e poi utilizzarlo a tuo piacimento:
    https://www.mrwebmaster.it/asp/gesti...ript_6753.html
    https://www.html.it/pag/15726/la-ges...-visual-basic/

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Grazie per la risposta.
    Quindi, come pensavo di fare sembra essere la soluzione migliore (scrivere "qualcosa nel db").


    codice:
    If int(km_prossimo_tagliando_avviso) <= int(km_per_controllo) Then 
        If inviata = 0 Then
            mail.From = "email@email.it"
            mail.To = destinatario
            mail.Subject = "Scadenza tagliando - Veicolo:  " + targa
            mail.HTMLBody = "Il tagliando del veicolo targato <b>" + targa + "</b> &egrave; in scadenza.</p>"
            mail.Send
            sqlInviata = "UPDATE manutenzioni SET inviata=1 WHERE id_manutenzione=" & id_manutenzione
            Conn.Execute sqlInviata
        End If                
    End If
    Devo capire come gestire l'eventuale errore. Grazie per i link.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.