이메일은 어떻게 상대에게 도착할까? SMTP,스팸 필터,SPF/DKIM
이메일을 보내면 몇 초 만에 지구 반대편에도 도착합니다. 그런데 어떤 메일은 스팸함으로 빠지고, 분명 보냈는데 상대가 못 받았다는 일도 가끔 생깁니다. 메일이 오가는 과정에 우리가 모르는 단계가 여럿 숨어 있기 때문입니다.
이번 글에서는 이메일이 어떻게 상대에게 전달되는지, 그리고 왜 어떤 메일은 스팸으로 분류되는지를 코드 없이 풀어 보겠습니다.
이메일은 우체국 릴레이로 전달됩니다 #
이메일은 보내는 사람의 컴퓨터에서 받는 사람에게 곧장 날아가지 않습니다. 중간에 메일 서버들이 우체국처럼 한 단계씩 넘겨받으며 전달합니다. 내가 메일을 보내면 우선 내 쪽 메일 서버로 가고, 그 서버가 상대 도메인의 메일 서버를 찾아 넘겨주는 식입니다. 이렇게 서버끼리 메일을 주고받는 약속을 SMTP라고 부릅니다.
편지를 부치는 과정과 닮았습니다. 내가 우체통에 넣은 편지는 동네 우체국을 거쳐 상대 지역 우체국으로 옮겨지고, 그곳에서 받는 사람의 우편함에 들어갑니다. 이메일도 보내는 서버에서 받는 서버로 옮겨진 뒤, 상대의 받은 편지함에 담깁니다.
받는 쪽은 정말 보낸 사람이 맞는지 확인합니다 #
편지와 이메일에는 큰 차이가 하나 있습니다. 이메일은 보내는 사람 주소를 손쉽게 위조할 수 있다는 점입니다. 봉투에 남의 이름을 적어 보내듯, 실제로는 내가 아닌데 내 주소에서 온 것처럼 꾸민 메일을 만들 수 있습니다. 스팸과 사기 메일이 흔히 쓰는 수법입니다.
그래서 받는 쪽 메일 서버는 도착한 메일이 정말 그 도메인에서 보낸 것이 맞는지 확인하려 합니다. 이 확인을 돕는 장치가 다음에 설명할 SPF와 DKIM입니다.
SPF와 DKIM은 발신자의 인감입니다 #
SPF는 이 도메인의 메일을 보낼 수 있는 서버는 이것들뿐이라고 미리 적어 둔 목록입니다. 받는 서버는 도착한 메일이 그 목록에 있는 서버에서 왔는지 대조합니다. DKIM은 메일에 도메인의 서명을 붙이는 방식입니다. 받는 서버가 그 서명을 확인해, 내용이 중간에 바뀌지 않았고 정말 그 도메인에서 보냈는지를 검증합니다.
두 가지 모두 그 도메인의 DNS에 기록해 둡니다. 앞서 도메인과 DNS를 다룰 때, DNS가 도메인에 관한 여러 정보를 담는 안내판 같다고 했습니다. SPF와 DKIM도 그 안내판에 적어 두는 항목입니다. 그래서 새 도메인으로 메일을 보내기 시작할 때 이 설정을 빠뜨리면, 멀쩡한 메일도 의심을 받습니다.
스팸 필터는 종합 점수로 판단합니다 #
스팸 여부는 한 가지 기준으로 정해지지 않습니다. 받는 서버는 발신자 인증을 통과했는지, 보낸 도메인의 평판이 어떤지, 내용에 스팸에서 자주 보이는 표현이 있는지, 받는 사람들이 비슷한 메일을 신고한 적이 있는지를 종합해 점수를 매깁니다. 그 점수가 일정 선을 넘으면 스팸함으로 보냅니다.
그래서 똑같은 내용이라도 어떤 도메인에서 보내느냐에 따라 결과가 달라집니다. 정성껏 쓴 마케팅 메일이 스팸함에 빠지는 일도, 인증이나 평판 같은 요소가 함께 작용한 결과인 경우가 많습니다.
그래서 메일이 잘 도착하게 하려면 #
메일이 받은 편지함에 안정적으로 닿게 하려면, 먼저 도메인에 SPF와 DKIM을 제대로 설정해 두는 것이 기본입니다. 그다음은 평판입니다. 한꺼번에 너무 많은 메일을 쏟아 내거나 신고를 자주 받으면 평판이 깎여, 이후 메일까지 스팸으로 밀려나기 쉽습니다.
내용도 무시할 수 없습니다. 수신 거부를 분명히 안내하고, 받는 사람이 원해서 신청한 메일만 보내는 것이 결국 도착률을 지키는 길입니다.
왜 비개발자가 알면 일이 편해지는가 #
- 발송 사고를 이해합니다. 메일이 안 갔다거나 스팸함에 빠졌다는 문의가 들어올 때, 어느 단계의 문제인지 가늠하고 설명할 수 있습니다.
- 설정 요청을 읽습니다. 개발자가 SPF나 DKIM을 설정하자고 할 때, 그것이 발신자를 증명하는 장치임을 알면 대화가 빨라집니다.
- 마케팅 메일을 지킵니다. 도착률이 인증과 평판에 달려 있다는 점을 알면, 무리한 대량 발송 대신 평판을 챙기는 방향으로 캠페인을 설계할 수 있습니다.
마무리 #
오늘은 이메일이 메일 서버들의 릴레이로 전달되고, 받는 쪽이 SPF와 DKIM으로 발신자를 검증하며, 스팸 필터가 여러 요소를 종합해 판단하는 흐름을 살펴봤습니다. 발신자를 손쉽게 위조할 수 있기 때문에 이런 검증 장치가 필요하다는 점이 핵심입니다.
메일 내용을 지키는 암호화가 궁금하다면 주소창의 자물쇠는 무엇을 지키는가를, SPF와 DKIM이 기록되는 DNS가 무엇인지 다시 보고 싶다면 도메인,DNS,SSL — 사이트가 갑자기 죽는 이유를 함께 읽어 보시길 권합니다.