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';
?>