2010-07-28 44 views
1

我在mail()函数中配置了多个标题,发件人名称和其他字段显示为已设置。但是,在gmail mailed-by字段中,我看到了我的服务器的主机名,尽管我已将Mailed-By标头设置为不同......有没有办法改变它,或者我是否指定了错误的标头来生效改变?在PHP邮件中更改邮寄标题

当前头:

 
From: [email protected] 
Mailed-By: Example.com 
X-Mailer: Example/1.0 

回答

7

如果您发布要发送的头它会更容易诊断问题。据我所知,标题应该是“X-Mailer”来设置邮件应用程序的字段。如果这不起作用,请发布您的当前标题,我们可以帮助您进一步/更好。

编辑:

做一些进一步的研究,这似乎与 “-f” 标志的第五个参数是做它的方式:

mail($to, $message, $body, $headers, '[email protected]');

是一种可能性。这通常是一个电子邮件地址,所以你将不得不看看它接受什么样的价值等等。我发现从Joyent Discussion Board这个信息。

但读它可能不是你想要的。

-fname设置信任'的用户(一般 根,守护程序和网络)的from'' person (i.e., the sender of the mail). -f can only be used by的名称,或者如果你正在尝试 成为的人是一样的,你是人。

sendmail Man page。我会看看我是否无法弹奏其他东西。

+0

贴头......我已经分配的x邮件的第一件事,倒是寄件人的顶线,试图覆盖寄件人gmail的。不行。 :-( – ina 2010-07-28 04:11:32

+1

更新了一个测试选项,sendmail的第五个参数,“-f” – 2010-07-28 04:21:29

+0

第五个参数'-f'为我工作,gmail不再显示'邮寄'或'通过'项目 – mikew 2015-07-30 17:21:34

2

这听起来像邮件传送标题是由您的邮件传输代理或Gmail在离开PHP后添加的。听起来这可能是一种安全措施,因此可以追踪滥用报告。

0

我不知道这个问题是否已经解决,因为它已经过时了,但我在我的网站的联系页面上遇到了同样的问题。我们希望俱乐部会员能够使用表格与官员联系。但我希望它看起来像来自用户输入的电子邮件地址,以便官员可以直接回复。我找到了这个代码,并修改它为我的网站。

$headers = "From: <$email> \n"; 
    $headers .= "X-Sender: <$from>\n"; 
    $headers .= "X-Mailer: PHP\n"; 

$ email是用户输入的地址。我不能说我理解这一切,但它解决了我的问题。