In-Reply-To
과 References
의 조합을 사용하여 전자 메일이 다른 전자 메일의 회신인지 알 수 있습니다.
모든 이메일에는 1에 따라 Message-ID
이라는 헤더에 고유 한 ID가 있습니다. 모든 이메일의 상위 항목을 추적 할 수 있습니다.
모든 클라이언트 (Outlook, Thunderbird)에서 작동 중입니다.
예제를 사용하겠습니다.
1- 첫 번째로 보낸 이메일의 헤더 (메일 서버 또는 코드에서)는 ID (Message-ID)
을 전송합니다. 이메일 원본을 열면 상단 섹션에 표시됩니다 :
... // You (your code) send:
Message-ID: <[email protected]>
...
당신은 당신의 프로그램이 Message-ID
을 유지해야합니다. 후속 회신은이 ID
을 참조합니다.
2- 고객이 이메일 1에 회신합니다. 고객은 자신의 Message-ID
에 추가로이 회신 메일을 알려주도록 crucial header
을 전송합니다.
... // Client(Thunderbird) send:
Message-ID: <[email protected]>
In-Reply-To: <[email protected]>
...
두 번째 이메일을받을 때 메일의 ID
(1) 메일 (2)의 In-Reply-To
헤더에 있기 때문에 당신이 보낸 이전 이메일을 추적하는 것은 쉬울 것이다.당신이 당신의 코드 내에서 다시 메일을 회신 할 경우
3, 당신은 단지 In-Reply-To
헤더에 메일 (2)의 Message-ID
을 둘 필요가 메일의 Message-ID
(1) 및 메일 (2)에서 References
헤더. 그래서 클라이언트는 체인을 올바르게 이해할 것입니다. 이 헤더에 의해
... // You (your code) send:
Message-ID: <[email protected]>
In-Reply-To: <[email protected]>
References: <[email protected]> <[email protected]>
...
, 당신이 이메일은 메일 (2)에 대한 응답이라는 클라이언트를 이야기하고 조상 메일 (1) 및 메일 (2).
나는 그들과 함께 일하고 그것에 대해 읽었으며 작동 중이다. 이제 내 문제는 답장에서 인용 된 텍스트가 아닌 마지막 전자 메일의 텍스트를 얻는 것이다. (우리는 자체 발권 시스템을 운영하고 있으며 각 전자 메일에 대한 설명을 작성합니다.)
그래,이게 내가 생각했던거야. 특히 회신을 확인하는 데있어. 모든 웹 메일/이메일 클라이언트가 다르기 때문에 데이터를 다르게 보내는 것이 어렵습니다. 감사! –
가끔 헤더가 있습니다. 헤더는 in-reply-to 또는 비슷한 것을 읽고 원래 메시지의 메시지 ID를 포함합니다. –
@SteveSmith, 클라이언트가 보낼 필요는 없습니다. 당신은 종종 그것을 보지만 항상 그런 것은 아닙니다. – Brad