使用PHPMailer更改返回路径

使用PHPMailer更改返回路径,php,phpmailer,Php,Phpmailer,有没有办法使用PHPMailer更改返回路径 我做了以下操作,但它不起作用 $mail->AddCustomHeader('Return-path:test@email.co.za'); 我用下面的语句发送邮件 if(!$mail->Send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { //Building the reporting email to report

有没有办法使用PHPMailer更改返回路径

我做了以下操作,但它不起作用

$mail->AddCustomHeader('Return-path:test@email.co.za');
我用下面的语句发送邮件

if(!$mail->Send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;

    } else {
        //Building the reporting email to report on all the mails send 
        echo "Message REPORT sent!\n";
    }

我收到了电子邮件,但返回路径没有更改?

最可能的原因是您发送此邮件的邮件服务器强制执行特定的返回路径。“托管”Web空间通常就是这样


在这种情况下,你没有很多选择。尝试与您的主持人交谈。

请尝试以下操作,而不是使用回复路径标题:

$mail->AddCustomHeader('Reply-to:test@email.co.za');

我使用回复标题,甚至在共享空间上也取得了巨大的成功。

以下解决了这个问题,我调整了发件人属性,它对我起了作用<代码>$mail->Sender=test@email.co.za';

设置returnpath(自2013年7月起)的正确方法是使用:

$mail->ReturnPath='bounce_here@domain.com';
phpmailer源代码包含以下内容,这就是我认为$mail->Sender有效的原因

if ($this->ReturnPath) {
  $result .= $this->HeaderLine('Return-Path', '<'.trim($this->ReturnPath).'>');
} elseif ($this->Sender == '') {
  $result .= $this->HeaderLine('Return-Path', '<'.trim($this->From).'>');
} else {
  $result .= $this->HeaderLine('Return-Path', '<'.trim($this->Sender).'>');
}
if($this->ReturnPath){
$result.=$this->HeaderLine('返回路径','');
}elseif($this->Sender==''){
$result.=$this->HeaderLine('返回路径','');
}否则{
$result.=$this->HeaderLine('返回路径','');
}

我误解你了吗?您是想更改失败消息和警告发送到的路径,还是想更改人们回复的地址?@webfac,如果邮件未送达,电子邮件会反弹回来,我需要知道它反弹到哪个地址,我认为它反弹到的唯一一件事就是回复-path@Roland-没错是的,我误解了你一会儿。我看不出回复路径不起作用的原因,除非此标题放在您的标准To、From标题之前,等等??如果是这样的话,这很可能就是答案。@webfac,我已经设法解决了这个问题,我做了以下$mail->Sender=test@email.co.za';@罗兰-很高兴你把它整理好了,这意味着你正在使用的类中有一个函数Sender,它显然将Sender地址应用于From:和Return path头值。这是一种奇怪的方式,如果他们给你隐式设置每个标题选项的选项,我更愿意这样做!很高兴你成功了。对,这很有效。它在内部设置返回路径。感谢这应该被标记为正确答案。情况不再如此,因为phpmailer在其代码中解释:/***消息的返回路径。*如果为空,将设置为发件人或发件人。*var string*不推荐的电子邮件发件人不应设置返回路径标头;*这是接收器的工作(RFC5321第4.4节),因此它不再起任何作用。*链接RFC5321参考*/您好。我不明白为什么?每个电子邮件解决方案(mailchimp…)都会设置用户VERP地址的返回路径以跟踪反弹…我们无法使用phpamiler实现这一点???为什么?
$mail->Sender = 'noreply@domain.com';