2011-09-09 5 views
3

나는 이것이 어떻게 작동하는지 이해하려고 노력하고있다.

정상적으로 전자 메일을 보내고받는 사람이 없거나 다른 오류가 발생하면 오류 및 상태에 대한 정보가 포함 된 전자 메일이 다시 전송됩니다. 시간이 좀 걸릴 수 있습니다.

이 질문에 대한 답변을 얻으려면 smtplib이이 오류를 어떻게 잡을 수 있습니까? smtplib을 사용하여 전자 메일을 보내면 결코 SMTPRecipientsRefused 예외가 발생하지 않습니다. 단지 이메일을 보내고 나중에 잘못된 이메일 주소를 의도적으로 사용하면 답장받는 사람의 전자 메일 상자에 "다음받는 사람에게 배달 실패 :"오류가 표시됩니다. 잘못된 전자 메일 주소에서 내 전자 메일 주소 데이터베이스를 정리하려고 할 때이 점이 도움이되지 않습니다.

는 확인 기능이 있습니다 :원격 SMTP 서버와 장고를 사용하여 SMTPRecipientsRefused 예외를 잡는 방법은 무엇입니까?

SMTP.verify(address) 

하지만이 실제 옵션이라고 생각하지 않습니다. 참고 : VRFY의 python docs에서
"스팸 발송자를 차단하기 위해 많은 사이트가 SMTP VRFY를 해제합니다."

내 테스트 환경에 대한 참고 사항 : 저는 django와 원격 SMTP 서버 (gmail/apps)를 사용하고 있습니다.
Q1 : 오류를 잡을 수없는 이유는 무엇입니까? 로컬 서버를 사용해야합니까?

Q2 : 답장받는 사람 전자 메일 상자에서 실제 오류 전자 메일을 구문 분석 할 때를 제외하고는 어떻게해야합니까?

문제에 대한 의견을 미리 보내 주셔서 감사합니다.

답변

0
  1. 네, 그렇기 때문에 예외가 발생하지 않습니다. 로컬 서버를 사용하는 것은 도움이되지 않습니다. 왜냐하면 주어진 이메일 주소가 유효한지 로컬 서버가 모르기 때문입니다. 대상 도메인의 MX 메일 서버에만 단서가 있으며 훨씬 나중에 알려줄 동기가 없습니다.
  2. 아닙니다. 다른 대답에서 알 수 있듯이 바운스 메시지를 가져 오는 데 도움이되는 Python의 imaplib 또는 poplib을 사용해보십시오.

응용 프로그램이 무엇인지 알지 못하지만 관련 웹 사이트가있는 경우 다른 옵션은 정기적으로 로그인시 사용자에게 이메일 주소 확인/업데이트를 요청하는 것입니다.

+0

답변 해 주셔서 감사합니다. 나는 poplib 바운스 파서를 만들거야! – michael

0

그래, 불행히도 SMTP VRFY는 스팸 발송자가 유효한 이메일을 찾기 위해 서버를 빠르게 검색하는 데 사용할 수 있기 때문에 대부분의 서버에서 수년간 비활성화되어 있습니다. 당신은 손으로 그것을해야하거나 이메일을 다쳤을거야. python-imap가 도움이 될 것입니다. 행운을 빕니다!

관련 문제