2012-03-29 2 views
4

반송 메일을 확인하는 데 Swift Mailer를 사용하고 있습니다. 반송 메일을위한 별도의 계정을 만들었지 만 반송 경로를 설정하면 해당 계정으로 반송 메일을 보낼 수 없습니다. 정상입니까 아니면 코드 오류입니까?Gmail은 발신자가 반송 경로 값을 설정하여 반송 메일을 수신하도록 허용하지 않습니까?

$verp = 'bounces-' . str_replace('@', '=', $row['ReplyTo']) . '@gmail.com'; 

$message = Swift_Message::newInstance() 
    ->setSubject($row['Subject']) 
    ->setFrom(array($row['ReplyTo'] => $row['FromName'])) 
    ->setReturnPath($verp) 
    ->setBody($html, 'text/html') 
    ->addPart($txt, 'text/plain'); 

나는 지금 VERP를 사용하고 있는데, 배달 오류를 찾은 것 같습니다. 그러나 반송 메일 계정으로 메시지를 보내지 않으셨습니까?

답변

5

예, 정상입니다. Gmail의 SMTP 서버를 통해 이메일을 보낼 때 반송 경로가 보내려는 계정이됩니다.

유일한 해결책은 귀가 경로를 설정할 수있는 제공 업체를 검색하는 것입니다.

+0

감사하지만, 허용하지 않지만 헤더에 두 개의 반환 경로가 있습니다. 다른 공급자에게도 똑같은가요? 그렇지 않다면 어떻게하면 음계를 사용할 수 있습니까? (Verp는 실패한 수신자 메일을 확인하고 반송 경로를 사용하지만 반송 경로는 반송 메일을 보낼 주소이며 어떻게 공존 할 수 있습니까? 감사합니다) –

+0

다른 제공 업체 (특히 메일 침팬지, etc)는 리턴 경로를 설정할 수 있어야합니다. 그러나 커밋하기 전에 테스트하는 것이 가장 좋습니다. VERP가 작동하려면 반송 이메일 수신을 위해 계정을 사용하도록 VERP를 설정할 수 있습니까? – F21

+0

그냥 수신 이메일을 보내는 계정을 사용하도록 설정합니다. <== 수신인이 저에게 회신 할 수 있고,이 계좌로 메일을 보낼 것이기 때문에 이것은 문제가 있습니다. –

0

RFC 5321 section 4.4에 정의 된대로의 SMTP 규격의 요구 사항이다, Gmail 계정 문제가 아니다 :

메시지 원산지 SMTP 시스템이 이미 반환 경로 헤더 필드를 포함하는 메시지를 전송해서는 안된다.

또한 SMTP 시스템 모두에 메시지 내용을 검사 안하면서 어떤 오는 길 헤더를 제거해야합니다 을 SMTP 몇 가지 다른 상황에서, 게이트웨이 (즉 그들이 헤더에 보이지 않는) 것을 말한다. 요컨대, 귀가 경로 헤더를 직접 추가하는 경우, 잘못하고있는 것입니다.

수신 메시지에 표시되는 회신 경로 헤더는 이 아니며 발신자는이 아니며 메시지를 배달하는 데 사용 된 SMTP MAIL FROM 명령에서 파생되었습니다. 이 주소는 메시지의 보낸 사람 주소 헤더와 아무 것도 공유 할 필요가 없으며 전달 실패시 메시지를 보내야하는 위치, 즉 VERP 주소를 정확히 원하는 주소를 지정합니다.

SwiftMailer에 대해서는 잘 모르겠지만 PHPMailer에서는 Sender 속성을 설정하여 SMTP 봉투 보낸 사람 값을 설정할 수 있습니다. 수신자는이를 수신시 리턴 경로 메시지 헤더로 변환합니다.