0

所以问题是,有时,在我的网站上使用 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);

各位有什么想法吗?

谢谢

4

2 回答 2

0

更改$body为以下内容:

$body = "From: {$name_field} E-Mail: {$email_field} Message: {$message}"; 
于 2013-01-18T23:38:43.157 回答
0

好的。这个答案是对原始海报的。几个小时以来,我遇到了同样的问题。当我发现一个从 PHP wiki 引起我注意的小花絮时,我正在敲打我的头。原来身体必须由线条组成。每行必须以臭名昭著的 '\n\r'结尾。这可能会或可能不会出现在电子邮件中,但对电子邮件正文字符串至关重要。每行不能超过特定长度。在雅虎的情况下,我不知道确切的长度,但 wiki 声明 70 个字符长度。我认为这并不准确。由于我通过电子邮件发送的数据是 html 代码,因此我只是插入了'\n\r'到每个 html 标签的末尾。我没有这个问题了。我怀疑您发送的消息正文偶尔会超出行长的数据限制,并且只是发送了空白的消息正文。

示例字符串:

"<body>Hello World</body>\n\r<i>Something, something, darkside</i>\n\r..."

至少对我来说,这解决了这个问题,我也在 Yahoo!

我意识到这篇文章是一个古老的人工制品,按照互联网标准,但我看到很多相关的观点,我相信有人会发现它很方便。

于 2013-10-20T05:42:21.010 回答