Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: spedire email un'idea

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    281

    spedire email un'idea

    Devo spedire circa un migliaio di email.
    Le mail non sono personalizzate quindi tutti ricevono la stessa mail.

    Pensavo di adottare questa soluzione. Mi date il vostro parere?

    Una tabelle di un db Access contiene gli indirizzi email

    Costruisco una pagina ASP che:
    1) legge il primo record della tabella
    1a) se la tabella e' vuota ho finito
    2) invia la mail a quell'utente
    3) cancella il record corrente
    4) ricarico la pagina torno al punto 1)

    Questa soluzione dovrebbe evitare il timeout dello script.

    Cosa ne pensate.
    C'e' un problemino: prima di partire lo script devo duplicare la tabella che mano a mano svuoto. Come faccio a duplicarla ?

  2. #2
    Non è necessario che la svuoti...

    1) prendo l'id, se non c'è lo metto uguale a 1
    2) legge dalla tabella l'indirizzo corrispondente all'ID prelevato
    3) se sono in fondo ho finito
    4) invio email
    5) ritorno alla pagina incrementando l'id di 1

    Comunque... non so se andrà per risolvere i problemi di timeout per l'invio di email ho provveduto in altro modo...

    Marco
    Marco Tibaldeschi
    www.dontbenegative.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    281
    come hai risolto tu ?

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    281
    Per ora uso questa soluzione che per 200 mail funziona.


    <%
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn & " DBQ=" & Server.MapPath("newsletter.mdb")
    Conn.Open strConn
    %>

    <%
    Set rs = Server.CreateObject("ADODB.Recordset")
    str_query = "SELECT * from qyutenti"
    %>


    <%


    Session("messaggio") = "MESSAGGIO"


    rs.Open str_query, conn, 1, 3

    ' paginazione
    mypage = Request("pg")
    if mypage="" then mypage = 1

    strPageSize = 10
    rs.cachesize = strPageSize
    rs.pagesize = strPageSize
    rs.absolutepage = mypage
    maxpages = CInt(rs.pagecount)


    i = 0

    do while not rs.EOF
    danome = "quinta Prova newsletter paginazione dim pagina 10 per 200 email"
    damail = "<webmaster@clacsrl.it>"
    dachi = chr(34) & danome & chr(34) & damail
    oggetto= "nessun oggetto"

    Set objMail = Server.CreateObject("CDONTS.NewMail")
    objMail.From = dachi
    objMail.Body = Session("messaggio")
    objMail.To = chr(34) & rs("nome") & chr(34) &"<"& rs("email")&">"
    objMail.Subject = oggetto
    objMail.Send
    response.write "spedita: " & rs("nome") & "
    "
    set objMail = nothing

    i = i + 1
    if i = strPageSize then Exit Do

    rs.MoveNext
    loop

    rs.close
    Set rs = Nothing


    if Cint(mypage)<Cint(maxpages) then
    %>
    <meta http-equiv="refresh" content="5;URL='<% response.write "invia.asp?pg=" & CINT(mypage)+1 %>'">
    <%end if
    Response.write ("<hr>Caricate " & maxpages & " pagine")
    %>

  5. #5
    Io ho risolto facendo venire fuori una pagina con gli indirizzi email e cliccandliuno per uno inviava la mail....

    Negli altri modi mi si piantava...

    Marco
    Marco Tibaldeschi
    www.dontbenegative.it

  6. #6
    Potresti fare uno script che invia 20 email (o quante ne vuoi per essere sicuro di non andare in timeout) partendo dal record passato via querystring.

    1) lo script riceve il valore RecordDiPartenza da cui partire.
    2) apri la tabella e fai MoveNext per RecordDiPartenza-volte in modo da saltare i destinatari inviati precedentemente.
    3) mandi le 20 email.
    4) richiami lo stesso script passandogli RecordDiPartenza+20

    Ovviamente devi sempre controllare l'EOF, in qual caso fai un redirect ad una pagina di FineInvioEmail.

  7. #7
    Si anche così, ma delle volte si pianta...

    Almeno a me così è successo... Puoi sempre fare aspettare un po' tra un ciclo ed un altro...

    Marco
    Marco Tibaldeschi
    www.dontbenegative.it

  8. #8
    Oppure usare il mio esempio per mandare ad ogni esecuzione di script una sola mail con 20 indirizzi nel campo CCN.

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    281
    Nel mio script secondo voi, quale rapporto usare per dimensione pagina (=mail spedite per volta) e tempo di attesa per ogni spedizione(=refresh della pagina) ?

  10. #10
    Direi che 100, 4 o 5 secondi potrebbe essere un buon punto di partenza...
    Marco Tibaldeschi
    www.dontbenegative.it

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.