我有以下表单的代码
<input type=text name=sender maxlength="50"/>
<input type=email name=mail />
<input type=text name=title maxlength="150"/>
<textarea name=issue rows=6></textarea>
<button name="submit" type=submit>Submit</button>
<?php
if (!empty($_REQUEST['sender'])&&!empty($_REQUEST['mail'])&&!empty($_REQUEST['issue']) &&!empty($_REQUEST['title'])) {
$sender=$_REQUEST['sender'];
$email=$_REQUEST['mail'];
$issue=$_REQUEST['issue'];
$title=$_REQUEST['title'];
$from="$sender : $email";
mail("mail to send to", $title, $issue, $from);
}
?>
现在,问题是我得到了ipg.apnasikacom作为名称和ipg.apnasikkacom@boscustweb2803.eigbox.net作为电子邮件地址。为什么会发生这种情况?
您的$from
变量实际上应该是一个由换行符分隔的标题列表。恰好要发送的标头之一也是From
标头。
从标头构建的方式不正确。如果我把我的名字和我的电子邮件一起放在你的搜索框里,标题看起来像:
watcher: me@domain.com
它实际上应该看起来更像这样:
From: watcher <me@domain.com>
您可以在RFC2822中找到有关From
标头结构的更多信息。