所以,我有一个非常简单的形式:
<form action="AJAXemail.php" id='email_form' method="POST" target="_blank" enctype="application/x-www-form-urlencoded">
<p>
<label for="email_from">From:</label>
<input type="text" id="email_from" name="From" size="42" value=
"User Name<user@example.com>" /><br />
<label for="email_body">Message Body</label><br />
<textarea id="email_body" name="Body" rows="10" style="width: 100%"></textarea>
<input type="button" value="Submit" onClick="$('email_form').submit(); bringForth(email_div,false);"/>
</form>
它做了它应该做的事情,提交文本的正文通过电子邮件发送给我。问题在于它来自何方。我得到的只是“用户名”然后整个"<user@example.com>"
被剥离。因此,我无法回复。使用print_r($_REQUEST)
表示浏览器在发布之前将其删除。
我确信这有一个简单的原因,以及一个简单的解决方案,但对于我的生活,我找不到它。我尝试过更改enctype但无济于事。
提前致谢, 戴夫
答案 0 :(得分:0)
尝试逃避你的&lt;和&gt;符号 - “用户名&amp; lt; user@example.com &amp; gt;
答案 1 :(得分:0)
尝试转义电子邮件地址周围的有角括号:%lt;user@examples.com%gt;
答案 2 :(得分:0)
<user@example.com>
被视为标记。尝试在服务器端使用htmlspecialchars()
和htmlspecialchars_decode()
答案 3 :(得分:0)
感谢大家的帮助,但事实证明这些不是问题。 $ header字符串需要“From:”和POSTed字符串之间的空格。所以,这可能是Apple Mail一直存在的问题。我创建了一个固定的标题字符串,它就像一个魅力,唯一的区别就是空间。
- 戴夫