Invio email multiple da form

Discussione in 'PHP' iniziata da coccobil, 28 Ottobre 2005.

  1. coccobil

    coccobil Utente Attivo

    Registrato:
    28 Ottobre 2005
    Messaggi:
    33
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Ciao a tutti.
    Sono un novizio del php e mi chiedevo se potreste aiutarmi in un problema che non riesco a risolvere:
    1)Devo prelevare degl'indirizzi mail da un db Mysql.
    2)Selezionarne alcuni (o tutti).
    3)Inviare le mail ( eventualmente con allegati ) ai vari destinatari in modo che ognuno non visualizzi l'indirizzo dell'altro.

    Le fasi 1 e 2 sono risolte.

    Per la fase 3 ho creato un file email.php che raccoglie i dati già estratti e selezionati da un precedente file (che funziona correttamente)

    PHP:
    <?
    include(
    "connect.php");
    $result mysql_query("select * from dati_utenti");
    $row mysql_fetch_array($result);
    echo 
    "<body bgcolor=\"#FFFFCC\">";
    echo 
    "<form action=\"invia_mail.php\" enctype=\"multipart/form-data\" method=\"POST\">"
     
    $email $_POST['emailcheckbox'];
    for(
    $i=0;$i sizeOf($email); $i++){
    echo 
    "<input type=\"hidden\" name=\"destinatario\" value=\"$email[$i]\">";
    }
    echo 
    "<br/><font size=\"1\" face=\"Verdana\">Oggetto:<br>";
    echo 
    "<font size=\"1\" face=\"Verdana\"><input type=\"text\" name=\"oggetto\" size=\"25\"><br><br/>";
    echo 
    "<font size=\"1\" face=\"Verdana\">Testo:<br>";
    echo 
    "<textarea name=\"testo\" rows=\"10\" cols=\"40\"></textarea><br><br/>";
    echo 
    "<font size=\"1\" face=\"Verdana\">Allegato:"."<br><br/>";
    echo 
    "<input type=\"file\" name=\"attach\" size=\"25\"><br><br>";
    echo 
    "<td height=\"25\" valign=\"bottom\" colspan=\"2\" align=\"center\"><input type=\"submit\" value=\"Spedisci\"></td>";
    echo 
    "</form>";
    ?><br>
    <?
    include("pppc.php");
    ?>
    </body>
    </html> 
    il file a cui punta nell'action è invia_mail.php

    PHP:
    <?PHP
    /*error_reporting(0);*/

        
    $destinatario $_POST["destinatario[]"]; 
        for(
    $i=0;$i sizeOf($destinatario); $i++){
        
    $destinatari$destinatario[$i];
        
    $oggetto stripslashes($_POST["oggetto"]); 
        
    $testo stripslashes($_POST["testo"]);
        
    // specifichiamo le propriet dell'allegato
        
    $attach $_FILES["attach"]["tmp_name"]; 
        
    $nome_allegato $_FILES["attach"]["name"]; 
        
    $tipo_di_allegato $_FILES["attach"]["type"]; 
        
    $grandezza_allegato $_FILES["attach"]["size"]; 

        
    // impostiamo il delimitatore 
        
    $boundary md5(uniqid(microtime())); 

        
    // apriamo il documento in allegato, leggiamolo, stabiliamone la codifica e chiudiamolo
        
    $file fopen($attach"r"); 
        
    $leggi fread($file$grandezza_allegato); 
        
    $codifica chunk_split(base64_encode($leggi)); 
        
    fclose($file);

        
    // inseraimo le intestazioni che ci interessano 
        
    $intestazione .= "MIME-version: 1.0\n"
        
    $intestazione .= "Content-type: multipart/mixed; boundary=\"$delimitatore\"\n"
        
    $intestazione .= "Content-transfer-encoding: 7BIT\n"
        
    $intestazione .= "X-attachments: $nome_allegato\n";

        
    // stabiliamo il formato della mail 
        
    $formato "--$delimitatore\n"
        
    $formato .= "Content-Type: text/plain; charset=us-ascii\n"
        
    $formato .= "Content-Transfer-Encoding: 7bit\n\n"
        
    $formato .= "$testo\n\n"
        
    $formato .= "--$delimitatore\n"
        
    $formato .= "Content-type: $tipo_di_allegato; name=\"$nome_allegato\"\n"
        
    $formato .= "Content-Transfer-Encoding: BASE64\n"
        
    $formato .= "Content-disposition: attachment; filename=\"$attach_name\"\n\n"
        
    $formato .= "$codifica\n"
        
    $formato .= "--$delimitatore--\n";

        
    // utilizziamo la funzione mail per inviare e if per ottenere un messaggio di conferma
        
    if(mail($destinatario[$i]. ", "$oggetto$formato$intestazione)) 

        { 
            echo 
    "Mail inviata correttamente!";
        } 
    }
    ?>
    Purtroppo le mail non vengono inviate.

    Qualche idea?
    Grazie mille e cordiali saluti a tutti.

    Massimo
     
Sto caricando...

Condividi questa Pagina