Visualizzazione risultati 1 fino 7 di 7

Discussione: [php]mandare news letter

  1. #1
    Guest

    Predefinito [php]mandare news letter

    ho creato un semplice codice per mandare news letter.
    nn mi da nessun errore, solo che le e-mail nn arrivano...
    qualcuno sa perchè??

    ecco il codice:
    Codice PHP:
    <?php
    include("config.inc.php"); \\è il file nel quale sono contenuti il nome database, la password ($pasw) per poterle mandare...

    $oggetto=$_POST['oggetto'];
    $testo=$_POST['testo'];
    $password=$_POST['password'];

    if (
    $password != $pasw):
    echo
    "fanculo stronzo!!!";
    elseif (
    trim($testo) == "" or trim($oggetto) == ""):
    echo
    "i campi testo e oggetto debbono essere riempiti!";
    else:

    $db = mysql_connect($db_host, $db_user, $db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    $query = "SELECT email,emailv FROM utenti";
    $result = mysql_query($query, $db);
    while (
    $row = mysql_fetch_array($result))
    {
    echo
    "$row[email]<br>";
    mail("$row[email]", "$oggetto", "$testo", "From: TheeDuSt <theedust@virgilio.it>");
    mail("$row[emailv]", "$oggetto", "$testo", "From: TheeDuSt <theedust@virgilio.it>");};

    echo
    "La mail dovrebbe essere stata mandata";

    mysql_close($db);
    endif;

    ?>

  2. #2
    Guest

    Predefinito

    Credo che le email non arrivino perché Altervista (e di questo sono certo) non lascia spedire più di 3 email ogni 2 secondi con la funzione mail(). Il problema era già stato sollevato e sono state trovate alcune soluzioni. Bisognerebbe fare una ricerca. Se trovo qualcosa, te lo dico.

  3. #3
    Guest

    Predefinito

    mah, è strano anche perchè adesso sto facendo le prove con un solo utente (che sarei io) e nel codice invia le mail hai due indirizzi (email, emailv) quindi le mail sarabbero cmq solo 2...
    poi l'ho provato che ne manda solo una togliendo l'invio a emailv ma nn arriva...

  4. #4
    Guest

    Predefinito

    Credo di aver trovato. Prova a modificare così il ciclo while:

    Codice PHP:
    while ($row = mysql_fetch_array($result)){
    echo
    "$row[email]<br>";
    mail("$row[email]", "$oggetto", "$testo", "From: TheeDuSt <theedust@virgilio.it>");
    sleep(1);
    mail("$row[emailv]", "$oggetto", "$testo", "From: TheeDuSt <theedust@virgilio.it>");
    sleep(1);
    };
    Ho aggiunto la funzione sleep() che "addormenta" lo script per il numero di secondi imposti dall'argomento. In questo modo, non rischi di mandare più di un'email al secondo. Però il caricamento della pagina è rallentato. Se hai un centinaio di iscritti la pagina si carca in circa 2 minuti. Se anche così le email non arrivano prova a scrivere sleep(2) al posto di sleep(1). Se ancora non funziona, non saprei.

    Stammi bene.
    Ultima modifica di grecistiuniti : 01-04-2006 alle ore 15.49.57

  5. #5
    Guest

    Predefinito

    Vi faccio notare che, per fare in modo che funzioni per benino, dovreste usare la funzione usleep(750000) al posto di sleep(1), in modo che lo script sia lento al punto giusto (non rallenta più 3 secondi ogni 3 mail, ma solo 2,25 secondi, che sarà insignificante, ma con parecchi iscritti si vede!!!). Spero di essere stato utile... :)
    Ultima modifica di tryphpnuke : 02-04-2006 alle ore 09.50.48

  6. #6
    Guest

    Predefinito

    infatti usleep va meglio, ma bisogna settarlo cosi:

    Codice PHP:
    usleep(750000);
    che equivale a 0,75 secondi, mentre

    Codice PHP:
    usleep(75);
    equivale a 0,075 secondi.

  7. #7
    Guest

    Predefinito

    scusa... mi ero dimenticato che erano microsecondi...
    Modificato il post di prima...
    Ultima modifica di tryphpnuke : 02-04-2006 alle ore 09.51.12

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •