많은 검색을 시도하고 마침내 여기에서 질문했습니다.안드로이드 프로그램에서 Gmail 첨부 파일 다운로드
나는 나의 의 Gmail을 형성다운로드 첨부 파일에 코드를 작성해야합니다. 어떻게해야합니까?
지금까지 이메일을 읽거나 보낼 수 있습니다. 그러나 첨부 파일을 다운로드하는 방법을 여전히 파악하고 있습니다. 어떤 도움을 주시면 감사하겠습니다.
많은 검색을 시도하고 마침내 여기에서 질문했습니다.안드로이드 프로그램에서 Gmail 첨부 파일 다운로드
나는 나의 의 Gmail을 형성다운로드 첨부 파일에 코드를 작성해야합니다. 어떻게해야합니까?
지금까지 이메일을 읽거나 보낼 수 있습니다. 그러나 첨부 파일을 다운로드하는 방법을 여전히 파악하고 있습니다. 어떤 도움을 주시면 감사하겠습니다.
첨부 파일을 별도로 다운로드하지 않습니다. 그것들은 MIME multipart 문서의 일부입니다. MimeMultipart 클래스를 사용하여 압축을 풀 수 있습니다.
나는 이것을했다. 다른 사람들이 사용할 수 있도록 솔루션 게시 :
protected Integer doInBackground(Void... vd){
Properties props = new Properties();
props.setProperty("mail.store.protocol", "imaps");
props.setProperty("mail.imaps.host", "imaps.gmail.com");
props.setProperty("mail.imaps.port", "993");
props.setProperty("mail.imaps.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.imaps.socketFactory.fallback", "false");
Session s = Session.getInstance(props);
sb = new StringBuilder();
try{
store = s.getStore("imaps");
store.connect("imap.gmail.com", "[email protected]", "password");
Folder inbox = store.getFolder("Inbox"); //Any folder name
inbox.open(Folder.READ_ONLY);
msgs = inbox.getMessages();
m=(Multipart)msgs[inbox.getMessageCount()-1].getContent(); //Getting the newest email. Assuming it has one attachment.
for(int i=0;i<m.getCount();i++){
bp = m.getBodyPart(i);
disposition = bp.getDisposition();
if(disposition!=null && (disposition.equals("ATTACHMENT"))){
fileName = bp.getFileName();
base64dec = (InputStream)bp.getContent();
OutputStream output = new FileOutputStream(Environment.getExternalStorageDirectory()+"/"+fileName);
byte data[] = new byte[8192];
long total = 0;
while ((count = base64dec.read(data)) != -1){
total += count;
output.write(data, 0, count);
publishProgress((int)total);
}
output.flush();
output.close();base64dec.close();
}
}
}catch(Exception e){
errorMsg += "\nError: "+e.toString();
Log.e("MyError:",e.toString());
}
return 0;
}