les destinataires reçoivent le mail deux fois Alors c'est que d'une manière ou d'une autre, tu l'appelles deux fois (ou tu mets deux fois la même adresse de destinataire). Le script par lui-même n'envoie pas le mail deux fois, je peux te le garantir.
le champ "to" des boites mail affiche les destinataires Bien sûr, le but de la manip c'était d'envoyer le mail à plusieurs personnes. Tu n'avais pas précisé que tu voulais cacher les noms de destinataires !
Pour cacher les destinataires, il suffit de les mettre dans le champ Cci:
// enlever la virgule et l'espace à la fin
if (strlen($to)>0) $to=substr($to,0,-2);
$mailheaders = "From:".$Mail."\n";
$mailheaders .= "To:\n";
$mailheaders .= "Cci:".$to."\n";
$mailheaders .= "Reply-To: No reply <>\n\n";
Attention, il n'y aura plus aucun nom dans le destinataire. Si tu veux quand même que le nom apparaisse, alors tu es obligé de faire 3 envois de mails normaux.
Pourquoi ne pas avoir tenu compte de la remarque
De plus, tout le traitement du formulaire ne doit être fait que si le formulaire a été saisi : tu dois ajouter if (isset($_POST['valide'])) {... ?