Salve,
ho un portale dove gli utenti iscritti posso utilizzare una agenda personale dove annotare promemoria, scadenze bollette...

Fino ad ora si veniva avvertiti delle proprie scadende raggiungendo il sito eseguendo il loghi si riceveva un avviso visivo al''interno della propria sessione utente.

Select * FROM agenda WHERE scadenza = ora attuale AND autore = a utente loggato.

Il funzionamento è semplice.

Da qualche giorno ho creato un'altra Sub , Sub EmailPromemoriaAgenda()
essa controlla tutti i campi agenda nell'ora attuale e se il campo aEmail è =0
invia una email per avvertire del promemoria portanto subito dopo, il campo aEmail a 1.


rSQL = "SELECT uEMail FROM users WHERE uLogin='" & SQLEncrypt(autore) & "'"
Set oRs = DBRecordSet(oCn, rSQL)

If Not oRs.EOF Then email = oRs("uEMail")


avviso=" testo email "

' QUESTA FUNZIONE FA ATTENDERE TUTTI!
SendMail sEmail, email ,titolo, avviso , True

rSQL = "UPDATE agenda SET aEmail=1 WHERE aID=" & aIND
DBExecute oCn, rSQL
oRs.MoveNext



La cosa spiacevole che ho notato è che durante il tempo che serve per processare l'invio Email, rallenta la navigazione del sito (un secondo circa) , ora, se in un giorno ci fossero da mandare una decina di email sarebbe spiacevole che tutti si penalizzano nell'attendere l'invio.
Ovviamente la procedura di controllo agenda deve ricadere su pagine condivise da tutti per permettere allo script di agire sempre.

Domanda: E' possibile "isolare" la breve parte di invio email in modo che non ricada sull'intero sito? ( ho pensato ad esempio con le sessions ).

Preciso che non ne sono certo che tutti avvertano il tempo di invio, può darsi che solo l'utente che in quel momento è incappato mentre lo script sta inviando email, debba aspettare circa un secondo che finisca.