I thought the same thing so I made another text field to make sure I was grabbing the right one and it still did not work. I have also move the code from body to header and back again. I moved the output from the email field up to the subject field of the email and put in a static email at it worked in that the email was sent correctly but the subject was blank. I moved stuffed around so much that the form stop working so I wrote you and redid the form from scratch again. You won't be able to see it but the email address does come to this page as I changed your hidden field to a text field and it shows the correct email in the box.
I was wondering whether it would be better to grab the info from the email field and save it as a session. The reason I say this is because if the person answers the question wrong the post action that brought the value is lost.
Maybe my thinking is wrong. Pretty much what I am trying to do is like what they have on classifieds, where a potential buyers emails the classified owner through a link that does not display the owners email that is from a database. Instead of classifieds I am using store owners.