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

    Invio multiplo email da db

    buongiorno.
    dovrei fare un invio multiplo di email prendendo tutti gli indirizzi da un db.
    premetto che non posso usare PHPMailer sennò avrei già risolto.
    quindi devo usare la funzione mail() di PHP.
    ho provato così:
    Codice PHP:
    function sendUtenti() {
        global 
    $config;
        try {
            
    $result $config->getPdo()->query("SELECT * FROM newsletter");
            return 
    $result;
        } catch (
    PDOException $e) {
            echo 
    '<script type="text/javascript">alert("' $e->getMessage() . '");</script>';
            die();
        }
    }

    function 
    sendEmail($subject$message) {
        
    $header "From: Azienda <info@azienda.it>";
        
    $to = array();
        foreach (
    sendUtenti() as $send) {
            
    $to $send['nl_email'] . ', ';
        }
        
    mail($to$subject$message$headers);

    sendUtenti() mi interroga il db.
    quando faccio il submit del form nn ho errori ma le email nn arrivano.

  2. #2
    Per come hai impostato il ciclo foreach() la variabile $to conterrà solo l'ultima mail presente nel resultset ed inoltre ci sarà una virgola alla sua destra anche se non ci sono ulteriori mail.
    Inoltre dovresti mettere qualche info in più nell'header per evitare che i server di posta considerino la tua mail come spam come ad esempio:

    Codice PHP:
    $headers "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/plain; charset=iso-8859-1\n";
    $headers .= "X-Priority: 3\n";
    $headers .= "X-MSMail-Priority: Normal\n";
    $headers .= "X-Mailer: php\n";
    $headers .= "From: Azienda <info@azienda.it>\n"
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    hai provato a stampare il valore delle variabili per vedere dove si intoppa?

    ad esempio prima di lanciare mail(); prova a stampare le quattro variabili interessate.. così vedi se hanno i dati giusti.

  4. #4
    allora ho cambiato la funzione di invio:
    Codice PHP:
    function sendEmail($subject$titolo$message) {
        
    $headers "MIME-Version: 1.0\n";
        
    $headers .= "Content-type: text/plain; charset=iso-8859-1\n";
        
    $headers .= "X-Priority: 3\n";
        
    $headers .= "X-MSMail-Priority: Normal\n";
        
    $headers .= "X-Mailer: php\n";
        
    $headers .= "From: azienda <info@azienda.it>\n";
        
    $testo $titolo '
    $message;
        
    $to = array();
        foreach (
    sendUtenti() as $send) {
            
    $to .= $send['nl_email'] . ', ';
        }
        echo 
    '<script type="text/javascript">alert("' $headers '");</script>';
    //    mail($to, $subject, $testo, $headers);

    $subject e $testo sono ok.
    $to mi esce così:
    Arrayemail1@gmail.com, email2@hotmail.it,

    preciso così compresi spazi e virgole.
    $headers invece nn esce.

  5. #5
    Cos'è questa roba?

    Codice PHP:
    echo '<script type="text/javascript">alert("' $headers '");</script>'
    così non ti piace?

    Codice PHP:
    echo $headers
    e questo?

    Codice PHP:
        $to = array();
        foreach (
    sendUtenti() as $send) {
            
    $to .= $send['nl_email'] . ', ';
        } 
    $to è un array non una stringa!!! Non puoi utilizzare l'operatore di concatenazione delle stringhe (.)
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Codice PHP:
    function sendEmail($subject$message) { 
        
    $header "From: Azienda <info@azienda.it>"
        
    $to = array(); 
        foreach (
    sendUtenti() as $send) { 
            
    $to[] = $send['nl_email']; 
        } 
        @
    mail(implode(",",$to), $subject$message$headers); 

    o

    Codice PHP:
    function sendEmail($subject$message) { 
        
    $header "From: Azienda <info@azienda.it>"
        foreach (
    sendUtenti() as $send) { 
            @
    mail($send['nl_email'], $subject$message$headers); 
        } 

    essendo una funzione devi richiamarla
    sendEmail("oggetto che voglio", "messaggio che voglio")

    naturalmente inserendo gli header consigliati da satifal
    I Love Paris...

  7. #7
    Originariamente inviato da satifal
    Cos'è questa roba?

    Codice PHP:
    echo '<script type="text/javascript">alert("' $headers '");</script>'
    così non ti piace?

    Codice PHP:
    echo $headers
    solo per comodità perchè per come è strutturata la pagina l'echo nn si vedrebbe.
    cmq nn mi pare un grosso problema.....
    Originariamente inviato da satifal
    e questo?

    Codice PHP:
        $to = array();
        foreach (
    sendUtenti() as $send) {
            
    $to .= $send['nl_email'] . ', ';
        } 
    $to è un array non una stringa!!! Non puoi utilizzare l'operatore di concatenazione delle stringhe (.)
    hai ragione, nn avevo pensato al fatto che fosse un array.
    il fatto è che nn so come risolvere il problema.
    come faccio a riempire l'array con tutti i valori?

  8. #8
    grazie mgs così come hai detto mi funziona.
    ho adottato la prima soluzione.
    era più semplice del previsto.

    mi rimane da risolvere il problema che arriva in spam adesso.

  9. #9
    Originariamente inviato da fermat
    solo per comodità perchè per come è strutturata la pagina l'echo nn si vedrebbe.
    cmq nn mi pare un grosso problema.....
    Se non riesci a visualizzarci una stringa appena definita evidentemente è un problema.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    no no ti assicuro che nn è un problema.
    solo che nn saprei come spiegarti il tutto e più che altro nn c'entra nulla con la discussione....

    cmq pare che funzioni.
    a parte che in hotmail arriva come spam.
    grazie!

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.