qusta è la index cioe dove invio le mail:
Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento senza titolo</title>
<?php
if (isset($_SESSION['file']))
{
  
$a $_SESSION['file'];
  print (
'

[url="http://beck.altervista.org/upload_img/'
.$a.'"]'.$a.'[/url]</p>');
  print (
'<form action="upload.php" method="post" enctype="multipart/form-data">
  
  <input name="image" type="file" size="40" />
  


  
  <input name="upload" type="submit" value="Carica immagine" />
  </form>'
);
}
else
{
  print (
'<form action="upload.php" method="post" enctype="multipart/form-data">

<input name="image" type="file" size="40" />




<input name="upload" type="submit" value="Carica immagine" />
</form>'
);
}
?> 
</head>

<body>


<form action="formmail2.php" method="POST" enctype="multipart/form-data">
<input type="hidden" name="destinatario" value="davidebeccaro@gmail.com">
<table border="0">
<tr>
  <td>Tua Mail:</td>
  <td><input type="text" name="mittente" value="" /></td>
</tr>
<tr>
  <td>Oggetto:</td>
  <td><input type="text" name="oggetto" value="" /></td>
</tr>
<tr>
  <td>Messaggio:</td>
  <td><textarea cols="20" rows="4" name="messaggiob"></textarea>
</textarea></td>
</tr>
<tr>
  <td>Messaggio:</td>
  <td><textarea cols="20" rows="4" name="messaggioc"></textarea>
</textarea></td>
</tr>
<tr>
  <td>Messaggio:</td>
  <td><textarea cols="20" rows="4" name="messaggiod"></textarea>
</textarea></td>
</tr>
<tr>
  <td>Allega file:</td>
  <td><input type="file" name="allegatoa" /></td>
</tr>
<tr>
  <td>Allega file:</td>
  <td><input type="file" name="allegatob" /></td>
</tr>
<tr>
<tr>
  <td colspan="2">
      <table>
        <tr>
            <td><input type="submit" value="Invia" /></td>
            <td><input type="reset" value="cancella"></td>
        </tr>
    </table></tr>
</table>
</form>
<form action="upload.php" method="post" enctype="multipart/form-data">
    
    <input name="image" type="file" size="40" />
    


    
    <input name="upload" type="submit" value="Carica immagine" />
</form>
</body>
</html>
Questa è la pagina di invio delle mail:
Codice PHP:
<?php
// Recupero il valore dei campi del form
$destinatario $_POST['destinatario'];
$mittente $_POST['mittente'];
$oggetto $_POST['oggetto'];
$messaggioa $_POST['messaggiob'];
$messaggiob $_POST['messaggioc'];
$messaggioc $_POST['messaggiod'];


// Valorizzo le variabili relative all'allegato
$allegatoa $_FILES['allegatoa']['tmp_name'];
$allegatoa_type $_FILES['allegatoa']['type'];
$allegatoa_name $_FILES['allegatoa']['name'];

$allegatob $_FILES['allegatob']['tmp_name'];
$allegatob_type $_FILES['allegatob']['type'];
$allegatob_name $_FILES['allegatob']['name'];

// Creo 2 variabili che riempirò più avanti...
$headers "From: " $mittente;
$msg "";

// Verifico se il file è stato caricato correttamente via HTTP
// In caso affermativo proseguo nel lavoro...
if (is_uploaded_file($allegatoa))
{
  
// Apro e leggo il file allegato
  
$filea fopen($allegatoa,'rb');
  
$dataa fread($fileafilesize($allegatoa));
  
fclose($filea);
  
  
// Adatto il file al formato MIME base64 usando base64_encode
  
$dataa chunk_split(base64_encode($dataa));

  
// 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 .= "A_$messaggioa-----B_$messaggiob-----C_$messaggioc"\n\n";

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

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


  
// chiudo con il separatore
  
$msg .= "--{$mime_boundary}--\n";
}
else
{
  
$msg "A_$messaggioa-----B_$messaggiob-----C_$messaggioc;
}

// Verifico se il file è stato caricato correttamente via HTTP
// In caso affermativo proseguo nel lavoro...
if (is_uploaded_file($allegatob))
{
  
// Apro e leggo il file allegato
  
$fileb fopen($allegatob,'rb');
  
$datab fread($filebfilesize($allegatob));
  
fclose($filea);
  
  
// Adatto il file al formato MIME base64 usando base64_encode
  
$datab chunk_split(base64_encode($datab));

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

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

  
// Metto il separatore
  
$msgb .= "--{$mime_boundaryb}\n";

  
// Questa è la parte "testuale" del messaggio
  //$msgb .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
  //$msgb .= "Content-Transfer-Encoding: 7bit\n\n";
  //$msgb .= "A_$messaggioa-----B_$messaggiob-----C_$messaggioc" . "\n\n";

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

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


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

// Invio la mail
if (mail($destinatario$oggetto$msg$msgb$headers))
{
  echo 
"

Mail inviata con successo!</p>"
;
}else{
  echo 
"

Errore!</p>"
;
}
(
$_SESSION['file']);
?>

e questa invece è la pagina che fa l'upload alla cartella upload_img:
Codice PHP:
<?php
do {
  if (
is_uploaded_file($_FILES['image']['tmp_name'])) {
    
// Controllo che il file non superi i 60 KB
    
if ($_FILES['image']['size'] > 60000) {
      
$msg "

Il file non deve superare i 18 KB!!</p>"
;
      break;
    }
    
// Ottengo le informazioni sull'immagine
    
list($width$height$type$attr) = getimagesize($_FILES['image']['tmp_name']);
    
// Controllo che le dimensioni (in pixel) non superino 160x180
    //if (($width > 160) || ($height > 180)) {
   //   $msg = "

Dimensioni non corrette!!</p>";
    //  break;
   // }
    // Controllo che il file sia in uno dei formati GIF, JPG o PNG
    if ((
$type!=1) && ($type!=2) && ($type!=3)) {
      
$msg = "

Formato non corretto!!</p>";
      break;
    }
    // Verifico che sul sul server non esista già un file con lo stesso nome
    // In alternativa potrei dare io un nome che sia funzione della data e dell'ora
    if (file_exists('upload_img/'.
$_FILES['image']['name'])) {
      
$msg = "

File già esistente sul serverRinominarlo e riprovare.</p>";
      break;
    }
// Sposto il file nella cartella da me desiderata
if (!move_uploaded_file(
$_FILES['image']['tmp_name'], 'upload_img/'.$_FILES['image']['name'])) {
$msg = "

Errore nel caricamento dell'immagine!!</p>";
break;
}
}
} while (false);
echo $msg;
$_SESSION['
file'] = $_FILES['image']['name'];
header('
Location:index.php');

?>
grazie