Visualizzazione dei risultati da 1 a 3 su 3

Discussione: invio email + allegati

  1. #1

    invio email + allegati

    Ragazzi ho fatto questo form, arriva via email, ma arrivano strani caratteri e non arrivano le immagini





    Codice PHP:
    <?php

    // se viene inviato form controlla
    if (isset($_GET['action']) && $_GET['action'] == "inserimento") { // 1


    // controllo dei campi in php
    if(($_POST['nome'] == "")){

    echo 
    "<script>";
                echo 
    "alert('I campi sono obbligatori');";
                echo 
    "</script>";    
    }
    elseif (!
    eregi ('^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+.[a-z]{2,4}$'stripslashes(trim($_POST['email']))))
            {
                echo 
    "<script>";
                echo 
    "alert('Inserire un indirizzo e-mail valido');";
                echo 
    "</script>";
            }
    else {

            
    // Recuperiamo i valori dal form e aggiungiamo la nostra email dove ricevere il file allegato con la mail

                
    $to "info@werwolfe.it";

                
    $mail "info@werwolfe.it";

                
    $oggetto "Miss Ondina";

                
    $messaggio .= "\n";
                
    $messaggio .= "Nome =" $_POST['nome'] . "\n";
                
    $messaggio .= "Cognome =" $_POST['cognome'] . "\n";
                
    $messaggio .= "Telefono =" $_POST['telefono'] . "\n";
                
    $messaggio .= "Cell =" $_POST['cell'] . "\n";
                
    $messaggio .= "Hobby =" $_POST['hobby'] . "\n";
                
    $messaggio .= "Sopranome =" $_POST['sopranome'] . "\n";
                
    $messaggio .= "Sport=" $_POST['sport'] . "\n";
                
    $messaggio .= "Età=" $_POST['eta'] . "\n";
                
    $messaggio .= "altezza=" $_POST['altezza'] . "\n";
                
    $messaggio .= "Senot=" $_POST['seno'] . "\n";
                
    $messaggio .= "Vita=" $_POST['vita'] . "\n";
                
    $messaggio .= "Taglia=" $_POST['taglia'] . "\n";
                
    $messaggio .= "Rilascio dati=" $_POST['checkPrivacy'] . "\n";
                
    $messaggio .= "Email=" $email "\n";
                
    $messaggio .= "\n";
                
    $messaggio .= "Miss Ondina\n";
    // Creiamo le variabili per il file attachment

                
    $attachment $_FILES['attachment']['tmp_name'];

                
    $attachment_type $_FILES['attachment']['type'];

                
    $attachment_name $_FILES['attachment']['name'];

                
    $headers "From: " $to;

    // Verifichiamo se è stato eseguito l'upload del file

                
    if (is_uploaded_file($attachment))

                {

    // usiamo la funzione fopen e fread per aprire e leggere il file e poi chiudiamo con fclose

                
    $file fopen($attachment,'rb');

                
    $data fread($filefilesize($attachment));

                
    fclose($file);

    // Codifichiamo il file adattandolo a base64 usando la funzione chunk_split di php

                
    $data chunk_split(base64_encode($data));

    /* Creiamo una variabile per un divisore che deve divir

    dere la parte testuale del messaggio dal file stesso altrimenti riceverete una serie illeggibili di caratteri

    */

                
    $func_rand md5(time());

                
    $mime_divisor "==Multipart_divisor_x{$func_rand}x";

    // Aggiungo le intestazioni necessarie per l’attachment

                
    $headers .= "\nMIME-Version: 1.0\n";

                
    $headers .= "Content-Type: multipart/mixed;\n";

                
    $headers .= "divisor=\"{$mime_divisor}\"";

    // Definisco il tipo di messaggio (MIME/multi-part)

                
    $body .= "This is a multi-part message in MIME format.\n\n";

    // Mettiamo il separatore

                
    $body .= "–{$mime_divisor}\n";

    // Questa è la parte “testuale” del messaggio

                
    $body .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";

                
    $body .= "Content-Transfer-Encoding: 7bit\n\n";

                
    $body .= "From :" $mail "\n\n";

                
    $body .= $messaggio "\n\n";

    // Ancora il separatore alla fine del contenuto testuale della mail

                
    $body .= "–{$mime_divisor}\n";

    // Adesso aggiungiamo l’allegato alla mail

                
    $body .= "Content-Disposition: attachment;\n";

                
    $body .= "filename=\"{$attachment_name}\"\n";

                
    $body .= "Content-Transfer-Encoding: base64\n\n";

                
    $body .= $data "\n\n";

    // chiudo con il separatore

                
    $body .= "–{$mime_divisor}–\n";

        }

        else

        {

                
    $body $testomessaggio;

        }

    // Invio la mail

                
    if (mail($to$oggetto$body$headers))

        {

                echo 
    "[i]Mail e allegato inviati correttamenti[/i]";

        }else{
        
                echo 
    "[i]Ci sono problemi, verifica il codice php[/i]";

    }





                                        
                                        
                                         
                }
                        }
                                        

    ?>
    Dov'è l'errore

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Per esperienza diretta so che (non ho controllato il tuo codice, però) ci sono difficoltà con gli encoding MIME a seconda del client... p.es. molto facilmente Outl**k (Express in particolare) crea difficoltà (come anche il corrispondente browser fa spesso e -malpernoi-volentieri)... anche il terminatore di linea addirittura può fare differenza.

    Io p.es. attualmente ho uno script che fa quanto deve, ma ha problemi proprio con il client sopracitato nonostante abbia seguito tutte le indicazioni trovate.

  3. #3
    Non si può risolvere????

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.