il codice è questo (l'avevo postato in un'altra discussione un po' di tempo fa...):
Codice HTML:
<form action="mail.php" enctype="multipart/form-data" method="post" name="form1" id="form1" target="_self">
Nome: <input name="nome" type="text" id="nome" size="41" style="background-color: #EDEDED; border: thin groove #D6D6D6;"><br>
E-mail: <input type="text" name="email" id="email" size="41" style="background-color: #EDEDED; border: thin groove #D6D6D6;"><br>
<br>
<input name="all" type="file" id="all"><br><br>
<input type="reset" name="Submit" value="reset" style="background-color: #FF9933; color: #3C0000; border: thin double Black;">
<input type="submit" name="Submit2" value="invia" style="background-color: #669933; color: #FFFF99; border: thin solid Black;" >
</form>
mail.php:
Codice PHP:
<?php
if(isset($_POST['email']) && isset($_POST['nome'])){
$header="";
$msg="";
$boundary='--' . md5( uniqid(time()) );
$ctencoding="8bit";
$subject="Invio allegato";
$body="In allegato il documento";
$to="tuamail@mail.it";
$from=$_POST['email'];
$fromname=$_POST['nome'];
$ctype="application/octet-stream";
$basename=$_FILES['all']['tmp_name'];
$name=$_FILES['all']['name'];
$header.="From: \"$fromname\" <$from>\nReturn-Path: $from\nX-Priority: 3\nTo: $to\n";
$header.="Mime-Version: 1.0\nContent-Type: multipart/mixed;\n boundary=\"$boundary\"\n";
$header.="Content-Transfer-Encoding: 8bit\n";
$msg .="This is a multi-part message in MIME format.\n--$boundary\n";
$msg .= "Content-Type: text/plain; charset=iso-8859-1\n";
$msg .= "Content-Transfer-Encoding: 8bit\n\n" . $body ."\n";
$msg .="--$boundary\nContent-type: $ctype;\n name=\"$name\"\n";
$msg .="Content-Transfer-Encoding: base64\nContent-Disposition: attachment\n filename=\"$name\"\n";
$linesz= filesize( $basename)+1;
$fp= fopen( $basename, 'r' );
$content = chunk_split(base64_encode(fread( $fp, $linesz)));
fclose($fp);
$msg .= chr(13) . chr(10).$content;
$result = @mail($to,$subject,$msg."\n",$header);
if($result){
echo "<p>Il tuo messaggio è stato inoltrato con successo!</p><p>Grazie!</p>";
}else{
echo "<p>E' stato riscontrato un errore sul server.<br>Impossibile inviare il messaggio.</p><p>Riprova più tardi.</p>";
}
}else{
echo "<p>Non hai compilato tutti i campi del modulo!</p><p>Campi mancanti:</p>";
if(!isset($_POST['nome'])){ echo "Nome<br>";}
if(!isset($_POST['email'])){ echo "Indirizzo e-mail<br>";}
}
?>
N.B.
il controllo sulle dimensioni del file non l'ho messo perchè per un'impostazione dei server di altervista non si posso uploadare file maggiori di 2-3mb (non ricordo)