所以问题在于,有时候,在我的网站上使用PHP邮件表单时,它只发送主题行和空体!但这只会发生在某些时候。实际上很少。我收到了来自网站用户的电子邮件(主题行,但空白的身体),所以我认为他们只是提交表格太早,直到我自己测试了一些电子邮件,我自己最终得到了一些空白!同样,主题行总是在那里。
在此处填写代码:
echo "<form method='POST' action='item.php?id=$strItemNumber'>
<table><tr><td style='vertical-align:middle;'>
Subject:<BR />
<input type='text' name='subject' value='Item # $strItemNumber' size='19'><br />
Name:<BR /> <input type='text' name='name' size='19'>
<br />Your Email:<br />
<input type='text' name='email' size='19'>
</td><td>
Message:<BR />
<textarea rows='9' name='message' cols='60'></textarea>
</tr></table>
<input type='submit' value='Send Email' name='submitted'>
</form>";
电子邮件功能代码:
$to = "info@mydomain.com";
$subject = $_POST['subject'];
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$message = $_POST['message'];
$body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message\n";
mail($to, $subject, $body);
你们有什么想法吗?
谢谢
答案 0 :(得分:0)
将$body
更改为以下内容:
$body = "From: {$name_field} E-Mail: {$email_field} Message: {$message}";
答案 1 :(得分:0)
确定。这个答案是原始海报。我有几个小时的同样问题。当我发现一个从PHP wiki引起我注意的小故事时,我在墙上敲打着我。原来,身体必须由线组成。每行必须以臭名昭着的'\ n \ r'结尾。这可能会或可能不会在电子邮件中显示,但对电子邮件正文字符串至关重要。每行不能超过特定长度。在Yahoos的情况下,我不知道确切的长度,但维基说70个字符长度。我认为这不确切。由于我的电子邮件数据是html代码,我只需将'\ n \ r'插入每个html标记的末尾。我已经没有问题了。我怀疑你发送的邮件正文偶尔超出了行长度的数据限制,只是发送了一个消息正文。
示例字符串:
"<body>Hello World</body>\n\r<i>Something, something, darkside</i>\n\r..."
至少对我来说,这解决了这个问题,我也在雅虎上!
我意识到这篇文章是一个古老的神器,按照互联网标准,但我看到很多O视图相关,我相信有人会发现它很方便。