2011-12-11 3 views
4

많은 클라이언트에게 메시지를 보내야합니다. 그러나 그들 중 많은 사람들이 다시 튀어 오릅니다. 나는 그 이메일 주소의 목록을 원한다. 내 Java 응용 프로그램에서 해당 목록을 가져올 수 있습니까?Java 메일 반송 메일 주소

+0

에서 봉투에서 이 너무 광범위하다고 .... –

+0

는 그 – clyfe

답변

3

분석을 위해 모든 반송 된 이메일을 캡처하는 특수 이메일 주소 [email protected]을 만드십시오.

은 보낸 이메일에 다음과 같은 헤더를 추가

Return-Path: <[email protected]> 

지금 이메일 다시 그 주소로 반송 할 것입니다.

예를 들어 IMAP (또는 알림 인터페이스를 통해 서버에 따라 다름)과 같이 자바 프로그램의 해당 주소에서 이메일을 읽고, 이메일 주소를 보면 데이터베이스에 기록합니다.

뉴스 레터 앱을 사용하는 경우 처음부터 이메일을 차단하지 말고 반송 횟수를 계산하고 3-4 회 반송 한 후에 차단해야합니다 (일부 사람들은 이메일을 반송 할 때 반송하도록 설정했습니다. 그래서 그들은 특별한 보살핌을 필요로합니다.) 는 SMTP 봉투에 표시 할 보낸 사람 주소를 설정

void com.sun.mail.smtp.SMTPMessage.setEnvelopeFrom(String from) 

:

+0

감사 clyfe에 동의하지 않는다. 하지만 내 응용 프로그램이 자동으로 그렇게하고 싶습니다. – user1092110

+0

"자동"이란 의미는 무엇입니까? 그것이 완료된 방법이고, 당신은 그것을해야합니다! – clyfe

+0

덕분에 많은 clyfe, 내가 해냈어! 당신의 도움을 주셔서 대단히 감사합니다. 그것의 완벽하게 작동합니다. 하지만 여전히 문제가 있습니다. 애플리케이션을 실행하면 바운스 된 메일 (읽지 않은 메일과 읽지 않은 메일 모두 읽음)을 읽습니다. 내 응용 프로그램에서 새 메시지 만 읽도록하고 싶습니다. 내가 도와 줄 수 있겠 니? – user1092110

1

나는은 JavaMail 문서를 참조를 참조하십시오

SMTPMessage msg = new SMTPMessage(getSession()); 
msg.setEnvelopeFrom(bounceAddr); 

를 사용하여이 문제를 해결한다. 이것은 메시지 자체에 나타나는 보낸 사람 주소와 다릅니다. 봉투 보낸 사람 주소는 일반적으로 오류를보고 할 때 사용됩니다. 자세한 내용은 RFC 821을 참조하십시오.

설정하면 mail.smtp.from 속성을 무시합니다.

매개 변수 : 주소