How do you know? You don’t check the return from the mail() function to see whether it’s sending.
Also, don’t use your form-fillers email address as the “from” address, there are all sorts of problems involved in that. Send it from your own address, as you already use the reply-to header.
But even that doesn’t imply that the email is sending, just that mail() has given it to whichever OS binary is sending emails (e.g. the sendmail executable, or whatever is configured).
I am trying to make the point that it’s incorrect. There is no such thing as <>. Though < and > are both legitimate operators, mashing them together like that gives you the result you were saying and not the correct one that you want.
Nor me, I must say I’ve never seen it used in PHP sample code or on here, and so I’d presumed that it was necessary to use !=, but <> has the same effect, according to the doc at least.
I must say I hadn’t noticed your “or die()” function on the end of the line. But as @dormilich said, the return from mail() only checks whether it’s been able to push it off somewhere to be mailed, not that it’s actually gone anywhere.
I am from a background in BASIC programming of various dialects, and because that language generally uses <> rather than != for not-equal-to, whether in strings or numbers, it doesn’t look wrong to me. Maybe that’s why I didn’t even notice it in the posted code until @spaceshiptrooper mentioned it.