Ciao a tutti, ho un problema con l'allegato di una email. Il file 'infotxt' viene correttamente creato, ma non viene allegato correttamente alla mail, perche ricevo l'allegato 'noname'. Qual e' l'errore nel codice? Grazie
PHP:
<?php
ob_start();
session_start();
$expMail = "/^[-0-9a-zA-Z.+_]+@[-0-9a-zA-Z.+_]+\.[a-zA-Z]{2,4}$/i";
if (isset($_POST['tomail']) && preg_match($expMail, $_POST['tomail'])) {
$_SESSION['tomail'] = $_POST['tomail'];
}
$data = date('r');
$h = fopen('infotxt/info.txt', 'w');
for ($i=0;$i<$_SESSION['numfile'];$i++)
{
fprintf($h, "Ecco alcune info sui file da te caricati\r\n\r\nNome file originale:\t\t%s\r\nDimensione file:\t\t%s KB\r\nTipo MIME file:\t\t\t%s\r\nData e ora caricamento:\t\t%s\r\nProgramma da utilizzare:\t\t%s\r\n",$_SESSION['nomefile-doc'.$i],$_SESSION['size-doc'.$i],$_SESSION['tipo-doc'.$i],$_SESSION['dataupload-doc'.$i],$_SESSION['descrtipo-doc'.$i]);
}
fclose($h);
$to = $_SESSION['tomail'];
$allegato = chunk_split(base64_encode(file_get_contents('infotxt/info.txt')));
$from = '[email protected]';
$bound = 'boundary' . rand(100000000, 999999999) . time();
$bound2 = 'boundary' . time() . rand(100000000, 999999999);
$headers = <<<intestazioni
from:{$from}
date:{$data}
reply-to:{$from}
Disposition-Notification-To: {$from}
MIME-version:1.0
content-type:multipart/alternative
boundary="$bound"
intestazioni;
$mess = <<<messaggio
--{$bound}
content-type:multipart/alternative
boundary="$bound2"
--{$bound2}
content-type:text/plain
Ecco il file .txt contenente le info richieste
--{$bound2}
content-type:text/html
<b>Ecco il file .txt contenente le info richieste</b>
--{$bound2}--
--{$bound}
content-type:text/plain
content-transfer-encoding:base64
content-disposition:attachment; filename="infotxt/info.txt"
{$allegato}
--{$bound}--
messaggio;
if (@mail($to, 'Info', $mess, $headers))
echo 'Mail inviata correttamente';
else
echo 'Mail non inviata';
?>