회사 업무, 거래처와의 계약서 전달과 같은 업무를 진행할 때 메일을 주로 이용한다.
메일 기능 중에서 '수신확인' 을 한번쯤은 이용해보았을 것이다.
말 그대로 상대방에게 메일을 전송한 이후에, 상대방이 언제 읽었는지 확인하는 용도로 사용하는 기능이다.
[이슈사항]
회사 업무 중, 특정시간에 '뉴스레터'를 전송하는 서비스가 있다.
한번에 다량의 이메일로 전송하여 담당자가 열람정도를 파악하려는 목적을 가지고 있었다.
특정한 사용자 이외에는 '수신확인'이 되지 않는다는 이슈가 발생했다.
'수신확인' 기능은 사용만 해봤었지, 어떻게 수신확인이 처리되는지 알지 못했다.
이번 기회에 어떤 원리로 수신확인이 처리되는지 알아보고자 한다.
▶ 수신확인 원리
일반적으로 이용하는 '수신확인' 기능은 메일 본문내용에 보이지 않는 이미지 태그(<img>)를 포함시켜서 전달한다.
해당 이미지 태그에는 '전송자 메일 서버의 주소'가 포함되어 있다.
우리가 메일을 확인하고자 제목을 누르고, 메일 본문을 확인하면 최하단 부분에 이미지 태그가 숨어있다.
숨어있는 이미지 태그를 확인하기 위해서는, 메일을 PC 다운로드하여 메일 클라이언트 프로그램(outlook, 썬더버드)으로 확인이 가능하다. (아래 이미지 참조)
<최종 결론>
이메일 수신확인은 HTML 문서를 불러들이는 과정에서 <img> 태그를 이용하여 메일을 전송한 서버에 '열람시간과 이메일 정보'를 전달한다.
메일을 전송한 회사의 메일서버에는 이메일 별로 '수신확인' 시간이 DB에 쌓이게 되는 구조.
회사 메일서버 정책마다 운용하는 방식은 다르겠지만 큰 틀에서 보자면 대부분 비슷한 형태이다.
▷ 수신확인 방지하는 방법 (네이버 메일 기준설명)
1. 좌측 체크박스[∨]에 체크한 이후, [ ··· ] 아이콘을 누르면 "PC에 저장하기" 가 표시된다.
2. .eml 파일을 outlook/썬더버드 (웹메일 프로그램)으로 열어준다.
다운받은 이메일을 열어보면, "메일 내용 + 수신확인용 이미지 파일"이 보여진다.
(해당 그림을 다운로드 받으면 수신확인 처리가 되는 구조)
수신확인용 이미지는 Explorer/Chorme 브라우저에서 실제 메일을 열었을 때는 사용자에게 보여지지 않는다.
▷ 부가정보
일반적으로 웹메일 클라이언트 프로그램(outlook, 썬더버드)은 사용자 메일계정에 수신된 모든 메일을 '로컬 공간'에 불러와서 열람하는 방식이다.
한마디로 메일함을 복사본으로 떠서, 메일 프로그램에서 확인하는 방식이라서 '수신확인' 처리가 되지 않는다.
(메일 프로그램이 보안상 이미지 파일 다운로드를 기본적으로 막고 있다)
'프론트엔드' 카테고리의 다른 글
[DI] 의존성 주입이란? (0) | 2021.07.16 |
---|---|
포워딩과 리다이렉트 차이점 정리 (0) | 2021.07.08 |
[자바스크립트] 함수의 파라미터 사용시 필수 주의사항! (0) | 2021.07.02 |
크롬 80 버전 - SameSite CORS 이슈 PHP (0) | 2021.05.08 |
ArrayList.remove() 사용시 주의점 (0) | 2020.07.07 |
댓글