I would say everything is not working as it should, that code has a few problems. For example, you're missing the $ on this line:
$message = _REQUEST['message'];
The main problem though is that you haven't checked the HTML produced by your PHP code. If you had, you'd notice that you left no space between the attributes output by PHP. The browser will just ignore all the attributes now, because it thinks they're part of one single attribute. Change the echo statements to include a space directly after the opening quote.
Also, you have a lot of redundant true/false values in your code. For example, you can change the spamcheck function to this and it will work the same:
function spamcheck($field)
{
$field=htmlspecialchars($field);
$field=filter_var($field, FILTER_SANITIZE_EMAIL);
return filter_var($field, FILTER_VALIDATE_EMAIL);
}
Likewise, if ($mailcheck==TRUE) is the same as if ($mailcheck) (although not the same as if ($mailcheck===TRUE) if you want to ensure it's definitely true and not just type cast to true).