我建立一个网站,发送和电子邮件用户,当他登记。
我的代码(它的要点):
<?php
$to = "helloworld@gmail.com";
$subject = "Test mail";
$message = "Hello! \nThis is a simple email message.";
$headers = "From: munged@gmail.com";
$headers .= "\r\nReply-To: munged@gmail.com";
$headers .= "\r\nX-Mailer: PHP/".phpversion();
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>
问题是,当邮件传递时,从头部仍然munged@box123.bluehost.com
,而回复到被更改为指定的值。
box123.bluehost.com
是该网站的托管服务器的主机名。
所以我在做什么错? 我能做些什么,以获得“发件人”地址一样的回复地址?
有什么事情我做错了,或者是虚拟主机打犯规?
编辑:我刚才注意到,您尝试使用Gmail地址作为从价值。 这是行不通的 ,而ISP是正确的覆盖它。 如果您想要的答复重定向到已发邮件,使用reply-to
。
一种与许多ISP工作有效地址的解决方法:
尝试增加第五个参数,以您的mail()
命令:
mail($to,$subject,$message,$headers,"-f your@email.here");
原来,楼主的服务器(BLUEHOST)有关于这个问题很常见问题解答 。
第206条。
这是因为我们的服务器需要你(或你的脚本)使用正确的格式,有效期从:在邮件的标题字段。 如果发件人:字段的格式不正确,空或者电子邮件地址不cPanel的存在,发件人地址将改为username@box###.bluehost.com
。
你必须改变你使用正确使用一个有效的脚本From: header.
应工作头的例子是:
来源:user@domain.com
自: “用户”<user@domain.com>
头将无法工作的例子:
来源: “user@domain.com”
来源:用户名@ domain.com
从:user@domain.com <user@domain.com>
我们的服务器将不接受电子邮件地址的姓名和电子邮件地址是相同的。 它不会接受的电子邮件地址的双重声明。
对于脚本如Joomla和WordPress的,你需要按照他们的文档从田地格式化正确。 WordPress会要求邮件来自插件。
注意:您所使用的电子邮件地址必须是在的cPanel有效创建的帐户。
我有同样的问题,我查了php.net网站。 而且找到了正确的格式。
这是我更新的代码。
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: ' . $fromName . ' <' . $fromEmail .'>' . " \r\n" .
'Reply-To: '. $fromEmail . "\r\n" .
'X-Mailer: PHP/' . phpversion();
该\ r \ n应在双引号(“)本身, 单引号(')将无法正常工作。
我意识到这是一个古老的线程,但我有同样的问题,因为我搬到昨天BlueHost的。 它可能不是已经选定的答案,但我支持BlueHost的第206条回复。
我创建了控制面板有效的电子邮件,并把它作为我的发件人地址和它的工作。
我通过增加交友的电子邮件帐户,并补充说,同样的电子邮件标题从外地这样解决了这个
$header = 'From: XXXXXXXX <test@test.org>' . "\r\n";
该网站的主机是不是真的打犯规。 这不是严格按照规则 - 但也有一些一些旨在阻止垃圾邮件,它不是一个特别糟糕的一个惊人的发明相比。
如果你确实想从“@ gmail.com”发送邮件为什么不直接使用Gmail SMTP服务? 如果不能重新配置PHP在哪里运行的服务器,然后有很多的电子邮件包装工具,在那里它允许你指定一个自定义SMTP中继PHPMailer的弹簧在脑海中。
C。
头是不是为我工作在我的共享主机,原因是我是用我的hotmail电子邮件地址头。 我创建了我的cPanel电子邮件和我设置的是相同的电子邮件中是它的工作就像一个魅力的头!
$header = 'From: ShopFive <site@mysite.org>' . "\r\n";