无法在PHP的邮件函数中设置$from变量


Unable to set $from variable in mail function in PHP

我有以下表单的代码

<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标头结构的更多信息。