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

    Invio mail lato server (newsletter) con php e mysql

    Cari amici, ho un grosso problema....
    Ho creato un db con soli tre campi: id, nome, email...
    Ho la necessità di inviare una mail a tutti i record presenti nel db.
    Premetto che tutti gli utenti si sono registrati di loro spontenea volonta, essendo visitatori affezionati del sito...
    Il problema sta nel fatto che essendo arrivati ad alcune centinaia, non so come gestire l'invio multiplo lato server....

    <?
    $query = "SELECT DISTINCT email FROM email ORDER BY id DESC";
    $result = mysql_query($query, $db);
    while ($row = mysql_fetch_array($result))
    { echo "
    ".$row['email'];
    }
    mysql_close($db);
    ?>

    questo lo script per farmi visualizzare tutte le mail attive a cui spedire...

    Come fare?

    Mi sono già costruito un form per il contenuto della notizia, titolo, img...ecc ecc...
    Adesso ho bisogno di voi.....come spediato 'ste mail?


    grazie grazie grazie

  2. #2
    se vuoi ti posto qua un esempio di come avevo fatto è semplice

    Codice PHP:

    <?
    $data
    =date("d-m-Y");
    $firma="Lo Staff di .........";
    $titemail $_POST['titolo']; 
    $txtmail $_POST['testo']; 
    $archivioemail $_POST['archivio'];
    if (
    $archivioemail==1){
    $archivio1="iscritti";
    }else
    $archivio1="spam";
    echo 
    $data;
    echo
    "
    "
    ;
    echo 
    $firma;
    echo
    "
    "
    ;
    echo 
    $titemail;
    echo
    "
    "
    ;
    echo 
    $txtmail;
    echo
    "
    "
    ;
    echo 
    $archivio1;
    echo
    "
    "
    ;
    $sqlpg ="SELECT email FROM $archivio1";
    $risultatipg mysql_query($sqlpg) or die("Error #"mysql_errno() . ": " mysql_error());
    while (
    $row mysql_fetch_array($risultatipg)) 
    {
    $email=$row['email'];
    echo
    "<table width='100%'  border='0'>
      <tr>
        <td><div align='center'>
    $email</div></td>
      </tr>
    </table>
    "
    ;

    //}
    //Spedizione Mail 
    $myname "Customizzando";  
    $myemail "Staff@miosito.com";  
    $sito"http://www.miosito.com";
    //$contactname = "Fratello biker"; 
    $contactemail $email;  
    //Questi sono i dati per l'accesso:

    //username: $_POST[ob_username]

    //Password: $password

    //Buona navigazione";  
    $message "
    Newsletter di .........

    $data

    $txtmail

    $firma
    "
    ;  
    $subject "News Letter di .....";  
    $headers .= "From: ".$myname." <".$myemail.">\r\n";  
    if(
    mail($contactemail$subject$message$headers))
    {
             echo 
    "Email inviata con successo.
    "
    ;
    }
    else
    {
            echo 
    "errore invio email.
    "
    ;
    }
    }
    //fine while

    ?>
    ovviamente dovrai adattare qualke cosuccia per leggere da tuo db ed in piu crearti una pagina esterna che invii a questa il messaggio ed il titolo

    ciao ciao spero tu possa riuscirci

  3. #3
    Ciao,
    ho creato la paginetta che invia il titolo e il testo della news...

    eccolo:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Inserisci testo e titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>


    </p>
    <form name="form1" method="post" action="invia_emails.php">
    <table width="800" border="1">
    <tr>
    <td><input name="titolo" type="text" id="titolo" size="64">


    Titolo della newsletter </td>
    </tr>
    <tr>
    <td><textarea name="testo" cols="60" rows="10" id="testo"></textarea>


    Testo della newsletter </td>
    </tr>
    <tr>
    <td><div align="center">
    <input type="submit" name="Submit" value="Invia Newsletter a tutti !!!">
    </div></td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    Fino a qui tutto ok...

    Ho aggiornato il db secondo il nome dei campi...
    e ho corretto così.....:

    <?
    $db_host = "localhost";
    $db_user = "root";
    $db_password = "";
    $db_name = "poisontime";
    $db = mysql_connect($db_host, $db_user, $db_password);

    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri e assicurarsi che la rete funzioni correttamente");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri");

    $headers="";
    $data=date("d-m-Y");
    $firma="Lo Staff di Davideps2";
    $titemail = $_POST['titolo'];
    $txtmail = $_POST['testo'];
    # $archivioemail = $_POST['archivio'];
    #if ($archivioemail==1){
    #$archivio1="iscritti";
    #}else
    #$archivio1="spam";
    echo $data;
    echo"
    ";
    echo $firma;
    echo"
    ";
    echo $titemail;
    echo"
    ";
    echo $txtmail;
    echo"
    ";

    $sqlpg ="SELECT DISTINCT email FROM email ORDER BY id DESC";
    $risultatipg = mysql_query($sqlpg) or die("Error #". mysql_errno() . ": " . mysql_error());
    while ($row = mysql_fetch_array($risultatipg))
    {
    $email=$row['email'];
    echo"<table width='100%' border='0'>
    <tr>
    <td><div align='center'>$email</div></td>
    </tr>
    </table>
    ";

    //}
    //Spedizione Mail
    $myname = "Frigeri Fabio";
    $myemail = "cassacontinua@alice.it";
    $sito= "http://www.davideps2.it";
    # $contactname = "Frigeri Fabio";

    //Questi sono i dati per l'accesso:

    //username: $_POST[ob_username]

    //Password: $password

    //Buona navigazione";
    $message = "
    Newsletter di DavidePs2

    $data

    $txtmail

    $firma
    ";
    $subject = "News Letter di .....";
    $headers .= "From: ".$myname." <".$myemail.">\r\n";
    if(mail($contactemail, $subject, $message, $headers))
    {
    echo "Email inviata con successo.
    ";
    }
    else
    {
    echo "errore invio email.
    ";
    }
    }//fine while

    ?>




    Sembrerebbe poter funzionare....ma:

    dj_effe@libero.it

    Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in c:\programmi\easyphp1-8\www\davideps2\admin\invia_emails.php on line 66
    errore invio email.
    ebay@davideps2.it

    Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in c:\programmi\easyphp1-8\www\davideps2\admin\invia_emails.php on line 66
    errore invio email.



    COSA SIGNIFICA?
    (SCUSATE LA MIA IGNORANZA, MASTICO PHP DA 2/3 MESI !!! )

    GRAZIE A TUTTI !!!!!

  4. #4
    Originariamente inviato da AdventChild
    Ciao,
    ho creato la paginetta che invia il titolo e il testo della news...

    eccolo:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Inserisci testo e titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>


    </p>
    <form name="form1" method="post" action="invia_emails.php">
    <table width="800" border="1">
    <tr>
    <td><input name="titolo" type="text" id="titolo" size="64">


    Titolo della newsletter </td>
    </tr>
    <tr>
    <td><textarea name="testo" cols="60" rows="10" id="testo"></textarea>


    Testo della newsletter </td>
    </tr>
    <tr>
    <td><div align="center">
    <input type="submit" name="Submit" value="Invia Newsletter a tutti !!!">
    </div></td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    Fino a qui tutto ok...

    Ho aggiornato il db secondo il nome dei campi...
    e ho corretto così.....:

    <?
    $db_host = "localhost";
    $db_user = "root";
    $db_password = "";
    $db_name = "poisontime";
    $db = mysql_connect($db_host, $db_user, $db_password);

    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri e assicurarsi che la rete funzioni correttamente");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri");

    $headers="";
    $data=date("d-m-Y");
    $firma="Lo Staff di Davideps2";
    $titemail = $_POST['titolo'];
    $txtmail = $_POST['testo'];
    # $archivioemail = $_POST['archivio'];
    #if ($archivioemail==1){
    #$archivio1="iscritti";
    #}else
    #$archivio1="spam";
    echo $data;
    echo"
    ";
    echo $firma;
    echo"
    ";
    echo $titemail;
    echo"
    ";
    echo $txtmail;
    echo"
    ";

    $sqlpg ="SELECT DISTINCT email FROM email ORDER BY id DESC";
    $risultatipg = mysql_query($sqlpg) or die("Error #". mysql_errno() . ": " . mysql_error());
    while ($row = mysql_fetch_array($risultatipg))
    {
    $email=$row['email'];
    echo"<table width='100%' border='0'>
    <tr>
    <td><div align='center'>$email</div></td>
    </tr>
    </table>
    ";

    //}
    //Spedizione Mail
    $myname = "Frigeri Fabio";
    $myemail = "cassacontinua@alice.it";
    $sito= "http://www.davideps2.it";
    # $contactname = "Frigeri Fabio";

    //Questi sono i dati per l'accesso:

    //username: $_POST[ob_username]

    //Password: $password

    //Buona navigazione";
    $message = "
    Newsletter di DavidePs2

    $data

    $txtmail

    $firma
    ";
    $subject = "News Letter di .....";
    $headers .= "From: ".$myname." <".$myemail.">\r\n";
    if(mail($contactemail, $subject, $message, $headers))
    {
    echo "Email inviata con successo.
    ";
    }
    else
    {
    echo "errore invio email.
    ";
    }
    }//fine while

    ?>




    Sembrerebbe poter funzionare....ma:

    dj_effe@libero.it

    Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in c:\programmi\easyphp1-8\www\davideps2\admin\invia_emails.php on line 66
    errore invio email.
    ebay@davideps2.it

    Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in c:\programmi\easyphp1-8\www\davideps2\admin\invia_emails.php on line 66
    errore invio email.



    COSA SIGNIFICA?
    (SCUSATE LA MIA IGNORANZA, MASTICO PHP DA 2/3 MESI !!! )

    GRAZIE A TUTTI !!!!!
    scusa la domanda ma hai un server smtp sul tuo pc per poter spedire le email??
    in tal caso ti consiglio http://www.softstack.com/freesmtp.html
    nn fosse per questo prova a cancellare il \r
    e se nn fosse neanke per questo cerca questa riga sendmail_from nel file php.ini e li aggiungi la tua mail ma questa proprio come ultima soluzione

  5. #5

    Grazie amico...!!!

    Ciao,
    lo script l'ho risolto proprio togliendo il "\n" "\r"...ecc ecc
    Inoltre volevo ringraziarti xchè il programmino (mass mailer) che mi hai consogliato per spedire le mail, funziona alla grande e mi hai risolto non pochi problemini sul lavoro solo con una bella dritta!!!
    E' bastato esportare un csv dal db mysql e importarlo in mass mailer...et voilà il gioco è stato fatto!!!

    Grazie ancora... ( ;

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.