List of usage examples for javax.mail.internet InternetHeaders InternetHeaders
public InternetHeaders()
From source file:org.apache.jsieve.mailet.SieveMailboxMailet.java
/** * Delivers a mail to a local mailbox.//from w w w . ja v a 2s .c o m * * @param mail * the mail being processed * * @throws MessagingException * if an error occurs while storing the mail */ @SuppressWarnings("unchecked") @Override public void service(Mail mail) throws MessagingException { Collection<MailAddress> recipients = mail.getRecipients(); Collection<MailAddress> errors = new Vector<MailAddress>(); MimeMessage message = null; if (deliveryHeader != null || resetReturnPath) { message = mail.getMessage(); } if (resetReturnPath) { // Set Return-Path and remove all other Return-Path headers from the // message // This only works because there is a placeholder inserted by // MimeMessageWrapper message.setHeader(RFC2822Headers.RETURN_PATH, (mail.getSender() == null ? "<>" : "<" + mail.getSender() + ">")); } Enumeration headers; InternetHeaders deliveredTo = new InternetHeaders(); if (deliveryHeader != null) { // Copy any Delivered-To headers from the message headers = message.getMatchingHeaders(new String[] { deliveryHeader }); while (headers.hasMoreElements()) { Header header = (Header) headers.nextElement(); deliveredTo.addHeader(header.getName(), header.getValue()); } } for (Iterator<MailAddress> i = recipients.iterator(); i.hasNext();) { MailAddress recipient = i.next(); try { if (deliveryHeader != null) { // Add qmail's de facto standard Delivered-To header message.addHeader(deliveryHeader, recipient.toString()); } storeMail(mail.getSender(), recipient, mail); if (deliveryHeader != null) { if (i.hasNext()) { // Remove headers but leave all placeholders message.removeHeader(deliveryHeader); headers = deliveredTo.getAllHeaders(); // And restore any original Delivered-To headers while (headers.hasMoreElements()) { Header header = (Header) headers.nextElement(); message.addHeader(header.getName(), header.getValue()); } } } } catch (Exception ex) { log("Error while storing mail.", ex); errors.add(recipient); } } if (!errors.isEmpty()) { // If there were errors, we redirect the email to the ERROR // processor. // In order for this server to meet the requirements of the SMTP // specification, mails on the ERROR processor must be returned to // the sender. Note that this email doesn't include any details // regarding the details of the failure(s). // In the future we may wish to address this. getMailetContext().sendMail(mail.getSender(), errors, mail.getMessage(), Mail.ERROR); } if (consume) { // Consume this message mail.setState(Mail.GHOST); } }
From source file:org.openhim.mediator.normalization.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()); }/*from w w w . j av a 2s .co m*/ return internetHeaders.getAllHeaders(); }
From source file:org.owasp.dependencycheck.analyzer.PythonDistributionAnalyzer.java
/** * Reads the manifest entries from the provided file. * * @param manifest the manifest/*from w w w .j a v a 2s . com*/ * @return the manifest entries */ private static InternetHeaders getManifestProperties(File manifest) { final InternetHeaders result = new InternetHeaders(); if (null == manifest) { LOGGER.debug("Manifest file not found."); } else { try { result.load(new AutoCloseInputStream(new BufferedInputStream(new FileInputStream(manifest)))); } catch (MessagingException e) { LOGGER.warn(e.getMessage(), e); } catch (FileNotFoundException e) { LOGGER.warn(e.getMessage(), e); } } return result; }
From source file:org.sonatype.nexus.repository.r.internal.RHostedFacetImpl.java
@Override @TransactionalTouchMetadata/*from w w w . j a v a2s. c o m*/ public Content getPackages(final String packagesPath) { checkNotNull(packagesPath); try { // TODO: Do NOT do this on each request as there is at least some overhead, and memory usage is proportional to // the number of packages contained in a particular path. We should be able to generate this when something has // changed or via a scheduled task using an approach similar to the Yum implementation rather than this method. StorageTx tx = UnitOfWork.currentTx(); RPackagesBuilder packagesBuilder = new RPackagesBuilder(packagesPath); for (Asset asset : tx.browseAssets(tx.findBucket(getRepository()))) { packagesBuilder.append(asset); } CompressorStreamFactory compressorStreamFactory = new CompressorStreamFactory(); ByteArrayOutputStream os = new ByteArrayOutputStream(); try (CompressorOutputStream cos = compressorStreamFactory.createCompressorOutputStream(GZIP, os)) { try (OutputStreamWriter writer = new OutputStreamWriter(cos, UTF_8)) { for (Entry<String, Map<String, String>> eachPackage : packagesBuilder.getPackageInformation() .entrySet()) { Map<String, String> packageInfo = eachPackage.getValue(); InternetHeaders headers = new InternetHeaders(); headers.addHeader(P_PACKAGE, packageInfo.get(P_PACKAGE)); headers.addHeader(P_VERSION, packageInfo.get(P_VERSION)); headers.addHeader(P_DEPENDS, packageInfo.get(P_DEPENDS)); headers.addHeader(P_IMPORTS, packageInfo.get(P_IMPORTS)); headers.addHeader(P_SUGGESTS, packageInfo.get(P_SUGGESTS)); headers.addHeader(P_LICENSE, packageInfo.get(P_LICENSE)); headers.addHeader(P_NEEDS_COMPILATION, packageInfo.get(P_NEEDS_COMPILATION)); Enumeration<String> headerLines = headers.getAllHeaderLines(); while (headerLines.hasMoreElements()) { String line = headerLines.nextElement(); writer.write(line, 0, line.length()); writer.write('\n'); } writer.write('\n'); } } } return new Content(new BytesPayload(os.toByteArray(), "application/x-gzip")); } catch (CompressorException | IOException e) { throw new RException(packagesPath, e); } }
From source file:org.sonatype.nexus.repository.r.internal.RPackagesUtils.java
static Content buildPackages(final Collection<Map<String, String>> entries) throws IOException { CompressorStreamFactory compressorStreamFactory = new CompressorStreamFactory(); ByteArrayOutputStream os = new ByteArrayOutputStream(); try (CompressorOutputStream cos = compressorStreamFactory.createCompressorOutputStream(GZIP, os)) { try (OutputStreamWriter writer = new OutputStreamWriter(cos, UTF_8)) { for (Map<String, String> entry : entries) { InternetHeaders headers = new InternetHeaders(); headers.addHeader(P_PACKAGE, entry.get(P_PACKAGE)); headers.addHeader(P_VERSION, entry.get(P_VERSION)); headers.addHeader(P_DEPENDS, entry.get(P_DEPENDS)); headers.addHeader(P_IMPORTS, entry.get(P_IMPORTS)); headers.addHeader(P_SUGGESTS, entry.get(P_SUGGESTS)); headers.addHeader(P_LICENSE, entry.get(P_LICENSE)); headers.addHeader(P_NEEDS_COMPILATION, entry.get(P_NEEDS_COMPILATION)); Enumeration<String> headerLines = headers.getAllHeaderLines(); while (headerLines.hasMoreElements()) { String line = headerLines.nextElement(); writer.write(line, 0, line.length()); writer.write('\n'); }/*from ww w . java2s .c o m*/ writer.write('\n'); } } } catch (CompressorException e) { throw new RException(null, e); } return new Content(new BytesPayload(os.toByteArray(), "application/x-gzip")); }