Java 类javax.mail.Header 实例源码

项目:nexus-repository-r    文件:RMetadataUtils.java   
/**
 * Parses metadata stored in a Debian Control File-like format.
 *
 * @see <a href="https://cran.r-project.org/doc/manuals/r-release/R-exts.html#The-DESCRIPTION-file">Description File</a>
 */
public static Map<String, String> parseDescriptionFile(final InputStream in) {
  checkNotNull(in);
  try {
    LinkedHashMap<String, String> results = new LinkedHashMap<>();
    InternetHeaders headers = new InternetHeaders(in);
    Enumeration headerEnumeration = headers.getAllHeaders();
    while (headerEnumeration.hasMoreElements()) {
      Header header = (Header) headerEnumeration.nextElement();
      String name = header.getName();
      String value = header.getValue()
          .replace("\r\n", "\n")
          .replace("\r", "\n"); // TODO: "should" be ASCII only, otherwise need to know encoding?
      results.put(name, value); // TODO: Supposedly no duplicates, is this true?
    }
    return results;
  } catch (MessagingException e) {
    throw new RException(null, e);
  }
}
项目:holdmail    文件:SMTPHandler.java   
protected MessageHeaders getHeaders(MimeMessage message) throws MessagingException {

        Map<String, String> headerMap = new HashMap<>();

        // oh wow 2015 and it's untyped and uses Enumeration
        Enumeration allHeaders = message.getAllHeaders();
        while (allHeaders.hasMoreElements()) {
            Header header = (Header) allHeaders.nextElement();
            String headerName = header.getName();
            String headerVal = header.getValue();

            headerMap.put(headerName, headerVal);

        }

        return new MessageHeaders(headerMap);
    }
项目:opennmszh    文件:MailAckProcessor.java   
@SuppressWarnings("unchecked")
private static String createLog(final Message msg) {
    StringBuilder bldr = new StringBuilder();
    Enumeration<Header> allHeaders;
    try {
        allHeaders = msg.getAllHeaders();
    } catch (MessagingException e) {
        return null;
    }
    while (allHeaders.hasMoreElements()) {
        Header header = allHeaders.nextElement();
        String name = header.getName();
        String value = header.getValue();
        bldr.append(name);
        bldr.append(":");
        bldr.append(value);
        bldr.append("\n");
    }
    return StringUtils.truncate(bldr.toString(), LOG_FIELD_WIDTH);
}
项目:whois    文件:MessageParser.java   
String getHeaders(final Part part) throws MessagingException {
    StringBuilder builder = new StringBuilder();
    @SuppressWarnings("unchecked")
    final Enumeration<Header> headers = part.getAllHeaders();
    while (headers.hasMoreElements()) {
        Header next = headers.nextElement();
        builder.append(next.getName());
        builder.append(": ");
        builder.append(next.getValue());
        builder.append('\n');
        if (!headers.hasMoreElements()) {
            builder.append('\n');
        }
    }
    return builder.toString();
}
项目:OpenNMS    文件:MailAckProcessor.java   
@SuppressWarnings("unchecked")
private static String createLog(final Message msg) {
    StringBuilder bldr = new StringBuilder();
    Enumeration<Header> allHeaders;
    try {
        allHeaders = msg.getAllHeaders();
    } catch (MessagingException e) {
        return null;
    }
    while (allHeaders.hasMoreElements()) {
        Header header = allHeaders.nextElement();
        String name = header.getName();
        String value = header.getValue();
        bldr.append(name);
        bldr.append(":");
        bldr.append(value);
        bldr.append("\n");
    }
    return StringUtils.truncate(bldr.toString(), LOG_FIELD_WIDTH);
}
项目:ats-framework    文件:MimePackage.java   
@SuppressWarnings( "unchecked")
@PublicAtsApi
public List<PackageHeader> getAllHeaders() throws PackageException {

    try {
        List<PackageHeader> headers = new ArrayList<PackageHeader>();

        Enumeration<Header> messageHeaders = message.getAllHeaders();
        while (messageHeaders.hasMoreElements()) {
            Header messageHeader = messageHeaders.nextElement();
            headers.add(new PackageHeader(messageHeader.getName(), messageHeader.getValue()));
        }

        return headers;

    } catch (MessagingException me) {
        throw new PackageException(me);
    }
}
项目:ats-framework    文件:MimePackage.java   
private String addHeadersTrace(
                                Enumeration<?> headers,
                                String level ) {

    final String level1 = level;
    final String level2 = "\t" + level1;
    final String prefix = getPrefixTrace(level1, "HEADERS START: ");

    StringBuilder headersString = new StringBuilder();

    boolean hasHeaders = headers.hasMoreElements();
    if (hasHeaders) {
        headersString.append(level1 + "HEADERS START:\n");
        while (headers.hasMoreElements()) {
            Header header = (Header) headers.nextElement();
            headersString.append(level2 + header.getName() + ": "
                                 + normalizeNewLinesTrace(prefix, header.getValue()) + "\n");
        }
        headersString.append(level1 + "HEADERS END:\n");
    }

    return headersString.toString();
}
项目:ph-as4    文件:MessageHelperMethods.java   
public static void moveMIMEHeadersToHTTPHeader (@Nonnull final MimeMessage aMimeMsg,
                                                @Nonnull final HttpMessage aHttpMsg) throws MessagingException
{
  ValueEnforcer.notNull (aMimeMsg, "MimeMsg");
  ValueEnforcer.notNull (aHttpMsg, "HttpMsg");

  // Move all mime headers to the HTTP request
  final Enumeration <Header> aEnum = aMimeMsg.getAllHeaders ();
  while (aEnum.hasMoreElements ())
  {
    final Header h = aEnum.nextElement ();
    // Make a single-line HTTP header value!
    aHttpMsg.addHeader (h.getName (), HttpHeaderMap.getUnifiedValue (h.getValue ()));

    // Remove from MIME message!
    aMimeMsg.removeHeader (h.getName ());
  }
}
项目:Camel    文件:DefaultMailUidGenerator.java   
public String generateMessageHash(Message message) {
    LOG.trace("generateMessageHash for msg: {}", message);

    String uid = null;

    // create an UID based on message headers on the message, that ought to be unique
    StringBuilder buffer = new StringBuilder();
    try {
        Enumeration<?> it = message.getAllHeaders();
        while (it.hasMoreElements()) {
            Header header = (Header) it.nextElement();
            buffer.append(header.getName()).append("=").append(header.getValue()).append("\n");
        }
        if (buffer.length() > 0) {
            LOG.trace("Generating UID from the following:\n {}", buffer);
            uid = UUID.nameUUIDFromBytes(buffer.toString().getBytes()).toString();
        }
    } catch (MessagingException e) {
        LOG.warn("Cannot read headers from mail message. This exception will be ignored.", e);
    }

    return uid;
}
项目:Camel    文件:MailBinding.java   
protected Map<String, Object> extractHeadersFromMail(Message mailMessage, Exchange exchange) throws MessagingException {
    Map<String, Object> answer = new HashMap<String, Object>();
    Enumeration<?> names = mailMessage.getAllHeaders();

    while (names.hasMoreElements()) {
        Header header = (Header) names.nextElement();
        String value = header.getValue();
        if (headerFilterStrategy != null && !headerFilterStrategy.applyFilterToExternalHeaders(header.getName(), value, exchange)) {
            CollectionHelper.appendValue(answer, header.getName(), value);
        }
    }

    return answer;
}
项目:subetha    文件:LeaveAttachmentsOnServerFilter.java   
@Override
@SuppressWarnings("unchecked")
public void onSend(SubEthaMessage msg, SendFilterContext ctx) throws MessagingException
{
    try
    {
        boolean didSomething = false;

        for (Part part: msg.getParts())
        {
            if (part.getContentType().startsWith(SubEthaMessage.DETACHMENT_MIME_TYPE))
            {
                Long id = (Long)part.getContent();
                String contentType = part.getHeader(SubEthaMessage.HDR_ORIGINAL_CONTENT_TYPE)[0];

                // remove all headers
                for (Enumeration<Header> e = part.getAllHeaders(); e.hasMoreElements();)
                {
                    Header header = e.nextElement();
                    part.removeHeader(header.getName());
                }

                String name = MailUtils.getNameFromContentType(contentType);
                String attachmentUrl = ctx.getList().getUrlBase() + "attachment/" + id + "/" + name ;

                part.setText("This attachment was left behind at the server:\n     " + attachmentUrl + "\n");
                part.setDisposition(Part.INLINE);
                didSomething = true;
            }
        }

        if (didSomething) msg.save();
    }
    catch (IOException ioex)
    {
        log.log(Level.FINE,"Error getting message parts", ioex);
    }
}
项目:simple-java-mail    文件:MimeMessageParser.java   
@Nonnull
private static InternetAddress createAddress(final Header header, final String typeOfAddress) {
    try {
        return new InternetAddress(header.getValue());
    } catch (final AddressException e) {
        throw new MimeMessageParseException(format(MimeMessageParseException.ERROR_PARSING_ADDRESS, typeOfAddress), e);
    }
}
项目:spring-boot-email-tools    文件:EmailToMimeMessageValidators.java   
public void validateCustomHeaders(final Email email, final MimeMessage sentMessage)
        throws MessagingException, IOException {
    Map<String, String> customHeaders = email.getCustomHeaders();
    List<Header> internetHeaders = (List<Header>) Collections.list(sentMessage.getAllHeaders());
    List<String> headerKeys = internetHeaders.stream().map(Header::getName).collect(toList());

    assertions.assertThat(headerKeys)
            .as("Should contains all the headers keys provided at construction time")
            .containsAll(customHeaders.keySet());

    customHeaders.entrySet().stream()
            .forEach(entry -> {
                try {
                    assertions.assertThat(sentMessage.getHeader(entry.getKey())).isNotNull().containsExactly(entry.getValue());
                } catch (MessagingException e) {
                }
            });
}
项目:ogham    文件:PartAssert.java   
@SuppressWarnings("unchecked")
public PartAssert<P> headers(Matcher<Iterable<? extends Header>> matcher) {
    try {
        String message = "headers of ${partName} of message ${messageIndex}";
        for (PartWithContext partWithContext : actual) {
            Part part = partWithContext.getPart();
            assertThat(part == null ? null : (Iterable<? extends Header>) list(part.getAllHeaders()), usingContext(message, partWithContext, matcher));
        }
        return this;
    } catch (MessagingException e) {
        throw new AssertionError("Failed to get filename of part", e);
    }
}
项目:javamail    文件:JavaMailJMSStatisticsTest.java   
@Before
public void setUp() throws Exception {
    javaMailJMSStatistics = new JavaMailJMSStatistics();
    javaMailJMSStatistics.registerInJMX();
    mimeMessage = Mockito.mock(MimeMessage.class);
    when(mimeMessage.getAllHeaders()).thenReturn(Collections.enumeration(Arrays.asList(new Header("h1", "v1"), new Header("h2", "v2"))));
    when(mimeMessage.getMessageID()).thenReturn("MessageId");
    when(mimeMessage.getSubject()).thenReturn("MessageSubject");
}
项目:jfunk    文件:MailMessage.java   
private static ListMultimap<String, String> createHeaders(final Message message) throws MessagingException {
    ListMultimap<String, String> headers = ArrayListMultimap.create();

    for (@SuppressWarnings("unchecked")
    Enumeration<Header> headersEnum = message.getAllHeaders(); headersEnum.hasMoreElements();) {
        Header header = headersEnum.nextElement();
        headers.put(header.getName(), header.getValue());
    }

    return headers;
}
项目:sonews    文件:ArticleImpl.java   
/**
 * @return Header source code of this Article.
 */
@Override
public String getHeaderSource() {
    if (this.headerSrc != null) {
        return this.headerSrc;
    }

    StringBuilder buf = new StringBuilder();

    for (Enumeration<?> en = this.headers.getAllHeaders(); en
            .hasMoreElements();) {
        Header entry = (Header) en.nextElement();

        String value = entry.getValue().replaceAll("[\r\n]", " ");
        buf.append(entry.getName());
        buf.append(": ");
        buf.append(MimeUtility.fold(entry.getName().length() + 2, value));

        if (en.hasMoreElements()) {
            buf.append("\r\n");
        }
    }

    this.headerSrc = buf.toString();
    return this.headerSrc;
}
项目:alfresco-repository    文件:ImapServiceImpl.java   
@SuppressWarnings("unchecked")
public void persistMessageHeaders(NodeRef messageRef, MimeMessage message)
{
    try
    {
        Enumeration<Header> headers = message.getAllHeaders();
        List<String> messaheHeadersProperties = new ArrayList<String>();
        while(headers.hasMoreElements())
        {
            Header header = headers.nextElement();
            if (isPersistableHeader(header))
            {
                messaheHeadersProperties.add(header.getName() + ImapModel.MESSAGE_HEADER_TO_PERSIST_SPLITTER + header.getValue());

                if (logger.isDebugEnabled())
                {
                    logger.debug("[persistHeaders] Persisting Header " + header.getName() + " : " + header.getValue());
                }
            }
        }

        Map<QName, Serializable> props = new HashMap<QName, Serializable>();
        props.put(ImapModel.PROP_MESSAGE_HEADERS, (Serializable)messaheHeadersProperties);

        serviceRegistry.getNodeService().addAspect(messageRef, ImapModel.ASPECT_IMAP_MESSAGE_HEADERS, props);
    }
    catch(MessagingException me)
    {

    }
}
项目:alfresco-repository    文件:ImapServiceImpl.java   
private boolean isPersistableHeader(Header header)
{
    for (String headerToPersist : messageHeadersToPersist)
    {
        if (headerToPersist.equalsIgnoreCase(header.getName()))
        {
            return true;
        }
    }
    return false; 
}
项目:LunaticSMTP    文件:Email.java   
public Email(String content, Date date, String subject,
             String from, String to, String cc,
             List<Header> headers, List<EmailPart> parts) {

    this.content = content;
    this.date = date;
    this.subject = subject;
    this.from = from;
    this.to = to;
    this.cc = cc;
    this.headers = headers;
    this.parts = parts;
}
项目:alimama    文件:SimpleSendReceiveMessage.java   
/**
 * 遍历每封邮件的头部部分
 * @param message
 * @throws MessagingException 
 */
private void getMessageHeader(Message message) throws MessagingException {
    // TODO Auto-generated method stub
    @SuppressWarnings("unchecked")
    Enumeration<Header> allHeader=message.getAllHeaders();
    for(;allHeader.hasMoreElements();){
        Header header=allHeader.nextElement();
        System.out.println(header.getName()+":"+header.getValue());
    }
}
项目:cloud-meter    文件:SmtpSampler.java   
private String getRequestHeaders(Message message) throws MessagingException {
    StringBuilder sb = new StringBuilder();
    @SuppressWarnings("unchecked") // getAllHeaders() is not yet genericised
    Enumeration<Header> headers = message.getAllHeaders(); // throws ME
    writeHeaders(headers, sb);
    return sb.toString();
}
项目:cloud-meter    文件:SmtpSampler.java   
private void writeHeaders(Enumeration<Header> headers, StringBuilder sb) {
    while (headers.hasMoreElements()) {
        Header header = headers.nextElement();
        sb.append(header.getName());
        sb.append(": ");
        sb.append(header.getValue());
        sb.append("\n");
    }
}
项目:cloud-meter    文件:SmtpSampler.java   
private void writeBodyPart(StringBuilder sb, BodyPart bodyPart)
        throws MessagingException, IOException {
    @SuppressWarnings("unchecked") // API not yet generic
    Enumeration<Header> allHeaders = bodyPart.getAllHeaders(); // throws ME
    writeHeaders(allHeaders, sb);
    String disposition = bodyPart.getDisposition(); // throws ME
    sb.append("\n");
    if (Part.ATTACHMENT.equals(disposition)) {
        sb.append("<attachment content not shown>");
    } else {
        sb.append(bodyPart.getContent()); // throws IOE, ME
    }
    sb.append("\n");
}
项目:tabellarium    文件:PrintingEmailHandler.java   
/**
 * Prints all message headers in the format &lt;header name&gt;:&lt;header
 * value&gt;.
 *
 * @param headers headers to print.
 * @throws Exception if headers can not be printed.
 */
private void printMessageHeaders(Enumeration headers) throws Exception {
    print(MESSAGE_HEADERS_DELIMITER);
    while (headers.hasMoreElements()) {
        Header h = (Header) headers.nextElement();
        print(h.getName() + ":" + h.getValue());
    }
}
项目:subetha    文件:StripAttachmentsFilter.java   
@Override
@SuppressWarnings("unchecked")
public void onInject(SubEthaMessage msg, FilterContext ctx)
    throws IgnoreException, HoldException, MessagingException
{
    int maxKB = Integer.parseInt(ctx.getArgument(ARG_MAXSIZEINKB).toString());

    String msgContent = (String) ctx.getArgument(ARG_MSG);
    String expandedMsg = ctx.expand(msgContent);

    boolean changed = false;
    try 
    {
        for (Part p: msg.getParts())
        {
            if (p.getContentType().startsWith("text/") && !Part.ATTACHMENT.equals(p.getDisposition()))
                continue;

            if (p.getContentType().startsWith("multipart/"))
                continue;

            // Hopefully this means it is some sort of binary time
            if (p.getSize() > (maxKB * 1024)) 
            {
                if (log.isLoggable(Level.FINE))
                    log.log(Level.FINE,"Stripping attachement of type: {0}", p.getContentType());       

                //remove all headers
                for (Enumeration<Header> e = p.getAllHeaders(); e.hasMoreElements();)
                {
                    Header header = e.nextElement();
                    p.removeHeader(header.getName());
                }

                p.setText(expandedMsg);
                changed = true;
            }
        }

        if (changed)
            msg.save();
    }
    catch (IOException ioex)
    {
        throw new RuntimeException(ioex);
    }
}
项目:simple-java-mail    文件:MimeMessageParser.java   
private static void parseMimePartTree(@Nonnull final MimePart currentPart, @Nonnull final ParsedMimeMessageComponents parsedComponents) {
    for (final Header header : retrieveAllHeaders(currentPart)) {
        parseHeader(header, parsedComponents);
    }

    final String disposition = parseDisposition(currentPart);

    if (isMimeType(currentPart, "text/plain") && parsedComponents.plainContent == null && !Part.ATTACHMENT.equalsIgnoreCase(disposition)) {
        parsedComponents.plainContent = parseContent(currentPart);
    } else if (isMimeType(currentPart, "text/html") && parsedComponents.htmlContent == null && !Part.ATTACHMENT.equalsIgnoreCase(disposition)) {
        parsedComponents.htmlContent = parseContent(currentPart);
    } else if (isMimeType(currentPart, "multipart/*")) {
        final Multipart mp = parseContent(currentPart);
        for (int i = 0, count = countBodyParts(mp); i < count; i++) {
            parseMimePartTree(getBodyPartAtIndex(mp, i), parsedComponents);
        }
    } else {
        final DataSource ds = createDataSource(currentPart);
        // If the diposition is not provided, the part should be treated as attachment
        if (disposition == null || Part.ATTACHMENT.equalsIgnoreCase(disposition)) {
            parsedComponents.attachmentList.put(parseResourceName(parseContentID(currentPart), parseFileName(currentPart)), ds);
        } else if (Part.INLINE.equalsIgnoreCase(disposition)) {
            if (parseContentID(currentPart) != null) {
                parsedComponents.cidMap.put(parseContentID(currentPart), ds);
            } else {
                // contentID missing -> treat as standard attachment
                parsedComponents.attachmentList.put(parseResourceName(null, parseFileName(currentPart)), ds);
            }
        } else {
            throw new IllegalStateException("invalid attachment type");
        }
    }
}
项目:simple-java-mail    文件:MimeMessageParser.java   
@SuppressWarnings("StatementWithEmptyBody")
private static void parseHeader(final Header header, @Nonnull final ParsedMimeMessageComponents parsedComponents) {
    if (header.getName().equals("Disposition-Notification-To")) {
        parsedComponents.dispositionNotificationTo = createAddress(header, "Disposition-Notification-To");
    } else if (header.getName().equals("Return-Receipt-To")) {
        parsedComponents.returnReceiptTo = createAddress(header, "Return-Receipt-To");
    } else if (header.getName().equals("Return-Path")) {
        parsedComponents.bounceToAddress = createAddress(header, "Return-Path");
    } else if (!HEADERS_TO_IGNORE.contains(header.getName())) {
        parsedComponents.headers.put(header.getName(), header.getValue());
    } else {
        // header recognized, but not relevant (see #HEADERS_TO_IGNORE)
    }
}
项目:simple-java-mail    文件:MimeMessageParser.java   
@SuppressWarnings("WeakerAccess")
@Nonnull
public static List<Header> retrieveAllHeaders(@Nonnull final MimePart part) {
    try {
        return Collections.list(part.getAllHeaders());
    } catch (final MessagingException e) {
        throw new MimeMessageParseException(MimeMessageParseException.ERROR_GETTING_ALL_HEADERS, e);
    }
}
项目:openbd-core    文件:cfPOP3.java   
private static String formatHeader( Message thisMessage ) throws Exception {
    Enumeration<Header> E   = thisMessage.getAllHeaders();
    StringBuilder   tmp = new StringBuilder(128);
    while (E.hasMoreElements()){
        Header hdr = E.nextElement();
        tmp.append( hdr.getName() );
        tmp.append( ": " );
        tmp.append( hdr.getValue() );
        tmp.append( "\r\n" );
    }

    return tmp.toString();
}
项目:javamail    文件:JavaMailJMSStatistics.java   
private static CompositeData convert(MessageAndAddresses maa) {
    if (maa == null) {
        return null;
    }
    try {
        TabularData addrData = new TabularDataSupport(TAB_ADDR_TYPE);
        for(Address addr : maa.getAddresses()) {
            addrData.put(new CompositeDataSupport(ROW_ADDR_TYPE, new String[]{"addressType", "address"}, new Object[]{addr.getType(), addr.toString()}));
        }
        TabularData headerData = new TabularDataSupport(TAB_HEADER_TYPE);
        Enumeration en = maa.getMessage().getAllHeaders();
        while (en.hasMoreElements()) {
            Header header = (Header) en.nextElement();
            headerData.put(new CompositeDataSupport(ROW_HEADER_TYPE, new String[]{"header-name", "header-value"}, new Object[]{header.getName(), header.getValue()}));
        }
        String error = null;
        if (maa.getException() != null) {
            StringWriter sw = new StringWriter();
            sw.append(maa.getException().toString());
            maa.getException().printStackTrace(new PrintWriter(sw));
            sw.flush();
            error = sw.toString();
        }
        return new CompositeDataSupport(MAIL_INFO_TYPE,
                new String[] {"messageId", "date", "subject", "toAddresses", "headers", "errorDescription"},
                new Object[]{maa.getMessage().getMessageID(), new Date(maa.getTimestamp()), maa.getMessage().getSubject(), addrData, headerData, error}
        );
    } catch (OpenDataException | MessagingException e) {
        throw new IllegalArgumentException("cannot convert MessageAndAddresses to CompositeData", e);
    }
}
项目:openhim-mediator-xds    文件:XDSbMimeProcessorActor.java   
private Enumeration createCopyOfHeaders(BodyPart part) throws MessagingException {
    Enumeration headers = part.getAllHeaders();
    InternetHeaders internetHeaders = new InternetHeaders();
    while (headers.hasMoreElements()) {
        Header header = (Header) headers.nextElement();
        internetHeaders.addHeader(header.getName(), header.getValue());
    }
    return internetHeaders.getAllHeaders();
}
项目:openhim-mediator-xds    文件:XDSbMimeProcessorActor.java   
private void copyHeadersToPart(Enumeration headers, BodyPart part) throws MessagingException {
    while (headers.hasMoreElements()) {
        Header header = (Header) headers.nextElement();
        part.setHeader(header.getName(), header.getValue());
    }
}
项目:community-edition-old    文件:ImapServiceImpl.java   
@SuppressWarnings("unchecked")
public void persistMessageHeaders(NodeRef messageRef, MimeMessage message)
{
    try
    {
        Enumeration<Header> headers = message.getAllHeaders();
        List<String> messaheHeadersProperties = new ArrayList<String>();
        while(headers.hasMoreElements())
        {
            Header header = headers.nextElement();
            if (isPersistableHeader(header))
            {
                messaheHeadersProperties.add(header.getName() + ImapModel.MESSAGE_HEADER_TO_PERSIST_SPLITTER + header.getValue());

                if (logger.isDebugEnabled())
                {
                    logger.debug("[persistHeaders] Persisting Header " + header.getName() + " : " + header.getValue());
                }
            }
        }

        Map<QName, Serializable> props = new HashMap<QName, Serializable>();
        props.put(ImapModel.PROP_MESSAGE_HEADERS, (Serializable)messaheHeadersProperties);

        serviceRegistry.getNodeService().addAspect(messageRef, ImapModel.ASPECT_IMAP_MESSAGE_HEADERS, props);
    }
    catch(MessagingException me)
    {

    }
}
项目:community-edition-old    文件:ImapServiceImpl.java   
private boolean isPersistableHeader(Header header)
{
    for (String headerToPersist : messageHeadersToPersist)
    {
        if (headerToPersist.equalsIgnoreCase(header.getName()))
        {
            return true;
        }
    }
    return false; 
}
项目:CryptMeme    文件:BoteMessage.java   
@Override
public InputStream getFullContent() throws IOException {
    try {
        ByteArrayOutputStream stream = new ByteArrayOutputStream();

        // The natural way to do this would be to call email.writeTo(stream) and be done with it.
        // That works unless there is a non-text attachment, which will not be decoded correctly.
        // It looks like James sends the attachment unharmed in its original encoding
        // (i.e. Content-Transfer-Encoding: binary), but Thunderbird treats it as 8bit and
        // changes zero bytes to spaces (0x20). CR/LFs are altered, too.
        // The ugly workaround is to write out the email one part at a time (if type=multipart),
        // reencoding binary attachments to base64.
        stream.write(Util.readBytes(getHeaderContent()));
        stream.write(CRLF);

        if (email.isMimeType("multipart/*")) {
            String contentType = email.getContentType();
            String boundary = contentType.substring(contentType.indexOf("boundary=") + "boundary=".length());
            if (boundary.startsWith("\""))
                boundary = boundary.substring(1);
            if (boundary.endsWith("\""))
                boundary = boundary.substring(0, boundary.length()-1);
            List<Part> parts = email.getParts();
            for (int partIndex=0; partIndex<parts.size(); partIndex++) {
                Part part = parts.get(partIndex);
                stream.write("--".getBytes());
                stream.write(boundary.getBytes());
                stream.write(CRLF);
                if (Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition())) {
                    // write headers
                    @SuppressWarnings("unchecked")
                    Enumeration<Header> headers = part.getAllHeaders();
                    while (headers.hasMoreElements()) {
                        Header header = headers.nextElement();
                        if ("Content-Transfer-Encoding".equals(header.getName()))
                            stream.write("Content-Transfer-Encoding: base64".getBytes());
                        else {
                            stream.write(header.getName().getBytes());
                            stream.write(": ".getBytes());
                            stream.write(header.getValue().getBytes());
                        }
                        stream.write(CRLF);
                    }
                    stream.write(CRLF);

                    // write content
                    byte[] contentBytes = Util.readBytes(part.getInputStream());
                    String base64Str = new String(com.lambdaworks.codec.Base64.encode(contentBytes));
                    while (base64Str.length() > 78) {
                        stream.write(base64Str.substring(0, 78).getBytes());
                        stream.write(CRLF);
                        base64Str = base64Str.substring(78);
                    }
                    if (base64Str.length() > 0) {
                        stream.write(base64Str.getBytes());
                        stream.write(CRLF);
                    }
                    stream.write(CRLF);
                }
                else
                    part.writeTo(stream);
                stream.write(CRLF);
            }
            stream.write("--".getBytes());
            stream.write(boundary.getBytes());
            stream.write("--".getBytes());
        } else
            // not a multipart email, so write the content unaltered
            stream.write(Util.readBytes(email.getRawInputStream()));
        stream.write(CRLF);
        return new ByteArrayInputStream(stream.toByteArray());
    } catch (MessagingException e) {
        throw new IOException(e);
    }
}
项目:ownmail    文件:Loader.java   
private static void dumpHeaders(final Message msg, final File hdrFile)
        throws FileNotFoundException, MessagingException {
    PrintStream hdrOs = null;
    try {
        hdrOs = new PrintStream(new BufferedOutputStream(new FileOutputStream(hdrFile)));
        Enumeration<?> headers = msg.getAllHeaders();
        while (headers.hasMoreElements()) {
            Header header = (Header)headers.nextElement();
            hdrOs.println(format("%s: %s", header.getName(), header.getValue()));
        }
        log.info("written headers to {}", hdrFile.getName());
    } finally {
        if (hdrOs != null) try { hdrOs.close(); } catch (Exception e) {}
    }
}
项目:activent    文件:TimeTagger.java   
@SuppressLint("NewApi") public static void run_me(ArrayList<String> args) throws MessagingException {
//HashMap<String,String>  hm=new HashMap<String,String>();
//hm.put("kk","ghhj");
/*for(java.util.Map.Entry<String, String> e: hm.entrySet()){
    //System.out.println("Key " + e.getKey());
    //System.out.println("Value " + e.getValue());

}
*/
  for(String s:args)
  {
 //  String s="";
   InputStream stream = new ByteArrayInputStream(s.getBytes(StandardCharsets.UTF_8));
   Session ss = Session.getDefaultInstance(new Properties());
   MimeMessage mi=new MimeMessage(ss,stream); 
   mi.getAllHeaderLines();
   for (Enumeration<Header> e = mi.getAllHeaders(); e.hasMoreElements();) {
       Header h = e.nextElement();
       String name=h.getName();
       String value=h.getValue();
       System.out.println(value);
       System.out.println(name);
       h.getValue();
   }
   System.out.println("String: " + s);
    // parse(s);
     System.out.println();
  }
 }
项目:camel-agent    文件:MailBinding.java   
protected Map<String, Object> extractHeadersFromMail(Message mailMessage, Exchange exchange) throws MessagingException {
    Map<String, Object> answer = new HashMap<String, Object>();
    Enumeration<?> names = mailMessage.getAllHeaders();

    while (names.hasMoreElements()) {
        Header header = (Header) names.nextElement();
        String value = header.getValue();
        if (headerFilterStrategy != null && !headerFilterStrategy.applyFilterToExternalHeaders(header.getName(), value, exchange)) {
            CollectionHelper.appendValue(answer, header.getName(), value);
        }
    }

    return answer;
}