StoredMessage(MimeMessage mimeMessage, Date receivedDate, long uid) { this.receivedDate = receivedDate; this.uid = uid; try { this.mimeMessage = new UidAwareMimeMessage(mimeMessage, uid, receivedDate); this.attributes = new SimpleMessageAttributes(mimeMessage, receivedDate); } catch (MessagingException e) { throw new IllegalStateException("Could not parse mime message " + mimeMessage + " with uid " + uid, e); } }
private void addAddressToEnvelopeIfAvailable(String[] addresses, List<String> response) { if (addresses != null && addresses.length > 0) { response.add(LB); addAddressToEnvelope(addresses, response); response.add(RB); } else { response.add(NIL); } }
private void addAddressToEnvelope(String[] addresses, List<String> response) { for (String address : addresses) { response.add(parseAddress(address)); } }
response.add(Q + escapeHeader(subject) + Q + SP); } else { response.add(NIL + SP); addAddressToEnvelopeIfAvailable(from, response); response.add(SP); addAddressToEnvelopeIfAvailableWithNetscapeFeature(sender, response); response.add(SP); addAddressToEnvelopeIfAvailableWithNetscapeFeature(replyTo, response); response.add(SP); addAddressToEnvelopeIfAvailable(to, response); response.add(SP); addAddressToEnvelopeIfAvailable(cc, response); response.add(SP); addAddressToEnvelopeIfAvailable(bcc, response); response.add(SP); if (inReplyTo != null && inReplyTo.length > 0) { messageID[0] = escapeHeader(messageID[0]); response.add(Q + messageID[0] + Q); } else {
decodeContentType(contentTypeLine); SimpleMessageAttributes partAttrs = new SimpleMessageAttributes(null, receivedDate); partAttrs.parseMimePart((MimePart) nextPart); parts[i] = partAttrs; log.debug("message type : " + wrappedMessage.getContentType()); parts[0] = new SimpleMessageAttributes(wrappedMessage, null); } catch (Exception e) { throw new IllegalStateException("Can not extract part for "+primaryType+"/"+secondaryType, e);
SimpleMessageAttributes(MimeMessage msg, Date receivedDate) throws MessagingException { Date sentDate = getSentDate(msg, receivedDate); if(null != receivedDate) { this.receivedDate = receivedDate; receivedDateString = INTERNALDATE.format(receivedDate); } if(null != sentDate) { sentDateEnvelopeString = new MailDateFormat().format(sentDate); } if (msg != null) { parseMimePart(msg); } }
String fields = parseBodyFields(); StringBuilder buf = new StringBuilder(); buf.append(LB); getParameters(buf); getParameters(buf);
String parseBodyFields() { StringBuilder buf = new StringBuilder(); getParameters(buf); buf.append(SP); if (contentID == null) { buf.append(NIL); } else { buf.append(Q).append(contentID).append(Q); } buf.append(SP); if (contentDesc == null) { buf.append(NIL); } else { buf.append(Q).append(contentDesc).append(Q); } buf.append(SP); if (contentEncoding == null) { buf.append(NIL); } else { buf.append(Q).append(contentEncoding).append(Q); } buf.append(SP); buf.append(size); return buf.toString(); }
private void addAddressToEnvelopeIfAvailableWithNetscapeFeature(String[] addresses, List<String> response) { if (addresses != null && addresses.length > 0) { // if (DEBUG) getLogger().debug("parsingEnvelope - sender[0] is: " + sender[0]); //Check for Netscape feature - sender is local part only if (addresses[0].indexOf('@') == -1) { response.add(LB + response.get(3) + RB); //first From address } else { response.add(LB); addAddressToEnvelope(addresses, response); response.add(RB); } } else { if (from != null && from.length > 0) { response.add(LB + response.get(3) + RB); //first From address } else { response.add(NIL); } } }