이메일을 보내는 데 왜 이렇게 비쌀까?

1 week ago 6

이메일을 직접 보내 본 경험에서 어려웠던 부분은 발송 코드 구현보다 여러 메일 서비스의 스팸 필터를 통과하는 일이었음 SMTP 발송과 DNS 기반 발신자 인증을 구현하자 Gmail에는 정상적으로 도착했지만, Microsoft Outlook 사용자에게는 스팸함에서도 메일이 보이지 않았음 메일 서비스마다 발신자 평판을 판단하는 방식이 다르며, 도메인이나 개별 IP뿐 아니라 IP 주소 대역 전체를 중요하게 취급하는 곳도 있는 것으로 보임 이런 필터에서는 고정 IP를 문제없이 사용하더라도, 같은 클라우드 업체의 다른 사용자가 스팸을 보내면 주소 대역 전체가 차단될 가능성이 있음 폭넓은 수신처에 메일을 전달하려면 자체 IP 주소 대역과 상당한 일일 발송량이 필요할 수 있다고 봄. 다만 개인적 탐색에서 얻은 추정이며, 서비스별 필터의 내부 동작을 확인한 결과는 아님 발송 자체는 얼마나 어려운가 출발점은 이메일 1,000통에 15달러를 청구할 수 있는 이유와 제3자 업체가 꼭 필요한지에 대한 의문이었음 TCP 25번 포트로 연결하고 SSL 핸드셰이크를 거쳐 데이터를 보내는 작업은 본질적으로 HTTPS 요청과 비슷하며, 대부분의 개인용 컴퓨터도 이런 작업을 초당 수천 번 처리할 수 있음 Gmail의 탭형 받은편지함 팀에서 일한 경험만으로는 명확한 답을 얻지 못했음 직접 구현할 때는 기존 Haskell과 C 코드를 활용함 OpenSSL로 HTTPS 요청을 보내는 코드와 HTTP 1.1 메시지 처리 코드가 이미 있었고, 필요에 따라 OpenSSL이나 SQLite 같은 C 코드를 호출하는 환경이었음 이를 이메일 발송에 맞게 바꾸는 작업 자체는 예상보다 어렵지 않았음 SMTP 구현과 첫 번째 스팸 판정 원래의 SMTP는 초기 HTTP 1.1처럼 평문 메시지를 주고받는 프로토콜임 발신 측은 HELO, MAIL FROM, RCPT TO, DATA, QUIT 같은 명령을 보내고, 수신 측은 220, 250 같은 상태 코드로 응답함 예시의 초기 프로토콜에서는 이메일 한 통에 7번의 왕복 통신이 필요했으며, 당시에는 TLS도 없어 암호화되지 않았음 평문 메시지를 주고받는 코드를 구현해 자신에게 이메일을 보내는 데 성공했지만, 첫 메일은 스팸함에 들어갔음 발신자 인증을 추가하자 Gmail에는 도착함 원래 SMTP에는 발신자 사칭을 막을 수단이 부족했으며, 누구나 원하는 발신 도메인과 주소를 주장할 수 있었음 도메인의 DNS에 TXT 레코드를 ...

Read Entire Article




피플앤툴즈 네트워크
🛍 샵