$message.= "Content-Transfer-Encoding: 7bitnn\r\n";
especially the 7bitnn\r\n"; bit, shouldn't it be
$message.= "Content-Transfer-Encoding: 7bit\r\n";
Also, when you upload a file, shouldn't it be moved from the temp location to a more accessible and stable folder?
Also from a security standpoint, you are using the $_POST array directly, if someone was to try filling a field to break the PHP script, anything could happen, especially when you're allowing a file upload which I would limit by extension type.