2010-08-12 54 views
8

Có cách nào để thay đổi sự trở lại con đường sử dụng PHPMailerThay đổi Return-path sử dụng PHPMailer

tôi sau và nó đã không làm việc

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

Tôi đang sử dụng câu lệnh sau để gửi thư

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

Tôi nhận được email nhưng đường dẫn trả lại không thay đổi?

Trả lời

19

Sau đây đã giải quyết được sự cố, tôi đã điều chỉnh thuộc tính Người gửi và nó đã hoạt động đối với tôi. $mail->Sender = '[email protected]';

+0

Phải, nó hoạt động. Điều đó đặt Return-Path nội bộ. Cảm ơn –

1

Lý do có thể xảy ra nhất cho việc này là máy chủ thư bạn đang gửi thư này thực thi đường dẫn trả lại cụ thể. Đây thường là trường hợp cho webspace "được lưu trữ".

Trong trường hợp đó, bạn không có nhiều tùy chọn. Hãy thử nói chuyện với con hoster của bạn.

-2

Thay vì sử dụng các tiêu đề Trả lời-con đường, hãy thử này:

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

tôi sử dụng Reply-to tiêu đề và đã thành công rực rỡ ngay cả trên không gian chung.

+0

Tôi có hiểu lầm bạn không? Bạn có muốn thay đổi đường dẫn đến các thông báo và cảnh báo không thành công được gửi đến hoặc bạn có muốn thay đổi địa chỉ theo đó mọi người TRẢ LỜI? – SimonDowdles

+0

@webfac, nếu thư không được gửi email bị trả lại, tôi cần phải biết địa chỉ thư bị trả về và điều duy nhất tôi cho là bị trả lại là đường dẫn trả lời – Roland

+0

@Roland - Đúng vậy, tôi hiểu lầm bạn một lúc. Tôi thấy không có lý do tại sao các đường dẫn trả lời không hoạt động, không giới hạn tiêu đề này đang được đặt TRƯỚC tiêu chuẩn của bạn Để, Từ tiêu đề vv ?? Nếu vậy taht có thể rất tốt là câu trả lời. – SimonDowdles

5

cách chính xác để thiết lập returnpath (tính đến tháng 7 năm 2013) là bằng cách sử dụng:

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

nguồn PHPMailer chứa thông tin sau, đó là lý do tại sao tôi nghĩ rằng $ mail-> Sender làm việc

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

Điều này sẽ được đánh dấu là câu trả lời đúng để thay thế. – cytsunny

+0

Đây không còn là trường hợp, vì phpmailer tồn tại trong mã của nó: /** * Đường dẫn trả lại của thư. * Nếu trống, nó sẽ được đặt thành Từ hoặc Người gửi. * var string * không được chấp nhận Người gửi email sẽ không bao giờ đặt tiêu đề đường dẫn trả về; * đó là công việc của người nhận (RFC5321 phần 4.4), vì vậy điều này không còn làm bất cứ điều gì. * liên kết https://tools.ietf.org/html/rfc5321#section-4.4 Tham khảo RFC5321 * / –

Các vấn đề liên quan