Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    69

    problema invio newsletter

    per favore mi occorre un aiuto per il seguente problema:

    ho una newsletter in ASP che adopera per l'invio persits.mailsender.
    quando il numero di iscritti supera il centinaio mi da errore 500 e naturalmente l'email non viene inviata.
    come posso risolvere il problema? esiste la possibilità di splittare tramite codice l'invio delle email (per es. 80 alla volta) in modo che non vada in errore?

    qualsiasi soluzione è ben accetta ...
    grazie


    il codice adoperato è il seguente:

    // LETTURA emails
    var conn = Server.CreateObject("ADODB.Connection");
    var str = "SELECT * FROM email";
    conn.Open(Application("connessione"));
    var r = conn.Execute(str);

    if (r.EOF)
    { // non trova email
    Response.write ("

    </p>

    </p><p align='center'>");
    Response.write ("<font face=tahoma size=2 color=9d8349>Impossibile inviare il messaggio: Mailing list vuota.</font>");
    Response.write ("</p>

    </p><p align='center'><font face=tahoma size=2 color=9d8349>Torna indietro</font></p>");
    }
    else
    {


    // invio email
    var Mail = Server.CreateObject("Persits.MailSender");
    Mail.Host = "smtp.locandadigirina.it";
    Mail.From = "info@locandadigirina.it";
    Mail.FromName = "Mailing List Locanda di Girina";
    Mail.AddAddress ("info@locandadigirina.it","Iscritti Mailing List");
    while (!r.EOF)
    {
    Mail.AddBcc (r("email"));
    r.MoveNext ();
    }
    Mail.Subject = oggetto;
    Mail.Body = msg;
    Mail.Send ();

  2. #2
    Utente di HTML.it L'avatar di ilgiovo
    Registrato dal
    Aug 2001
    Messaggi
    518
    potresti spezzare il ciclo ogni 80 destinatari, utilizzando una variabile contatore che incrementi ad ogni addBcc e controllandola come condizione nel while
    Cacca!

  3. #3
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926
    ho avuto anche io un problema simile e l'ho risolto in questo modo:

    ho creato un campo aggiuntivo nel database degli utenti, ad es. mail_inviata
    impostata su default a no

    seleziono i primi 80 utenti con il flag mail_inviata = no

    con un ciclo mando la mail e aggiorno lo stato mail_inviata = si

    terminato il ciclo, seleziono con la query i prossimi 80 utenti e cosi via

    alla fine dell'invio delle mail, imposto tutti gli utenti con il flag mail_inviata = no
    cosi da essere tutti pronti al prossimo invio.

    Puoi impostare il campo mail_inviata in formato data e scrivere la data attuale
    in modo da avere una traccia di quando hai mandato l'ultima mail,
    in questo caso la select sarà i primi 80 utenti la cui data di invio è diversa da quella odierna.

    In questo modo puoi anche suddividere l'invio in più tranche in tempi diversi,
    automatizzando la chiamata con un servizio tipo webcron (cronjob)
    luca
    www.intheweb.it - Internet solutions

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.