a dir la verità non ho mai utilizzato questo script. L'ho appena provato e mi arriva solo una mail senza l'allegato
Perchè non utilizzare la semplice phpmailer?
Ti crei prima un form cosi :
Codice PHP:
<form method="POST" action="mailManager.php" enctype="multipart/form-data">
<table>
<tr>
<td>Nome</td>
<td><input class="text" type="text" name="nome" size="20"></td>
</tr>
<tr>
<td>Cognome</td>
<td><input class="text" type="text" name="cognome" size="20"></td>
</tr>
<tr>
<td>Email</td>
<td><input class="text" type="text" name="email" size="20"></td>
</tr>
<tr>
<td>Messaggio</td>
<td><textarea rows="2" name="messaggio" cols="20"></textarea></td>
</tr>
<tr>
<td>File</td>
<td><input type="file" name="allegato"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Invia" name="sub"><input type="reset" value="Annulla" name="res"></td>
</tr>
</table>
</form>
una volta creato il form passi al mailManager.php che è la pagina che si occupa dell'invio della mail.
Codice PHP:
<?php
require_once('class.phpmailer.php');
//upload dell'allegato
if (!move_uploaded_file($_FILES['allegato']['tmp_name'], $_FILES['allegato']['name']))
{
echo "Errore nel caricamento dell'immagine";
}
else{
//invio mail
$mail = new PHPMailer();
$mail->SetFrom($_POST['email'],$_POST['nome']."".$_POST['cognome']); //mittente
$mail->AddAddress("destinatario@dominio.com", "Nome destinatario"); //destinatario
$mail->Subject = "Invio mail da form"; //oggetto
$mail->Body = $_POST['messaggio']; //corpo del messaggio
$mail->AddAttachment($_FILES['allegato']['name']); //allegato appena caricato sul server
if(!$mail->Send())
{
echo "Messaggio non inviato!
";
echo "Errore: " . $mail->ErrorInfo;
exit;
}
echo "Message inviato con successo";
}
?>
e tutto!
Naturalmente lo script è stato semplificato al massimo. Potresti inserire infiniti controlli, ad esempio controllare l'estensione del file, la grandezza, che i campi sono effettivamente popolati o non contengano valori strani e cosi via...