che io sappia nn puoi concatenare col punto l'output di un while. Usa una stringa di appoggio tipo così:
Ho editato perché mi son accorto che era sbagliata anche la generazione della tabella.codice:mysql_connect("a","b","c"); mysql_select_db("db3"); $dati=mysql_query(" SELECT * FROM anagrafica WHERE id_contatti = $filtro "); $strwhile="<table>"; while($array=mysql_fetch_array($dati)){ // riga segnalata per l'errore $strwhile.=" <tr> <td>Nome</td> </tr> <tr> <td>$array[Nome]</td> </tr> "; } $strwhile.="</table></body></html>"; $NumEntries=mysql_num_rows($dati); $mittente = 'email@sito.it \r\n'; $header .= "MIME-Version: 1.0\n"; $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; $header .= "Content-Transfer-Encoding: 7bit\n\n"; $destinatario = "destinatario@sito.it"; $oggetto = "<html><body>Richiesta preventivo"; $messaggio = "Testo email". $NumEntries . " " . $strwhile; mail($destinatario, $oggetto, $messaggio, $mittente);

Rispondi quotando