public static void initializeJavaActivationHandlers() { // DataHandler.writeTo() may search for DCH. So adding some default ones. try { CommandMap map = CommandMap.getDefaultCommandMap(); if (map instanceof MailcapCommandMap) { MailcapCommandMap mailMap = (MailcapCommandMap) map; // registering our DCH since javamail's DCH doesn't handle if (!cmdMapInitialized(mailMap)) { mailMap.addMailcap("text/xml;;x-java-content-handler=com.sun.xml.internal.ws.encoding.XmlDataContentHandler"); mailMap.addMailcap("application/xml;;x-java-content-handler=com.sun.xml.internal.ws.encoding.XmlDataContentHandler"); mailMap.addMailcap("image/*;;x-java-content-handler=com.sun.xml.internal.ws.encoding.ImageDataContentHandler"); mailMap.addMailcap("text/plain;;x-java-content-handler=com.sun.xml.internal.ws.encoding.StringDataContentHandler"); } } } catch (Throwable t) { // ignore the exception. } }
private static boolean cmdMapInitialized(MailcapCommandMap mailMap) { CommandInfo[] commands = mailMap.getAllCommands("text/xml"); if (commands == null || commands.length == 0) { return false; } // SAAJ RI implements it's own DataHandlers which can be used for JAX-WS too; // see com.sun.xml.internal.messaging.saaj.soap.AttachmentPartImpl#initializeJavaActivationHandlers // so if found any of SAAJ or our own handler registered, we are ok; anyway using SAAJ directly here // is not good idea since we don't want standalone JAX-WS to depend on specific SAAJ impl. // This is also reason for duplication of Handler's code by JAX-WS String saajClassName = "com.sun.xml.internal.messaging.saaj.soap.XmlDataContentHandler"; String jaxwsClassName = "com.sun.xml.internal.ws.encoding.XmlDataContentHandler"; for (CommandInfo command : commands) { String commandClass = command.getCommandClass(); if (saajClassName.equals(commandClass) || jaxwsClassName.equals(commandClass)) { return true; } } return false; }
public Mail() { _host = "smtp.gmail.com"; // default smtp server _port = "465"; // default smtp port _sport = "465"; // default socketfactory port _user = ""; // username _pass = ""; // password _from = ""; // email sent from _subject = ""; // email subject _body = ""; // email body _debuggable = false; // debug mode on or off - default off _auth = true; // smtp authentication - default on _multipart = new MimeMultipart(); // There is something wrong with MailCap, javamail can not find a handler for the multipart/mixed part, so this bit needs to be added. MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"); mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"); mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain"); mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822"); CommandMap.setDefaultCommandMap(mc); }
/** * <p>Only constructor.</p> * @param pLogger logger **/ public MailSenderStd(final ILogger pLogger) { this.logger = pLogger; MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); boolean mcapOk = false; for (String mcap : mc.getMimeTypes()) { if (mcap.contains("multipart")) { mcapOk = true; break; } } if (!mcapOk) { //Fix android mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"); mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"); mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain"); mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); mc.addMailcap("message/rfc822;; x-java-content- handler=com.sun.mail.handlers.message_rfc822"); this.logger.info(null, MailSenderStd.class, "Mailcap has been fixed"); } }
/** Setup the MailCommandMap programmatically. It sets which ContentType should be handled by which type of DataHandler. */ private static void setupMailCommandMap() { MailcapCommandMap mailcap = (MailcapCommandMap)CommandMap. getDefaultCommandMap(); mailcap.addMailcap("application/pkcs7-mime;; x-java-content-handler=" + "org.bouncycastle.mail.smime.handlers.pkcs7_mime"); mailcap.addMailcap("application/x-pkcs7-mime;; x-java-content-handler" + "=org.bouncycastle.mail.smime.handlers.x_pkcs7_mime"); mailcap.addMailcap("application/pkcs7-signature;; x-java-content-" + "handler=org.bouncycastle.mail.smime.handlers.pkcs7_signature"); mailcap.addMailcap("application/x-pkcs7-signature;; x-java-content-" + "handler=org.bouncycastle.mail.smime.handlers.x_pkcs7_signature"); mailcap.addMailcap("multipart/signed;; x-java-content-handler=" + "org.bouncycastle.mail.smime.handlers.multipart_signed"); CommandMap.setDefaultCommandMap(mailcap); }
/** * Loads the default set of Java activation MIME mappings required by * the GData library. Extends the basic set configured by the JavaMail * library to add mappings for Atom, RSS, and JSON application types. */ public static void loadMimeMappings() { final String[] CONTENT_TYPES = new String[] { "application/atom+xml", "application/rss+xml", "application/json" }; final String CONTENT_HANDLER = ";; x-java-content-handler" + "=com.google.gdata.data.media.GDataContentHandler"; CommandMap commandMap = CommandMap.getDefaultCommandMap(); if (commandMap instanceof MailcapCommandMap) { MailcapCommandMap mailcapMap = (MailcapCommandMap) commandMap; for (int i = 0; i < CONTENT_TYPES.length; i++) { CommandInfo[] comm = mailcapMap.getAllCommands(CONTENT_TYPES[i]); if (comm == null || comm.length == 0) { mailcapMap.addMailcap(CONTENT_TYPES[i] + CONTENT_HANDLER); } } } else { LOGGER.warning( "Unable to find MailcapCommandMap, skipping dynamic mailcap config."); } }
private void init(String host, String port) { multipart = new MimeMultipart(); // There is something wrong with MailCap, javamail can not find a handler for the multipart/mixed part, so this bit needs to be added. MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"); mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"); mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain"); mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822"); CommandMap.setDefaultCommandMap(mc); props = new Properties(); props.put("mail.smtp.host", host); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.port", port); props.put("mail.smtp.socketFactory.port", port); props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.socketFactory.fallback", "false"); }
public GMailSender() { host = "smtp.gmail.com"; // default smtp server port = "465"; // default smtp port sport = "465"; // default socketfactory port user = ""; // username pass = ""; // password from = ""; // email sent from subject = ""; // email subject body = ""; // email body debuggable = false; // debug mode on or off - default off auth = true; // smtp authentication - default on multipart = new MimeMultipart(); // There is something wrong with MailCap, javamail can not find a handler for the multipart/mixed part, so this bit needs to be added. MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"); mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"); mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain"); mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822"); CommandMap.setDefaultCommandMap(mc); }
public Mail() { _host = "smtp.gmail.com"; // default smtp server _port = "465"; // default smtp port _sport = "465"; // default socketfactory port _user = ""; // username _pass = ""; // password _from = ""; // email sent from _subject = ""; // email subject _body = ""; // email body _debuggable = false; // debug mode on or off - default off _auth = true; // smtp authentication - default on _multipart = new MimeMultipart(); // There is something wrong with MailCap, javamail can not find a handler // for the multipart/mixed part, so this bit needs to be added. MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"); mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"); mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain"); mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822"); CommandMap.setDefaultCommandMap(mc); }
/** * Constructor: Creates a new {@code Mailer} with the given configuration. The password must be the same password used when constructing * the {@link MailConfiguration}. To avoid hardcoding the password, or passing it around as a public or protected variable, * use {@code MailOptions.getMailer()} or {@code MailConfigStore.createMailer(String)}. * @param config the configuration that provides the source account information * @param password the password associated with {@code config} * @see MailConfiguration#createMailer() * @see MailOptions#getMailer() */ public Mailer(MailConfiguration config, String password) { if (config == null) throw new NullPointerException("Cannot create new Mailer with null configuration!"); this.config = config; this.password = password; multipart = new MimeMultipart(); // There is something wrong with MailCap, javamail can not find a handler for the multipart/mixed part, so this bit needs to be added. MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"); mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"); mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain"); mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822"); CommandMap.setDefaultCommandMap(mc); }
protected void setUp() { Security .addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); MailcapCommandMap _mailcap = (MailcapCommandMap)CommandMap .getDefaultCommandMap(); _mailcap .addMailcap("application/pkcs7-signature;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.pkcs7_signature"); _mailcap .addMailcap("application/pkcs7-mime;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.pkcs7_mime"); _mailcap .addMailcap("application/x-pkcs7-signature;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.x_pkcs7_signature"); _mailcap .addMailcap("application/x-pkcs7-mime;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.x_pkcs7_mime"); _mailcap .addMailcap("multipart/signed;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.multipart_signed"); originalMap = CommandMap.getDefaultCommandMap(); CommandMap.setDefaultCommandMap(_mailcap); }
public MailSender(String subject, String body) { this.subject = subject; this.body = body; MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"); mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"); mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain"); mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822"); CommandMap.setDefaultCommandMap(mc); }
/** * Sets the default mail caps. */ private void setDefaults() { MailcapCommandMap mailcap = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); for (int i = 0; i < mailcaps.length; i++) { CommandInfo command = mailcap.getCommand(mailcaps[i].getMimeType(), mailcaps[i].getCommandName()); if (command == null || !command.getCommandClass().equals(mailcaps[i].getClassName())) { mailcap.addMailcap(mailcaps[i].toString()); } } CommandMap.setDefaultCommandMap(mailcap); }
private void initActivationFramework() { MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); String[] caps = this.getProperties(PROPERTY_MAILCAPS); for (int i=0; i<caps.length; i++) { mc.addMailcap(caps[i]); } CommandMap.setDefaultCommandMap(mc); }
private static void initActivationFramework() { MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); String[] caps = core.properties.getProperties(PROPERTY_MAILCAPS); for (int i=0; i<caps.length; i++) { mc.addMailcap(caps[i]); } CommandMap.setDefaultCommandMap(mc); }
private void initMailCap() { MailcapCommandMap mc = ( MailcapCommandMap ) CommandMap.getDefaultCommandMap(); mc.addMailcap( "text/html;; x-java-content-handler=com.sun.mail.handlers.text_html" ); mc.addMailcap( "text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml" ); mc.addMailcap( "text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain" ); mc.addMailcap( "multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed" ); mc.addMailcap( "message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822" ); CommandMap.setDefaultCommandMap( mc ); }
@Test public void test_archive_scan() throws IOException { InstanceOfFilter filter = new InstanceOfFilter(CommandMap.class); ClasspathScanner scanner = new ClasspathScanner(filter); // If running this test inside your IDE... you need to set the cwd to be the // root of the config module !! scanner.scan(new File("./src/test/resources/classpathscan-test.jar").toURI().toURL()); List<Class<?>> classes = filter.getMatchedTypes(); Assert.assertTrue(classes.contains(CommandMap.class)); Assert.assertTrue(classes.contains(MailcapCommandMap.class)); }
public MailConfig() { _host = "smtp.gmail.com"; // default smtp server _port = "465"; // default smtp port _sport = "465"; // default socketfactory port _user = ""; // username _pass = ""; // password _from = ""; // email sent from _subject = ""; // email subject _body = ""; // email body _debuggable = false; // debug mode on or off - default off _auth = true; // smtp authentication - default on _multipart = new MimeMultipart(); // There is something wrong with MailCap, javamail can not find a // handler for the multipart/mixed part, so this bit needs to be added. MailcapCommandMap mc = (MailcapCommandMap) CommandMap .getDefaultCommandMap(); mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"); mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"); mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain"); mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822"); CommandMap.setDefaultCommandMap(mc); }
public Mail() { _host = "smtp.gmail.com"; // default smtp server _port = "465"; // default smtp port _sport = "465"; // default socketfactory port _user = ""; // username _pass = ""; // password _from = ""; // email sent from _subject = ""; // email subject _body = ""; // email body _debuggable = false; // debug mode on or off - default off _auth = true; // smtp authentication - default on _multipart = new MimeMultipart(); // There is something wrong with MailCap, javamail can not find a // handler for the multipart/mixed part, so this bit needs to be added. MailcapCommandMap mc = (MailcapCommandMap) CommandMap .getDefaultCommandMap(); mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"); mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"); mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain"); mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822"); CommandMap.setDefaultCommandMap(mc); }
protected Mail() { // add handlers for main MIME types (this normally comes from mail.jar's META-INF, but fails // if we have a fat jar MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap(); mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"); mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"); mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain"); mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822"); CommandMap.setDefaultCommandMap(mc); }
private static MailcapCommandMap addCommands(CommandMap cm) { MailcapCommandMap mc = (MailcapCommandMap)cm; mc.addMailcap("application/pkcs7-signature;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.pkcs7_signature"); mc.addMailcap("application/pkcs7-mime;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.pkcs7_mime"); mc.addMailcap("application/x-pkcs7-signature;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.x_pkcs7_signature"); mc.addMailcap("application/x-pkcs7-mime;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.x_pkcs7_mime"); mc.addMailcap("multipart/signed;; x-java-content-handler=org.bouncycastle.mail.smime.handlers.multipart_signed"); return mc; }
static void workaroundJAFSetup() { MailcapCommandMap mailMap = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); mailMap.addMailcap("multipart/mixed;;x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); }