Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    residenza
    Torino
    Messaggi
    18

    Newsletter con indirizzi da database

    Ciao a tutti!
    Sto cercando di creare una sorta di newsletter, in realtà è più un avviso da mandare ad alcuni utenti, quindi con un testo standard.
    Mi piacerebbe però che nel corpo della mail venisse scritto il nome dell'utente tipo:
    "Ciao Nome Cognome, la presente ecc."

    In rete ho trovato questo script che fa quello che vorrei fare io:

    Codice PHP:

    $utenti 
    = array("Pippo" => "pippo@pippo.it",
    "Pluto" => "pluto@pluto.it"); 

    $oggetto "Newsletter"

    foreach (
    $utenti as $nome => $email){    

    $messaggio "Ciao $nome,\r\n testo della newsletter";     
    mail($email$oggetto$messaggio); } 

    Il punto adesso è capire come e se si può, sostituire l'array con una query al db mysql per poter estrarre tutti gli indirizzi email dei destinatari e di conseguenza i loro nomi.
    Una cose del genere (scrivo "male" giusto per farmi capire"):

    Codice PHP:

    //faccio la connessione al database

    //estraggo i dati dalla tabella che mi serve es.

    $result mysql_query("SELECT * FROM newsletter");

    //definisco i valori (non so se abbia senso)

    $indirizzi $result['email'];
    $nome_utente $result['nome'];

    //creo l'array dal db

    $utenti = array("$nome_utente=> "$indirizzi");

    // e da qui in poi faccio come prima 
    So che probabilmente ho scritto una marea di cavolate, ma era per cercare di spiegarmi con un esempio più o meno pratico.

    Sarebbe possibile fare una cosa del genere?

    Grazie mille a tutti in anticipo!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    In linea teorica va bene, ma visto che la query tirerà fuori più di un risultato, dovrai eseguire un ciclo su di esso, del tipo
    Codice PHP:
    $result mysql_query("SELECT * FROM neewsletter");

    $utenti = array();
    while ( 
    $row mysql_fetch_assoc$result ) )
    {
        
    $utenti[] = array( 'nome' => $row['nome'], 'email' => $row['email'] );


  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    residenza
    Torino
    Messaggi
    18
    Mamma mia che velocità!!!
    Grazie mille.
    Provo e vi faccio sapere se risolvo grazie al tuo suggerimento.
    Grazie ancora.
    Ciao!

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    residenza
    Torino
    Messaggi
    18
    Ciao Alhazred,
    grazie al tuo intervento ho risolto così:

    Codice PHP:

    $result 
    mysql_query("SELECT * FROM newsletter2");
    $utenti = array();while ( $row mysql_fetch_assoc$result ) ){    $utenti[] = array( 'name' => $row['name'], 'email' => $row['email'] );}
    $oggetto "Newsletter"; foreach ($utenti as $utente){        $nome $utente['name'];    $email $utente['email'];        $messaggio "Ciao $nome,\r\n testo della newsletter";     mail($email$oggetto$messaggio); } 
    Funziona correttamente.

    Ho solo un dubbio...
    Visto che la mail sarà inviata a circa un centinaio di indirizzi è il caso di spezzare l'invio in blocchi più piccoli in modo da evitare problemi?

    Grazie in anticipo!

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Dipende dal server su cui ti trovi, potrebbe avere limitazioni e non accettare l'invio di molte email in poco tempo.
    Certo 100 non sembrano tantissime, ma per andare sul sicuro puoi inviarle in 2 o 3 volte.
    Ultima modifica di Alhazred; 20-02-2015 a 14:55

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2005
    residenza
    Torino
    Messaggi
    18
    Grazie mille!

Tag per questa discussione

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.