Ho modificato un po' il codice che ho trovato, anche perché mi sono accorto di alcuni errori dovuti a come il server su cui si trovava aveva interpretato alcuni simboli, in particolare il < ed il >.
questo è il codice che riguarda la funzione che non funziona perfettamente
[php]
if ( ! function_exists ( 'mime_content_type ' ) )
{
function mime_content_type ( $f )
{
return system ( trim( 'file -bi ' . escapeshellarg ( $f ) ) ) ;
}
}
// FUNZIONE PER L'INVIO DI MAIL CON ALLEGATI
function mailAllegati( $datiemail2, $oggetto2, $mailutente, $mittente,
$allegato, $nomeAllegato,
$bcc = "", $reply = "", $stile = "")
{
$filetype = mime_content_type($allegato);
$filez = fopen($allegato, "r");
$contents = fread($filez, filesize($allegato));
$encoded_attach = chunk_split(base64_encode($contents));
fclose($filez);
if ($reply == "")
$reply = $mittente;
// CREO L'INTESTAZIONE
$testa = "From: Jumbo Screen - ufficio Marketing <$mittente>\n";
if ($bcc != "")
$testa .= "BCC: $bcc;\n";
$testa .= "Reply-To: $reply\n";
$testa .= "X-Mailer: Sismail Web Email Interface\n";
$testa .= "MIME-version: 1.0\n";
$testa .= "Content-type: multipart/mixed;\n";
$testa .= " boundary="Message-Boundary"\n";
$testa .= "Content-transfer-encoding: 7BIT\n";
$testa .= "X-attachments: $nomeAllegato";
// CREO IL MESSAGGIO
$corpo = "--Message-Boundary\n";
$corpo .= "Content-type: text/html; charset=iso-8859-1\n";
$corpo .= "Content-transfer-encoding: 7BIT\n";
$corpo .= "Content-description: Mail message body\n\n";
$corpo .= "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">";
$corpo .= "<HTML><HEAD>";
$corpo .= "<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">";
$corpo .= $stile;
$corpo .= "</HEAD>";
$corpo .= "<BODY>";
$corpo .= $datiemail2;
$corpo .= "</BODY></HTML>";
$corpo .= "\n\n--Message-Boundary\n";
$corpo .= "Content-type: $filetype; name="$nomeAllegato"\n";
$corpo .= "Content-Transfer-Encoding: BASE64\n";
$corpo .= "Content-disposition: attachment; filename="$nomeAllegato"\n\n";
$corpo .= "$encoded_attach\n";
$corpo .= "--Message-Boundary--\n";
if(@mail($mailutente, $oggetto2, $corpo, $testa))
return true;
else
return false;
}//fine della funzione
[/php]e questa è la riga che richiama il file allegato, ho provato in diversi modi ma nulla, mi arriva sempre una mail con un file allegato.php che in realtà è vuoto
[php]
// $allegato E' IL NOME DEL FILE CHE SI VUOLE ALLEGARE (COMPRENSIVO DI PATH)
$allegato = 'http://www.miosito.it/download/allegato.pdf';
[/php]