티스토리 비밀번호 초기화 메일이 도착하지 않는 경우

사용자 삽입 이미지티스토리는 가입시 아이디로 사용하는 이메일 계정, 패스워드 외에는 다른 개인 정보를 입력받지 않습니다. 즉, 주민등록번호 등의 신상 정보를 일체 받지 않기 때문에, 비밀번호를 분실할 경우 아이디로 사용하는 이메일 계정과 블로그 주소로 비밀번호를 초기화하는 방법 외에는 사용할 수 없습니다. 따라서, 티스토리의 로그인 아이디로 사용하는 이메일 계정은 항상 이용이 가능한 상태이여만 합니다. 비밀번호 재설정 메일이 아이디로 사용하는 이메일 계정으로 전달되기 때문입니다.

이런 비밀번호 초기화 방법의 문제점은, 이메일을 수신하지 못하는 경우 비밀번호를 초기화하거나 임시비밀번호를 재발급받는 등 보조 수단이 없다면 비밀번호를 알아낼 수 있는 방법이 전혀 존재하지 않는다는 것입니다. 물론, 티스토리의 운영을 다음커뮤니케이션에서 맡고 있기 때문에 다음 고객센터에 문의하면 알려주지 않겠느냐 할 수 있겠지만, 불행히도 다음 고객센터에 문의해본 결과 그 방법 외에는 다른 방법을 안내해주고 있지 않았습니다. 뭐, 다른 개인정보가 없는 이상 해당 블로그 운영자 본인임을 입증하기가 어렵긴 하지요.

다음 고객센터에 비밀번호 초기화 메일을 수신하지 못하였다고 문의를 하면, 수신쪽의 스팸설정 상태 등을 확인해보라고 답변이 돌아옵니다. 스팸 차단 설정을 껐음에도 불구하고 수신이 되지 않았다 그러면, 다음쪽에서는 정상적으로 발송하였지만 수신쪽에서 못 받는 것 같다, 수신쪽의 서비스 업체에 문의해라는 식의 떠넘기기식 답변이 돌아오더군요. 스팸 차단 설정을 끌 수 있는 메일 서비스를 이용하면서 스팸 차단 설정을 해제할 수 있다는 것은 곧, 바이러스가 첨부된 메일을 제외하고는 모든 메일을 수신할 수 있다는 얘기가 되는데, 여기까지 와서도 수신자쪽에 문의하라는 답변은 솔직히 좀 무성의하다는 생각을 들게 할 수도 있습니다.

스팸차단을 하지 않는 계정이, 바이러스도 첨부되지 않은 ALL 텍스트인 티스토리 비밀번호 초기화 메일을 수신하지 못하는 이유는 단 한가지, 티스토리 비밀번호 초기화 메일의 리턴 패스(Return-path)에 문제가 있기 때문입니다.

2006/09/26 – [IT/메일] – Return-path:XXX@daum.net, 됐거든요.

티스토리 비밀번호 초기화 메일은 다음의 서버 중 app1.daum.net ~ app11.daum.net(12번 이후에도 있을 것 같긴 하지만 우선 확인한 것은 11번까지입니다) 사이에서 발송됩니다. 그런데 현재 파악하고 있는 11개의 도메인 중 외부에서 룩업(lookup)할 수 있는 도메인은 app1.daum.net (211.233.28.30) 단 한개입니다. app2.daum.net 부터 app11.daum.net은 모두 내부 호스트로써, 외부 DNS에서 해당 도메인을 조회할 수 없는 것들입니다. 그리고 티스토리 비밀번호 초기화 메일은 리턴 패스(Return-path)를 모두 apache@appN(1~11).daum.net으로 달고 옵니다.

사용자 삽입 이미지

이렇게 되면 무엇이 문제냐. 만약 수신 메일 서비스 업체에서 리턴 패스의 유효성을 체크하는 경우, 외부 DNS에서 룩업 가능한 @app1.daum.net을 제외한 나머지 서버에서 발송되는 메일은 전부 배달이 안됩니다. 애초에 커넥션 단계에서부터 끊어지기 때문에 메일 서버로의 접근도 제대로 완료되지 않고 반송 처리됩니다. 물론 반송 메일이 돌아갈 곳은 없겠지만, 적어도 서버 로그에는 남으며, 보통 SMTP 에러 코드 553 5.1.8을 발생시킵니다.

RFC 2821 – Simple Mail Transfer Protocol

Reply Codes by Function Groups
553 Requested action not taken: mailbox name not allowed

RFC 3463 – Enhanced Mail System Status Codes

5.XXX.XXX   Permanent Failure
A permanent failure is one which is not likely to be resolved by resending the message in the current form. Some change to the message or the destination must be made for successful delivery.

X.1.8   Bad sender’s system address
The sender’s system specified in the address does not exist or is incapable of accepting return mail.  For domain names, this means the address portion to the right of the “@” is invalid for mail.

물론, 리턴패스의 유효성(도메인만의 유효성)을 체크하는 메일 서비스 업체는 생각보다 많지 않습니다. 그러나 대부분 받는 쪽에서 리턴패스의 유효성을 체크하지 않고 메일을 수신해주다보니, 메일 에러 메시지는 간 곳 없이 사라지고, 메일이 리턴도 없이 사라졌을 때 보내는 쪽이나 받는 쪽이나 우왕좌왕하다보니 피해보는 건 결국 사용자뿐입니다. 인생은 랜덤이라고, 리턴패스에 @app1.daum.net이 걸리기만 기대하면서 수십차례 비밀번호 초기화 메일을 요청해야하는 건가요? 불행인지 다행인지 비밀번호 초기화 메일에 응답하기 전까지는 티스토리 비밀번호가 변경되진 않고 이전 비밀번호가 유지되긴 합니다만.

메일 데몬에서 발송 서버의 호스트와 도메인을 자동 감지하여 리턴패스를 생성해주는데, 이 리턴패스의 유효성 여부를 발송자쪽에서 미리 체크하지 아니하고 그냥 설정값대로 보내버리니 이런 문제가 발생하는 것입니다. 수신쪽에서는 리턴 패스가 엉망이더라도 그냥 받아주는 것이 발송자를 위함이 아니라, 오히려 잘못된 설정을 고칠 수 있는 기회를 박탈하는 것 밖에 되지 않음을 분명히 알아야합니다.

Sendmail을 사용하는 경우, 컴파일 전에는 /cf/cf 디렉토리에 있는 각 OS별 cf(예 : 리눅스용 cf 파일명 – generic-linux.cf) 파일에서 아래 부분 중 #Dj 이후 부분 즉 $w.Foo.COM 부분을 실제 존재하는 도메인으로 변경한 후, 해당 라인의 주석처리용 #을 제거해주고 컴파일하면 됩니다.

# my official domain name
# … define this only if sendmail cannot automatically determine your domain
#Dj$w.Foo.COM

컴파일된 이후 변경하려면 /etc/{Sendmail Dir}/sendmail.cf에서 같은 부분을 찾아 변경하고, /etc/{Sendmail Dir}/local-host-names 파일(버전 또는 설정에 따라 /etc/{Sendmail Dir}/sendmail.cw)에 실제 존재하는 도메인을 추가해주고(local-host-names 이 없는 경우 touch로 만들어주면 됩니다), 데몬을 내렸다가 재시작하면 적용됩니다.

* 메일 데몬 설정에 대한 내용은 제가 개발자가 아닌 관계로 오류가 있을 수 있으니 반드시 데몬 매뉴얼등을 참고하시기 바랍니다.

여튼 이런 문제는 발송자쪽에서 고쳐줘야 해결되는 문제입니다. ‘리턴패스 유효성 체크하는 수신쪽이 몇개나 된다고 굳이 그럴 필요까지 있냐’라고 생각한다면, ‘99.9%가 OEM을 쓰고 있기 때문에 0.1%의 리테일 사용자에게는 Windows Vista를 비싸게 팔아도 된다’라고 주장하는 한국MS의 어떤 분과 전혀 다를 바 없습니다. 어느날 갑자기 다음이나 네이버, Gmail 등이 한꺼번에 리턴패스 유효성 체크를 적용해서 대량으로 메일 전송이 실패하는 날이 와야만 고치실 것인가요? 설정 바꾸는 것이 그렇게 어렵지도 않은데.

그와 더불어, 티스토리쪽에서는 비밀번호 분실시 현재의 이메일주소와 블로그주소 인증을 통한 비밀번호 초기화뿐 아니라, 질문/답변 등의 다른 비밀번호 초기화 방법도 추가로 제공을 해야한다고 봅니다. 어떤 방법을 추가해야하는지에 대한 것은 다음쪽의 고민 사항이겠지만. ⓣ

* 다음의 appN.daum.net이라는 도메인은 차라리 애교 수준일지도 모르겠습니다. 어떤 업체는 발송 서버에 호스트는 물론 도메인도 할당하지 않고 IP 기반으로 쏴버리는 통에, 리턴패스가 root@localhost.localdomain으로 설정된 경우도 있었으니까요.

#추가 20071102
오늘 티스토리 공지사항을 확인하니 관련 문제가 수정되었다고 나와있더군요.
리턴패스를 apache@mail.tistory.com으로 변경하였고, mail.tistory.com은 당연히 외부에서 룩업할 수 있는 호스트로 위에 얘기한 사항이 해결되었습니다.

사용자 삽입 이미지
수고하셨습니다. ^^

2 댓글

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.