2017-11-06 1 views
-2
아래

내가Mail Mail이 사무실 O365에서 오는 경우 Java Mail Api MimeMessage 및 Multipart가 첨부 파일을 검색 할 수 없습니까?

Properties props = new Properties(); 
       Session session = Session.getDefaultInstance(props, null); 
       try { 
        MimeMessage mimeMessage = new MimeMessage(session, mailFileInputStream); 
        Object content=mimeMessage.getContent(); 
        BodyPart messagePart = null; 
        int count = ((Multipart) content).getCount(); 
        //count is always =2 
        messagePart = ((Multipart) content).getBodyPart(0); 
내가 messagePart = ((멀티 파트) 내용)와 시도

을 시도하고 코드 조각입니다 .getBodyPart (1); 카운트가 2이지만 첨부 파일을 얻을 수 없으므로

아래의 메일은 O365에서 오는 메일 조각이며 여기 파일 객체로 전달됩니다.

securtiy 이유로 인해 여기에 모두 붙여 넣을 수 없습니다.

Some text above here 
MIME-Version: 1.0 

----boundary_1_768a7606-5356-4f2e-9cb9-4bcd2d468832 
Content-Type: multipart/alternative; 
    boundary="--boundary_0_2af5fb85-1e87-4c34-86ad-3a52ef763b25" 

----boundary_0_2af5fb85-1e87-4c34-86ad-3a52ef763b25 
Content-Type: text/plain; charset="iso-2022-jp" 
Content-Transfer-Encoding: 7bit 

-- Sent by an external sender -- 

----boundary_0_2af5fb85-1e87-4c34-86ad-3a52ef763b25-- 

----boundary_1_768a7606-5356-4f2e-9cb9-4bcd2d468832 
Content-Type: multipart/mixed; 
    boundary="--boundary_2_69f808df-a154-4593-ba90-6c3a570d77c8" 

----boundary_2_69f808df-a154-4593-ba90-6c3a570d77c8 
Content-Type: application/octet-stream; name="attachment.csv" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment 

encryted code is comes here 

----boundary_2_69f808df-a154-4593-ba90-6c3a570d77c8-- 

----boundary_1_768a7606-5356-4f2e-9cb9-4bcd2d468832-- 

은 내가 attachment.csv 파일

+0

더 자세한 정보가 필요합니다. "얻을 수 없다"는 것은 정확히 무엇을 의미합니까? 무슨 일이야? 무슨 일이 일어날 것으로 예상됩니까? JavaMail FAQ를 읽었습니까? 특히, [첨부 파일을 읽는 것에 관한이 항목] (https://javaee.github.io/javamail/FAQ#readattach)? Office365를 사용하는 경우 파일에서 메시지 콘텐츠를 읽는 이유는 무엇입니까? –

답변

0

당신이 상대하고있는 메시지는 당신이 기대하는 것보다 더 복잡한 구조를 가지고를 추출해야합니다. 모든 메시지 부분을 반복하고 "첨부 파일"을 추출하는 방법에 대한 예제는 msgshow.java sample program을 참조하십시오.

관련 문제