2015-10-14 82 views
0

我收到原始格式的消息。然後通過Android:使用gmail-api獲取電子郵件

MimeMessage email = new MimeMessage(session, new ByteArrayInputStream(emailBytes)); 

現在拿到的MimeMessage email.getSubject將返回正確的值,但 email.getReceivedDate是空

請解釋這種行爲。這是解碼郵件的不同部分

com.google.api.services.gmail.model.Message fullMessage = mService.users().messages().get(acct.sEmail, message.getId()).setFormat("raw").execute(); 
       Properties props = new Properties(); 
       idg.javax.mail.Session session = idg.javax.mail.Session.getDefaultInstance(props, null); 

       byte[] emailBytes = com.google.api.client.util.Base64.decodeBase64(fullMessage.getRaw()); 
       try { 
        idg.javax.mail.internet.MimeMessage email = new idg.javax.mail.internet.MimeMessage(session, new ByteArrayInputStream(emailBytes)); 
        Log.i("Received date","is" + email.getReceivedDate() + message.getId()); 
        Log.i("subject", "is" + email.getSubject()); 

       } catch (MessagingException e) { 
        e.printStackTrace(); 
       } 

回答

0

是的,你可以使用getReceivedDate()MimeMessage和肯定着,當然它的更好的方式來對郵件的不同部分檢索值的正確方法。

這是檢索MimeMessageUsers MimeMessage

這是收到郵件的不同屬性:MimeMessage Properties

+0

那麼爲什麼它返回NULL。 – png

+0

嘗試調試它 –

+0

我已經添加了代碼,我是如何做到這一點的。我懷疑我沒有按照正確的方式去做。 – png