2017-02-27 1 views
0

Mac 메일 서비스를 사용한 후이 문제에 직면하고 있습니다.
Outlook 또는 Gmail을 사용하는 경우 첨부 파일을 읽을 수 있습니다.Javax mail api : 현재 첨부 파일이 있더라도 part.getdispotion() = null이됩니다.

메일에서 첨부 파일을 읽는 코드 조각. 맥 메일 링 서비스에 대한

if (contentType.contains("multipart")) 
     { 
      Multipart multiPart = (Multipart) msg.getContent(); 
      int partCount = multiPart.getCount();          

      for (int j = 0; j < partCount; j++) 
      { 
       BodyPart part = multiPart.getBodyPart(j);           
       if (Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition())) // getting null here 
       { 
        attachmentProcessing = true; 
        InputStream is; 
        is = part.getInputStream(); 
        f = new File(filePath + part.getFileName()); 
        fileArray.add(f); 
        FileOutputStream fos = new FileOutputStream(f); 
        byte[] buf = new byte[4096]; 
        int bytesRead; 
        while((bytesRead = is.read(buf))!=-1) { 
         fos.write(buf, 0, bytesRead); 
        } 
        fos.close(); 
       }          
      } 
     } 

부분의 세부 정보 :

텍스트/일반; charset = us-ascii
part.getDisposition() = null
multipart/mixed; 경계 = "애플 메일 = _C50D7E2D-27A1-4449-BAA3-5DC9D1E522AF"

에 대한

다중/혼합; 경계 = "---- = _ NextPart_000_0033_01D28DC6.C9D0C8B0"
text/plain; name = HashTagList.txt; 캐릭터는

답변

0

처분이 선택적 ASCII가 우리에게
part.getDisposition() = 부착 =; "첨부 파일"이있는 모든 메시지가 처리를 설정하지는 않습니다. JavaMail FAQ에는 자세한 정보가 있습니다.

콘텐츠 유형에서 문자열 "multipart"를 확인하는 대신 isMimeType 메서드를 사용하고 "multipart/mixed"를 확인해야합니다.

예제 및 자세한 내용은 msgshow.java 샘플 프로그램을 참조하십시오.

관련 문제