I am a little curious about this line in your code
xmlhttp.open("POST","newmailer.php?" + subject + testemail + mbody ,true);
That would be ok if the method was GET and not POST.
I thought if using POST you have to send the paramaters separately.
I use this to send POST ajax requests
var url = "captchaCompare.php";
var params = "";
params = "txtUserAns="+userAns+"&sid="+Math.random();
I think with GET there is a max number of chars you can send in the query string (not sure what it is off the top of my head).
Could it be that because you are appending your query string to the url, the request is being sent as a GET even though you have set it as a POST?
Try sending your query string parameters separately as above and see if that helps.