Faudrait déjà voir à changer le content-type de ta pièce jointe :
"application/octet-stream", ou mieux, récupérer le type de fichier
uploadé et définir le content-type partant de là avec un "switch".
Par ailleurs un champs file se récupère en
$_FILES
qui est un tableau, et pas en $_POST. Fait l'essai d'un
print_r($_FILES["fichier"]) en retour de formulaire, y a tout plein de
trucs et de machins dont son nom d'origine et le nom de sa copie
temporaire sur le serveur.
$NomFichier=$_FILES["fichier"]["name"];
pour ouvrir la copy: $fichier=$_FILES["fichier"]["tmp_name"];
d'ailleurs :
$msg_webmaster = $_POST['msg_webmaster'];
$sujet = $_POST['sujet'];
$NomFichier = $_POST['fichier'];
où est $fichier?
Partant de là, je sais pas si ça marchera, mais ça sera déjà mieux...
J'édifierai des cathédrales de soufrance en ton nom, Lucifer.