Sending mail can be a bit of a weird thing in PHP. The mail function will always return true regardless of whether the mail was actually sent or not. I have some questions for you:
I've always been against innerHTML and preferred to use the DOM. I too am in two minds about this. One thing is certain though, innerHTML can be good if speed is an issue.