Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    58

    PHP mail con allegati - problema

    Salve a tutti,
    ho un problema con l'allegare file alle email.

    Eseguo l'upload del file, e questo avviene in maniera corretta
    Utilizzo poi una classe scaricata da html.it per inviare l'email
    L'email arriva con l'allegato, ma quando provo ad aprirlo mi dice che non ha un formato conosciuto.
    Ho provato sia con file word e pdf ma niente...
    Di seguito il codice che utilizzo

    classe:

    <?php
    class sentMail{
    //dichiarazione delle propietà
    var $testo,$mittente,$destinatario,$oggetto,$errore,$t itolo,$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;
    }
    }

    ?>




    richiamo della classe:


    $pntMail=new sentMail();
    $pntMail->setMittente(stripslashes($_POST["email"]));
    $pntMail->setNomeFile($nomeOriginale);
    $pntMail->setIndFile($imgPercorso);
    $pntMail->setDestinatario($gbl_lavoraconnoi_mail["to"]["email"]);
    $pntMail->setTesto('Testo che si va ad inserire dento la mail in formato html');
    $pntMail->setOggetto($gbl_lavoraconnoi_mail_oggetto.stripsl ashes($_POST["nome"]." ".$_POST["cognome"]));
    $pntMail->setFileType($estenzione);
    if($pntMail->inviaMail())
    echo 'mail inviata';
    else
    echo 'mail non inviata';



    Il percorso del file è un percorso assoluto ricavato con $_SERVER["DOCUMENT_ROOT"]
    Estensione è pdf o doc....

    Ora qualcuno sa darmi un aiuto???? vi prego....

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    8
    Sei più riuscito a risolvere il problema?

    Mi trovo nella stessa situazione!!!

    Grazie in anticipo

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.