2012-12-12 2 views
1

메시지를 성공적으로 수신하면 MDN (Message Disposition Notifications)을 반환하도록 구성된 특수 전자 메일 서버 집합과 함께 작업하고 있습니다. 이 서버 중 하나에 메시지를 보내고 사용자의 POP3 INBOX 폴더에서 반환 된 MDN을 검색하는 데 사용되는 Javamail 클라이언트를 개발했습니다.Javamail과 DispositionNotification 사용

사용자의받은 편지함에서 검색 한 MimeMessage에서 처분 알림 본문 부분을 가져 오는 방법은 무엇입니까? 나는 com.sun.mail.dsn.DispositionNotification 클래스를 발견했지만 제대로 생성자를 사용하여 DispositionNotification의 인스턴스를 생성하는 방법의 예를 보지 못했다 :

DispositionNotification(InputStream) 

내가의 InputStream을 얻을 수있을 것입니다을 MimeMessage에서 DispositionNotification을 만드는 데 사용합니까?

Message[] msgs = getInboxMessages();  
DispositionNotification dn = new DispositionNotification(msgs[0].getInputStream(); 

아니면 다른 방법이 있습니까?

답변

0

이러한 메시지의 getContent 메서드는 보고서의 일부에 액세스 할 수있는 MultipartReport 개체 (일반적인 MimeMultipart 개체의 특수 하위 클래스)를 반환해야합니다. MultipartReport.getReport() 메소드는 보고서의 유형에 따라 DeliveryStatus 또는 DispositionNotification 객체를 반환합니다.

+0

@Bill_Shannon 이것은 올바른 방향으로 나를 가리키는 데 매우 도움이되었습니다. 감사! – user1899331

+0

MultipartReport report = (MultipartReport) msgs [i] .getContent(); DispositionNotification dn = (DispositionNotification) report.getReport(); if (msgs [i] .getContentType(). contains ("처분 알림")) InternetHeaders inetHeaders = dn.getNotifications(); 열거 헤더 = inetHeaders.getAllHeaders(); String msgId = inetHeaders.getHeader ("Original-Message-ID", ";"); String disp = inetHeaders.getHeader ("Disposition", ";"); } – user1899331