Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Scaglionare invio mail ogni 15 min: idee e probl

    Ciao a tutti,
    ho la necessità di inviare le mail generate dal sito in blocchi al max da 50 ogni 15 min, piuttosto che di continuo.

    Per risolvere questa mia necessità ho attuato questo script.
    Dico subito però dove stanno i miei dubbi e problemi:
    - Idee sui controlli antispam?
    - Problemi nella gestione dei tempi: valida l'operazione di sottrazione tra campi di tempo tipo gg/mm/aaaa - hh:mm:ss?

    Il codice
    codice:
    Function inviaMail(pagina,mittente,destinatario,titolo,corpo)
     'Struttura Database:
     '|id|pagina|ip|tempo|mittente|destinatario|titolo|corpo|inviato|
     '|(+1)| txt|txt|gg/mm/aa-hh:mm|    txt	   | txt  |txt  | (0)	|
     'Controlli
     If controlli=ok Then '<-Ad Esempio?
      'Inserisci in database
      sql="INSERT INTO SITO_INVIAMAIL (pagina,ip,tempo,mittente,destinatario,titolo,corpo) VALUES " & _
      "('" & Replace(pagina,"'","''") & "', " & _
      "'"&Request.ServerVariables("REMOTE_ADDR")&"', " & _
      "'"& year(now)&"-"&month(now)&"-"&day(now)&" "&hour(now)&":"&minute(now)&":"&second(now)&"', "
      "'" & Replace(mittente,"'","''") & "', " & _
      "'" & Replace(destinatario,"'","''") & "', " & _
      "'" & Replace(titolo,"'","''") & "', " & _
      "'" & Replace(corpo,"'","''") & "');"
      Conn.Execute(sql)
    
      'Prendi le informazioni:
      sql="SELECT * FROM SITO_INVIAMAIL WHERE INVIATO=0 ORDER BY ID DESC"
      rs.open sql, conn
      If not rs.eof Then
        spedire=rs.GetRows()
      End If
      rs.close
      If Ubound(spedire)>0 Then
       If spedire(3,Ubound(spedire))-spedire(3,0)>15min Then '<- Coome indicare i 15 minuti? E' valida una operazione simile?
        If UBound(spedire)<50 Then
    	 i=Ubound(spedire)
    	Else
    	 i=50
    	End If
    	ii=0
    	Set objMail = CreateObject("CDONTS.Newmail")
    	Do While ii<i 
    	  'Spedisci mail
    		objMail.From = spedire(4,ii)
    		objMail.To = spedire(5,ii)
    		objMail.Subject = spedire(6,ii)
    		TestoBody = spedire (7,ii) & vbCrLf & vbCrLf& "Browser: "& Request.ServerVariables("HTTP_USER_AGENT") & " | IP: " & Request.ServerVariables("REMOTE_ADDR")
    		objMail.Body = TestoBody
    		objMail.Send
    		Set objMail = Nothing
    		'Setto come inviato il messaggio
    		sql="UPDATE SITO_INVIAMAIL SET inviato=1 WHERE id="	&ii
    		Conn.Execute(sql)
    	Loop
    	Set objMail = Nothing
       End If
      End If
      inviaMail="OK"
     Else
      inviaMail="Attenzione errori!"
     End If
    End Function
    Fatemi sapere cosa ne pensate, se avete dei suggerimenti.. etc.

    Grazie

  2. #2
    Utente di HTML.it L'avatar di legal-x
    Registrato dal
    Nov 2000
    Messaggi
    628
    io penserei in un'altro modo ...ovvero chiamando in causa JS ...

    in ASP fai una pagina che fa semplicemente un INVIO, nella stessa inserisci un JS all'onload del body, che con la funzione TIMER fa passare tot secondi, e refresha la pagina ...ovviamente la parte ASP deve prevedere un refresh ...e quindi fare sempre operazioni diverse ....(invio di una paginazione da 50 records)
    Webplease.it WebAgency
    www.webplease.it

  3. #3
    Originariamente inviato da legal-x
    io penserei in un'altro modo ...ovvero chiamando in causa JS ...

    in ASP fai una pagina che fa semplicemente un INVIO, nella stessa inserisci un JS all'onload del body, che con la funzione TIMER fa passare tot secondi, e refresha la pagina ...ovviamente la parte ASP deve prevedere un refresh ...e quindi fare sempre operazioni diverse ....(invio di una paginazione da 50 records)

    il problema è che dovrebbe tenere una pagina aperta per tutta la durata dell'invio, che potrebbe anche durare ore....

    meglio la funzione tipo quella che ha fatto che viene richiamata in tutte le pagine del sito così basta un visitatore in un lasso di tempo >= di 15 minuti rispetto all'ultimo invio che invia l'email....
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.