Newsgroup: it.comp.www.php
Titolo: Mail con allegato problema codice

Salve, mi serviva uno script che inviasse una e-mail con allegato (immagine,
pdf, zip, nulla di predefinito cmq...), ho trovato questo ma ho il seguente
problema:
mi arriva la mail con allegato il file con la dimensione esatta ed il nome
originale, però se cerco di aprirlo non ci riesco (la cosa vale per tutti i
tipi diversi di file che allego...)
ecco il codice del form.php
<form action="mail.php" enctype="multipart/form-data" method="POST">
<table cellpadding="0" cellspacing="0">
<tr>
<td>Destinatario: </td>
<td><input type="text" name="Destinatario" size="40"></td>
</tr>
<tr>
<td>Soggetto:</td>
<td><input type="text" name="Soggetto" size="40"></td>
</tr>
<tr>
<td>Allegato:</td><td><input type="file" name="allegato" size="40"></td>
</tr>
<tr>
<td valign="top">Contenuto:</td>
<td><textarea name="Contenuto" rows="15" cols="50"></textarea></td>
</tr>
<tr>
<td height="30" valign="bottom" colspan="2" align="center"><input
type="submit" value="Invia la mail">
</tr>
</table>
</form>
----------------------------------------------------------------------------
--------
ecco il codice di mail.php:
<?php
if(!isset($_POST)) $_POST = $HTTP_POST_VARS;
if(!isset($_FILES)) $_FILES = $HTTP_POST_FILES;
$Destinatario = trim($_POST["Destinatario"]);
$Soggetto = trim(stripslashes($_POST["Soggetto"]));
$Contenuto = trim(stripslashes($_POST["Contenuto"]));
$attach = $_FILES["allegato"]["tmp_name"];
$file_name = $_FILES["allegato"]["name"];
$file_type = $_FILES["allegato"]["type"];
$file_size = $_FILES["allegato"]["size"];
$boundary = md5(uniqid(microtime()));
$file = @fopen($attach, "r");
$contents = @fread($file, $file_size);
$encoded_attach = chunk_split(base64_encode($contents));
@fclose($file);
$mail_headers .= "MIME-version: 1.0\n";
$mail_headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"";
$mail_headers .= "X-attachments: $file_name\n";
$mail_body = "--$boundary\n";
$mail_body .= "Content-Type: text/plain; charset=us-ascii\n";
$mail_body .= "Content-Transfer-Encoding: 7bit\n\n";
$mail_body .= "$Contenuto\n\n";
$mail_body .= "--$boundary\n";
$mail_body .= "Content-type: $file_type; name=\"$file_name\"\n";
$mail_body .= "Content-Transfer-Encoding: base64\n";
$mail_body .= "$encoded_attach\n";
$mail_body .= "--$boundary--\n";
if(@mail($Destinatario, $Soggetto, $mail_body, $mail_headers))
{
echo "La mail è stata inoltrata con successo.";
}
 else
{
echo "Si sono verificati dei problemi nell'invio della mail.";
}
?>

 
Io uso phpmailer 
http://phpmailer.sourceforge.net/
Consigliato!

 ha scritto nel messaggio
news:bqk9ff$g6p$2...@newsread.albacom.net...

ma a quanto ho capito questo richiede l'installazione della classe nel
php.ini del server... mi faranno fare questa modifica i gestori
dell'hosting?

nessun aiuto?
:(((

 tipi diversi di file che allego...)
Magari vedendo il testo dell'email si puo' capire qualcosa.
Ciao,
 ___ 
/_|_\  Umberto Salsi
\/_\/  
www.icosaedro.it

"Umberto Salsi" <sa...@icosaedro.italia> ha scritto nel messaggio
news:bql8dt$2pt$1...@news.ngi.it...

il testo dell'email? non capisco...
cmq avevo allegato i due script nel primo messaggio, se potreste provarli un
attimino...

 
Hai capito male, è sufficiente includere la classe nei tuoi script

 ha scritto nel messaggio
news:bqmq6v$og$1...@newsread.albacom.net...

ho capito, ma non c'è NESSUNO che abbia uno script + semplice tipo il mio ma
FUNZIONANTE?