Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    94

    Mail Libero - Allegato sempre BodyPart.txt

    Salve a tutti.

    Quando invio una e-mail ad un indirizzo di libero tramite uno script che ho inserito nel mio sito, qualsiasi allegato invii risulta sempre essere BodyPart.txt che aperto è una serie di caratteri senza senso...

    come risolvo il problema?

    Grazie

  2. #2
    Che codice stai utilizzando per inviare il messaggio?

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    94
    la parte dell'allegato è la seguente:

    Codice PHP:
    // Valorizzo le variabili relative all'allegato
    $allegato $_FILES['allegato']['tmp_name'];
    $allegato_type $_FILES['allegato']['type'];
    $allegato_name $_FILES['allegato']['name'];

    // Creo 2 variabili che riempirò più avanti...
    $headers "From: $name <$email>";
    $msg     "";

    // Verifico se il file è stato caricato correttamente via HTTP
    // In caso affermativo proseguo nel lavoro...
    if (is_uploaded_file($allegato))
    {
      
    // Apro e leggo il file allegato
      
    $file fopen($allegato,'rb');
      
    $data fread($filefilesize($allegato));
      
    fclose($file);

      
    // Adatto il file al formato MIME base64 usando base64_encode
      
    $data chunk_split(base64_encode($data));

      
    // Genero il "separatore"
      // Serve per dividere, appunto, le varie parti del messaggio.
      // Nel nostro caso separerà la parte testuale dall'allegato
      
    $semi_rand md5(time());
      
    $mime_boundary "==Multipart_Boundary_x{$semi_rand}x";
      
      
    // Aggiungo le intestazioni necessarie per l'allegato
      
    $headers .= "\nMIME-Version: 1.0\n";
      
    $headers .= "Content-Type: multipart/mixed;\n";
      
    $headers .= " boundary=\"{$mime_boundary}\"";

      
    // Definisco il tipo di messaggio (MIME/multi-part)
      
    $msg .= "This is a multi-part message in MIME format.\n\n";

      
    // Metto il separatore
      
    $msg .= "--{$mime_boundary}\n";

      
    // Questa è la parte "testuale" del messaggio
      
    $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
      
    $msg .= "Content-Transfer-Encoding: 7bit\n\n";
      
    $msg .= $messaggio "\n\n";

      
    // Metto il separatore
      
    $msg .= "--{$mime_boundary}\n";

      
    // Aggiungo l'allegato al messaggio
      
    $msg .= "Content-Disposition: attachment;\n";
      
    $msg .= " filename=\"{$allegato_name}\"\n";
      
    $msg .= "Content-Transfer-Encoding: base64\n\n";
      
    $msg .= $data "\n\n";

      
    // chiudo con il separatore
      
    $msg .= "--{$mime_boundary}--\n";

    il problema potrebbe essere dato dal formato MIME?Se si come lo risolvo?

    grazie

  4. #4
    Perchè non usi una della tante classi già pronte (es. phpmailer) che vengono utilizzate da migliaia di utenti e sono molto stabili e testate?

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    94
    me ne linkeresti o posteresti una?

    e come faccio ad usare una classe?la inserisco nella stessa pagina e poi la richiamo tipo una funzione?

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    94
    non riesco a trovare una classe che faccia al caso mio...qualcuno me ne può linkare una?

  7. #7
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    PHPMAILER!

    Cerca su google :-)

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    94
    e funziona su libero?

    ok ora cerco grazie

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    94
    no ma troppo complicato...io cerco una cosa da fare in 2/3 file e semplice da configurare....se sono tutte così rinuncio

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    94
    ho usato la seguente classe, però non mi arriva proprio l'allegato ora...dove ho sbagliato?

    vi posto tutto il codice del file send.php, se vi serve anche il form basta chiedere

    Codice PHP:
    <?php
    class sentMail{
        
    //dichiarazione delle propietà
        
    var $testo,$mittente,$destinatario,$oggetto,$errore,$titolo,$content,$replay,$nomeFile,$indFile,$fType,$inte;
        
        
    //metodo costruttore
        
    function sentMail(){        
            
    $this->destinatario=array();
            
    $this->errore=array();
            
    $this->content='multipart/alternative';
        }
        
        
    //metodo che imposta il mittende che invia la mail
        
    function setMittente($inMittende){
            
    $this->mittente=$inMittende;
        }
        
        
    //metodo che imposta il contenuto della mail
        
    function setTesto($inTesto){
            
    $this->testo=$inTesto;
        }
        
        
    //metodo che mimposta l'oggetto della mail
        
    function setOggetto($inOggetto){
            
    $this->oggetto=$inOggetto;
        }
        
    //metodo che imposta il nome del file
        
    function setNomeFile($inFile){$this->nomeFile=$inFile;}
        
        
    //metodo che imposta l'indirizzo del file
        
    function setIndFile($inFile){$this->indFile=$inFile;}
        
        
    //metodo che imposta il type del file
        
    function setFileType($inFile){$this->fType=$inFile;}
        
        
    //metodo che imposta la mail per la risposta
        
    function setReplay($inReplay){$this->replay=$inReplay;}
        
        
    //metodo che imposta il content delle mail
        
    function setContent($inCont){$this->content=$inCont;}
        
        
    //metodo che imposta il destinatario della mail
        
    function setDestinatario($inDestinatario){
            if(
    is_array($inDestinatario))
                
    $this->destinatario=$inDestinatario;
            else{
                
    $tmpDet=explode(',',$inDestinatario);
                
    $this->destinatario=$tmpDet;
            }
        }
        
        
    //metodo che imposta le intestazioni della mail
        
    function setInte($inValue){$this->inte=$inValue;}
        
        
    //metodo che imposta il titolo della mail
        
    function setTitolo($inTitolo){$this->titolo=$inTitolo;}
        
        
    //metodo che restitusce l'errore
        
    function getErrore(){return $this->errore;}
        
        
    //metodo che invia la mail
        
    function inviaMail(){
            
    $mess="<html><head>
            <meta http-equiv=Content-Type content=\"text/html; charset=iso-8859-1\">
            <title>
    $this->titolo</title>
            
    $this->inte
            </head>
            <body bgColor=#ffffff link=#333333 alink=#333333 vlink=#333333>
            
    $this->testo
            </body></html>"
    ;
            
    $intestazioni "From: $this->mittente\n";
            (
    $this->replay!='') ? $intestazioni.="Replay-to:".$this->replay."\n" "\n";
            
    $intestazioni.="X-Mailer: Sismail Web Email Interface\nMIME-version: 1.0\nContent-type: $this->content;\n boundary=\"Message-Boundary\"\n";
            (
    $this->nomeFile) ? $intestazioni.="\nContent-transfer-encoding: 7BIT\nX-attachments: $this->nomeFile'';
            
    $body_top="--Message-Boundary\n";
            
    $body_top.="Content-type: text/html; charset=iso-8859-1\n"
            
    $body_top.="Content-transfer-encoding: 7BIT\n"
            
    $body_top.="Content-description: Mail message body\n\n";  
            
    $msg_body=$body_top.$mess;
            if(
    $this->nomeFile!=''){
                
    $f=fopen($this->indFile,'r');
                
    $contenuto=fread($f,filesize($this->indFile));
                
    $enco_att=chunk_split(base64_encode($contenuto));
                
    fclose($f);
                if(
    $this->fType!='' && $this->indFile!=''){
                    
    $msg_body .= "\n\n--Message-Boundary\n";
                    
    $msg_body .= "Content-type: $this->fType; name=\"$this->nomeFile\"\n";
                    
    $msg_body .= "Content-Transfer-Encoding: BASE64\n";
                    
    $msg_body .= "Content-disposition: attachment; filename=\"$this->nomeFile\"\n\n";
                    
    $msg_body .= "$enco_att\n";
                    
    $msg_body .= "--Message-Boundary--\n";
                }
            }
            foreach(
    $this->destinatario as $tmpIndex=>$tmpValue){
                if(!
    mail($tmpValue,$this->oggetto,$msg_body,$intestazioni))
                    return 
    FALSE;
            }
            return 
    TRUE;
        }
    }

    $receiverMail    "terza_19@libero.it";

    $name       ltrim(rtrim(strip_tags(stripslashes($_POST['name']))));
    $email        ltrim(rtrim(strip_tags(stripslashes($_POST['email']))));
    $subject    ltrim(rtrim(strip_tags(stripslashes($_POST['subject']))));
    $mex        ltrim(rtrim(strip_tags($_POST['msg'])));
    $ip        getenv("REMOTE_ADDR");
    $messaggio      "Questa mail ti è stata inviata dal sito ...\n\nMittente: $name ($ip)\nEmail risposta: $email\n\n$mex"

    // Valorizzo le variabili relative all'allegato
    $allegato $_FILES['allegato']['tmp_name'];
    $allegato_type $_FILES['allegato']['type'];
    $allegato_name $_FILES['allegato']['name'];

                            
    $pntMail=new sentMail();
                
    $pntMail->setMittente($email);
                
    $pntMail->setNomeFile($allegato_name);
                
    $pntMail->setIndFile($allegato);
                
    $pntMail->setDestinatario($receiverMail);
                
    $pntMail->setTesto($messaggio);
                
    $pntMail->setOggetto($subject);
                
    $pntMail->setFileType($allegato_type);
                if(
    $pntMail->inviaMail())
                     echo 
    'mail inviata';
                else
                    echo 
    'mail non inviata';

    ?>

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.