2010-08-12 6 views
8

사용하여 반환 경로를 변경하면 나는 다음 문을 사용하고 난 다음 그것을PHPMailer

$mail->AddCustomHeader('Return-path:[email protected]'); 

를 작동하지 않았다

PHPMailer

를 사용하여 리턴 경로를 변경하는 방법이 있나요 메일 보내기

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"; 
    } 

반송 경로가 변경되지 않습니까?

답변

19

다음 문제가 해결되어 Sender 속성이 조정되었고 저에게 효과적이었습니다. $mail->Sender = '[email protected]';

+0

맞습니다. 그것은 Return-Path를 내부적으로 설정합니다. 감사합니다 –

1

가장 큰 이유는이 메일을 보내는 메일 서버가 특정 반송 경로를 시행하기 때문입니다. 이것은 종종 "호스팅 된"웹 공간의 경우입니다.

그런 경우 많은 옵션이 없습니다. 주인과 이야기 해보십시오.

-2

대신 회신 경로 헤더를 사용하는이 시도 :

$mail->AddCustomHeader('Reply-to:[email protected]'); 

내가 헤더받는 회신을-사용하고도 공유 공간에 큰 성공을 거두었습니다.

+0

나는 당신을 오해 했습니까? 실패한 메시지 및 경고가 전달되는 경로를 변경하고 싶습니까, 아니면 사람들이 응답 할 주소를 변경하고 싶습니까? – SimonDowdles

+0

@webfac, 메일이 배달되지 않으면 이메일이 반송되고 어떤 주소로 반송되는지 알아야하고 반송되는 것으로 생각되는 유일한 메일은 회신 경로 – Roland

+0

@ 롤 랜드 - 맞습니다. 오해했습니다. 잠시 동안. 나는이 헤더가 당신의 표준 이전에 놓여 있지 않으면, 응답 경로가 작동하지 않는 이유를 보지 않는다. 그렇다면 taht가 대답 일 수 있습니다. – SimonDowdles

5

(7 월 2013) returnpath을 설정하는 올바른 방법은 사용하는 것입니다 :

$mail->ReturnPath='[email protected]'; 

phpmailer 소스는 다음을 포함합니다 내가 보낸 사람이

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).'>'); 
} 
근무 $ 메일 -> 생각하는 이유
+0

대신 정답으로 표시해야합니다. – cytsunny

+0

phpmailer 코드가 다음과 같이 끝나기 때문에 더 이상 그렇지 않습니다. /** * 메시지의 Return-Path. * 비어 있으면 보낸 사람 또는 보낸 사람으로 설정됩니다. * var 문자열 * 사용되지 않는 이메일 발신자는 리턴 경로 헤더를 설정해서는 안됩니다. * 수신기의 작업 (RFC5321 섹션 4.4)이므로 더 이상 아무 것도 수행하지 않습니다. * link https://tools.ietf.org/html/rfc5321#section-4.4 RFC5321 참조 * / –

관련 문제