문제

우편 신청서에서 다음 헤더가있는 이메일을 보내고 있습니다.

FROM: marketing@customer.com
TO: subscriber1@domain1.com
Return-PATH: bouncemgmt@ourcompany.com

우리가 직면하고있는 문제는 일부 이메일 서버가 메시지를 즉시 튀어 나와서 Bounce MGMT 서버에 대신 Bounce Or 또는 Reverse Path (marketing@customer.com)를 사용한다는 것입니다. 우리는 헤더에서 모든 바운스를 잡을 수 있다면 반환 경로와 동일하게 회신을 헤더로 수정하는지 알고 싶습니다.

다른 아이디어가 환영 받습니까?

우리는 다음 문서를 참조로 사용하고 있습니다.verp RFC 바운스 메시지

SMTP 로그 구문 분석 튀김

편집 1 :이 결의를 얻을 수 있는지 확인하기 위해 몇 비트의 정보가 더 있습니다.

이메일 서버가 메시지를 전달하는 시점에서 회신 대과 반환 경로를 사용하도록 선택하는 시점에서 알고 싶습니다. 첫 번째 SMTP 서버가 메시지를 전달하면 거부되면 응답으로 보내지 만 한 번의 홉이 발생하면 리턴 프로스로 보냅니다.

도움이 되었습니까?

해결책

간단한 예로 시작하겠습니다. 이메일 목록이 있다고 가정 해 봅시다. RFC2822 콘텐츠.

From: <coolstuff@mymailinglist.com>
To: <you@yourcompany.com>
Subject: Super simple email
Reply-To: <coolstuff-threadId=123@mymailinglist.com>

This is a very simple body.

이제 메일 링리스트에서 보내겠다고 가정 해 봅시다. verp (또는 다른 반환 경로를 사용하는 다른 바운스 추적 메커니즘). 그것이 반환 경로를 가질 것이라고 가정 해 봅시다 coolstuff-you=yourcompany.com@mymailinglist.com. SMTP 세션은 다음과 같습니다.

{S}220 workstation1 Microsoft ESMTP MAIL Service
{C}HELO workstation1
{S}250 workstation1 Hello [127.0.0.1]
{C}MAIL FROM:<coolstuff-you=yourcompany.com@mymailinglist.com>
{S}250 2.1.0 me@mycompany.com....Sender OK
{C}RCPT TO:<you@yourcompany.com>
{S}250 2.1.5 you@yourcompany.com 
{C}DATA
{S}354 Start mail input; end with <CRLF>.<CRLF>
{C}From: <coolstuff@mymailinglist.com>
To: <you@yourcompany.com>
Subject: Super simple email
Reply-To: <coolstuff-threadId=123@mymailinglist.com>

This is a very simple body.
.

{S}250 Queued mail for delivery
{C}QUIT
{S}221 Service closing transmission channel

여기서 {c} 및 {s}는 각각 클라이언트 및 서버 명령을 나타냅니다.

수신자의 우편물은 다음과 같습니다.

Return-Path: coolstuff-you=yourcompany.com@mymailinglist.com
From: <coolstuff@mymailinglist.com>
To: <you@yourcompany.com>
Subject: Super simple email
Reply-To: <coolstuff-threadId=123@mymailinglist.com>

This is a very simple body.

이제 "S에서"다른 "S를 설명해 봅시다.

  1. 리턴 경로 (때로는 역 경로, 봉투 발신자 또는 봉투라고도 함 -이 용어는 모두 상호 교환 적으로 사용할 수 있음)는 SMTP 세션에서 사용되는 값입니다. MAIL FROM 명령. 보시다시피, 이것은 메시지 헤더에서 발견되는 것과 동일한 값 일 필요는 없습니다. 수신자의 메일 서버 만 이메일 상단에 반환 경로 헤더를 추가해야합니다. SMTP 세션 동안 실제 반환 경로 발신자를 기록합니다. Return-Path 헤더가 이미 메시지에 존재하는 경우 해당 헤더가 제거되어 수신자의 메일 서버로 교체됩니다.

SMTP 세션 중에 발생하는 모든 바운스는 반환 경로 주소로 돌아 가야합니다. 일부 서버는 모든 이메일을 수신 한 다음 수신자의 사서함에 전달할 수있는 무료 스레드가있을 때까지 로컬로 대기열 할 수 있습니다. 수신자가 존재하지 않으면 녹음 된 반환 경로 값으로 다시 튀어 나와야합니다.

모든 메일 서버 가이 규칙에 순종하는 것은 아닙니다. 일부 메일 서버는 주소에서 다시 튀어 나옵니다.

  1. From 주소는 From Header에서 발견 된 값입니다. 이것은 메시지의 출신이되어야합니다. 이것이 대부분의 우편 클라이언트에서 "From"으로 보는 것입니다. 이메일에 답장 헤더가없는 경우 모든 사람 (Mail Client) 답글은 From 주소로 돌아 가야합니다.

  2. 응답 헤더는 발신자 (또는 발신자의 소프트웨어)가 추가합니다. 모든 인간 대답도 해결되어야합니다. 기본적으로 사용자가 "답장"을 클릭하면 응답 값은 새로 구성된 이메일의 수신자로 사용되는 값이어야합니다. 회신 값은 서버에서 사용해서는 안됩니다. 클라이언트 측 (MUA) 사용을위한 것입니다.

그러나 알 수 있듯이 모든 메일 서버가 RFC 표준 또는 권장 사항에 순종하는 것은 아닙니다.

바라건대 이것은 상황을 정리하는 데 도움이 될 것입니다. 그러나 내가 놓친 것이 있으면 알려 주시면 대답하려고합니다.

다른 팁

생각하는 또 다른 방법 Return-Path vs Reply-To 그것을 달팽이 메일과 비교하는 것입니다.

메일로 봉투를 보내면 반송 주소. 수신자가 존재하지 않거나 우편물을 거부하는 경우 우체국 장은 봉투를 반환 주소로 다시 반환합니다. 이메일을 위해 반송 주소 입니다 Return-Path.

봉투 내부에는 편지와 서신 내부에 수령인이 "서신을 보내도록 지시 할 수 있습니다. 예제 주소". 이메일을 위해 예제 주소 입니다 Reply-To.

본질적으로 우송료 반환 주소는 SMTP와 비슷합니다. Return-Path 헤더 및 SMTP Reply-To 헤더는 편지에 포함 된 응답 지침과 유사합니다.

질문의 제목이기 때문에 여기에 온 사람들을 위해 :

나는 사용한다 Reply-To: WebForms로 주소. 누군가가 양식을 작성하면 웹 페이지는 자동 이메일을 페이지 소유자에게 보냅니다. 그만큼 From: 자동 메일 발신자의 주소이므로 소유자는 WebForm에서 나온다는 것을 알고 있습니다. 하지만 Reply-To: 주소는 사용자가 양식으로 작성한 주소이므로 소유자는 답장을 칠 수 있습니다.

redmine 인스턴스가 전송하는 이메일에 반환 경로 헤더를 추가해야했습니다. Greatwolf에 동의합니다. 전송자만이 올바른 (기본값이 아닌) 반환 경로를 결정할 수 있습니다. 사례는 다음과 같습니다. 전자 메일은 기본 이메일 주소와 함께 전송됩니다. admin@yourcompany.com이지만 실제 사용자가 작업을 시작하는 실제 사용자가 바운스 이메일을 받기를 원합니다. 왜냐하면 그는 잘못된 수신자 이메일을 수정하는 방법을 아는 사람이되기 때문입니다. (그리고 다른 고양이가 채찍질을하는 응용 프로그램의 간주가 아닙니다 :-)). 우리는 이것을 사용하며 Application Server의 Exim과 최종 회사 메일 서버로 Zimbra와 완벽하게 잘 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top