private Date getSentDate(List<MessagePartHeader> headers) { for (MessagePartHeader header : headers) { if ("Date".equals(header.getName())) { try { return emailDateFormat.parse(header.getValue()); } catch (ParseException e) { LOGGER.log(Level.WARNING, "Failed to parse date " + header.getValue(), e); } } } return new Date(); }
private String getSender(List<MessagePartHeader> headers) { for (MessagePartHeader header : headers) { if ("From".equals(header.getName())) { String sender = header.getValue(); int addressIndex = sender.indexOf('<'); if (addressIndex > 0) { sender = sender.substring(0, addressIndex).trim(); } return sender; } } return "Unknown Gmail Source"; }
public Map getBareGmailMessageDetails(String messageId) { Map<String, Object> messageDetails = new HashMap<String, Object>(); try { Gmail service = new Gmail.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential) .setApplicationName("Gmail Quickstart") .build(); Message message = service .users() .messages() .get("me", messageId) .setFormat("full") .setFields("id,payload,sizeEstimate,snippet,threadId") .execute(); List<MessagePartHeader> headers = message.getPayload().getHeaders(); for (MessagePartHeader header : headers) { if (header.getName().equals("From") || header.getName().equals("Date") || header.getName().equals("Subject") || header.getName().equals("To") || header.getName().equals("CC")) { messageDetails.put(header.getName().toLowerCase(), header.getValue()); } } messageDetails.put("snippet", message.getSnippet()); messageDetails.put("threadId", message.getThreadId()); messageDetails.put("id", message.getId()); // messageDetails.put("body",message.getPayload().getBody().getData()); } catch (IOException ex) { Logger.getLogger(GoogleAuthHelper.class.getName()).log(Level.SEVERE, null, ex); } return messageDetails; }