@Override public String getMessageId() throws MessagingException { if (mMessageId == null) { mMessageId = getFirstHeader("Message-ID"); } if (mMessageId == null) // even after checking the header { setMessageId(generateMessageId()); } return mMessageId; }