2011-05-18 83 views
1

我在窗体上使用PHP的mail()函数将电子邮件发送到具有自动响应的地址。不幸的是,由于电子邮件是从表单生成的,因此它会尝试回复[email protected],该表单不存在,然后反弹回来。PHP邮件()函数自动响应

mail("[email protected]", $email_subject, $email_message, $headers); 

其它信息:

$email_from = "[email protected]"; 

$headers = "From: ".$email_from; 
$headers .= "\nReply-To: ".$email_from; 
$headers .= "\nReturn-Path: ".$email_from; 
$headers .= "\nMIME-Version: 1.0\n" . 
"Content-Type: multipart/mixed;\n" . 
" boundary=\"{$mime_boundary}\""; 

有什么办法解决这一问题?我如何设置正确的返回地址?

编辑:我应该说,当响应到达时,回复地址IS正确设置为$ email_from。无论如何,自动回复者仍会尝试将其发送至[email protected]

+0

什么是自动应答?这取决于自动响应者如何阅读标题 – JamesHalsall 2011-05-18 18:05:09

回答

1

返回路径不像其他邮件标题。这是一个所谓的“信封标题”。这些由MTA设置,而不是由实际邮件标题部分的字段设置。大多数MTA都有一个用于设置返回路径的特殊标志。在后缀,Sendmail和进出口银行它是f标志,所以这些系统通常可以调用mail是这样的:与fifth parameter

mail($to, $subject, $message, $additional_headers, '-f'.$email_from); 
1

您可以设置Return-Path(如果那是你的意思):

布尔邮件(字符串$到,串 $主题,字符串$消息[,串 $ additional_headers [,串 $ additional_parameters]])

...其中:

additional_parameters(可选)

的additional_parameters参数可被用于传递 附加标志作为命令行选项 到被配置为 程序发送邮件时使用,如定义 由sendmail_path配置 设置。例如,当使用sendmail和-f sendmail选项时,可以使用 来设置信封发件人地址 。

,所述网络服务器运行作为应添加作为受信任的用户 到sendmail配置到 用户防止被添加到所述消息从一个 “X-警告”报头时 信封发件人(-f)是使用这种方法设置 。对于sendmail用户,这个文件 是/ etc/mail/trusted-users。

将其设置为[email protected]应该有所斩断。

在任何情况下,我认为,自动应答应该使用从From头部地址(如果没有Reply-To提供),但是,很好哦... :)