Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di lupo92
    Registrato dal
    Feb 2004
    Messaggi
    254

    Invio mail multiple con mysql

    Salve a tutti,

    come da titolo ho la necessità di realizzare uno script che mi permetta di inviare mail a tutti gli indirizzi che ho in un DB mysql mettendo nel testo informazioni riferite a quell'indirizzo.

    La tabella è questa:

    Num
    Mail
    Importo
    Nome
    Cognome

    Il testo della mail dovrebbe essere + o - così:

    Egregio signor Cognome e Nome il suo debito ad oggi ammonta a Importo.

    Dove importo è diverso per ogni nominativo.

    Grazie
    lupo

  2. #2
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Codice PHP:

    <?php

    //Connessioni al database

    $strsql="Select max(IdTuaTabella) as Massimo from TuaTabella";
    if(
    $ris=mysql_query($strsql))
    if(
    $riga=mysql_fetch_array($ris)) $max=$riga["Massimo"];
    for(
    $i=1;$i<=$max;$i++){
    $strsql="Select Num,Mail,Importo,Nome,Cognome from TuaTabella where IdTuaTabella=$i";
    if(
    $ris=mysql_query($strsql)){
    if(
    $riga=mysql_fetch_array($ris)){
    $destinatario $riga["Mail"];
    $messaggio "Egregio signor ".$riga["Cognome"]." e ".$riga["Nome"]." il suo debito ad oggi ammonta a ".$riga["Importo"];
    $oggetto "Informativa"
    if(
    mail($destinatario$oggetto$messaggio)) echo "email inviata correttamente";
    else echo 
    "errore invio mail";
    }
    }
    }
    ?>
    Ho ciclato il database pensado che il tuo indice sia di tipo increment e che parta da 1, se così non fosse sta a te cambiare il ciclo secondo l tue esigenze

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    ciao
    innanzitutto credo bisogna selezionare le informazioni dal database

    Codice PHP:
    $query=mysql_query("SELECT * FROM nometabella");
    while(
    $dati=mysql_fetch_array($query){
    $nome$dati['Nome'];
    $cognome$dati['Cognome'];
    $importo =$dati['importo'];
    $mail$dati ['mail'];

    //costruisci email
    $messaggio"Egregio signor"$cognome." e ".$nome ." il suo debito ad oggi ammonta a ".$importo;
    $subject"oggetto mail";
    $header"From: nomesito<tuamail>\r\n";
    mail($mail$subject$messaggio$header);


  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    ma tu devi selezionare tra quelli che hai o proprio a tutti devi mandare

  5. #5
    Utente di HTML.it L'avatar di lupo92
    Registrato dal
    Feb 2004
    Messaggi
    254
    @jcsnake
    Notice: Undefined variable: max in /var/www/html/prova_invio/invia.php on line 8

    questa è la linea 8

    Codice PHP:
    for($i=1;$i<=$max;$i++){ 
    @amphioxus

    devo inviare a tutti quelli presenti nella tabella
    lupo

  6. #6
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Originariamente inviato da amphioxus
    Codice PHP:
    $query=mysql_query("SELECT * FROM nometabella");
    while(
    $dati=mysql_fetch_array($query){
    $nome$dati['Nome'];
    $cognome$dati['Cognome'];
    $importo =$dati['importo'];
    $mail$dati ['mail'];

    //costruisci email
    $messaggio"Egregio signor"$cognome." e ".$nome ." il suo debito ad oggi ammonta a ".$importo;
    $subject"oggetto mail";
    $header"From: nomesito<tuamail>\r\n";
    mail($mail$subject$messaggio$header);

    Segui questo script, è molto meno complicato e più leggibile =)

  7. #7
    Utente di HTML.it L'avatar di lupo92
    Registrato dal
    Feb 2004
    Messaggi
    254
    provato ma non va
    lupo

  8. #8
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    in che senso non va?posta gli errori e prova a modificarlo con un controllo sull'invio...

    Codice PHP:
    $query=mysql_query("SELECT * FROM nometabella");
    while(
    $dati=mysql_fetch_array($query){
    $nome$dati['Nome'];
    $cognome$dati['Cognome'];
    $importo =$dati['importo'];
    $mail$dati ['mail'];

    //costruisci email
    $messaggio"Egregio signor"$cognome." e ".$nome ." il suo debito ad oggi ammonta a ".$importo;
    $subject"oggetto mail";
    $header"From: nomesito<tuamail>\r\n";
    if(
    mail($mail$subject$messaggio$header)) echo "mail inviata con successo";
    else echo 
    "errore invio mail";


  9. #9
    Utente di HTML.it L'avatar di lupo92
    Registrato dal
    Feb 2004
    Messaggi
    254
    il problema è che non mi da errori, anzi dopo la tua modifica mi dice pure
    "mail inviata con successomail inviata con successo"

    ma pur avendo messo solo due indirizzi nella tabella a nessuno dei due viene recapitato nulla
    lupo

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    il problema secondo me è nell'header...posta quello

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.