/** * Returns the resource name for a given resource location. * * @param resourceLocation the resource location * @return {@link #getClassPathBase()} + {@code resourceLocation} * @see #getClassPathBase() */ private String getResourceName(final String resourceLocation) { return (getClassPathBase() + resourceLocation).replaceAll("//", "/"); } }
if (!isCid(resourceLocation) && !isHttpUrl(resourceLocation)) final String resourceName = getResourceName(resourceLocation); final InputStream is = DataSourceClassPathResolver.class.getResourceAsStream(resourceName);
@Before public void setUp() throws Exception { final DataSourceUrlResolver urlResolver = new DataSourceUrlResolver(new URL("http://www.apache.org"), false); final DataSourceClassPathResolver classPathResolver = new DataSourceClassPathResolver("/images", false); dataSourceResolvers = new DataSourceResolver[] { urlResolver, classPathResolver }; }
@Override public DataSource resolve(final String resourceLocation, final boolean isLenient) throws IOException { final javax.mail.util.ByteArrayDataSource ds = (javax.mail.util.ByteArrayDataSource) super.resolve(resourceLocation, isLenient); ds.setName(null); return ds; }
@Test(expected = IOException.class) public void testResolvingClassPathNonLenient() throws Exception { final DataSourceResolver dataSourceResolver = new DataSourceClassPathResolver("/", false); assertNotNull(dataSourceResolver.resolve("images/asf_logo_wide.gif")); dataSourceResolver.resolve("asf_logo_wide.gif"); }
if (!isCid(resourceLocation) && !isHttpUrl(resourceLocation)) final String resourceName = getResourceName(resourceLocation); final InputStream is = DataSourceClassPathResolver.class.getResourceAsStream(resourceName);
final DataSourceResolver dataSourceResolvers[] = new DataSourceResolver[2]; dataSourceResolvers[0] = new DataSourceUrlResolver(new URL("http://foo"), true); dataSourceResolvers[1] = new DataSourceClassPathResolver("/", true);
/** * Returns the resource name for a given resource location. * * @param resourceLocation the resource location * @return {@link #getClassPathBase()} + {@code resourceLocation} * @see #getClassPathBase() */ private String getResourceName(final String resourceLocation) { return (getClassPathBase() + resourceLocation).replaceAll("//", "/"); } }
email.setSmtpPort(senderEmailPort); email.setStartTLSEnabled(senderEmailTlsEnabled); email.setDataSourceResolver(new DataSourceClassPathResolver("/", true));
final DataSourceResolver dataSourceResolver = new DataSourceClassPathResolver("/", true);
@Test public void testSendHTMLClassPathFile() throws Exception { Logger.getLogger(ImageHtmlEmail.class.getName()).setLevel(Level.FINEST); // Create the email message getMailServer(); final String strSubject = "Test HTML Send default"; email = new MockImageHtmlEmailConcrete(); email.setDataSourceResolver(new DataSourceClassPathResolver("/", TEST_IS_LENIENT)); email.setHostName(strTestMailServer); email.setSmtpPort(getMailServerPort()); email.setFrom(strTestMailFrom); email.addTo(strTestMailTo); email.setSubject(strSubject); final String html = loadUrlContent(TEST2_HTML_URL); // set the html message email.setHtmlMsg(html); // set the alternative message email.setTextMsg("Your email client does not support HTML messages"); // send the email email.send(); fakeMailServer.stop(); assertEquals(1, fakeMailServer.getMessages().size()); final MimeMessage mimeMessage = fakeMailServer.getMessages().get(0).getMimeMessage(); MimeMessageUtils.writeMimeMessage(mimeMessage, new File("./target/test-emails/testSendHTMLClassPathFile.eml")); final MimeMessageParser mimeMessageParser = new MimeMessageParser(mimeMessage).parse(); assertTrue(mimeMessageParser.getHtmlContent().contains("\"cid:")); assertTrue(mimeMessageParser.getAttachmentList().size() == 1); }
htmlEmail.setDataSourceResolver(new DataSourceClassPathResolver());
@Test public void testResolvingClassPathLenient() throws Exception { DataSourceResolver dataSourceResolver; dataSourceResolver = new DataSourceClassPathResolver("/", true); assertTrue(toByteArray(dataSourceResolver.resolve("images/asf_logo_wide.gif")).length == IMG_SIZE); assertTrue(toByteArray(dataSourceResolver.resolve("./images/asf_logo_wide.gif")).length == IMG_SIZE); assertTrue(toByteArray(dataSourceResolver.resolve("/images/asf_logo_wide.gif")).length == IMG_SIZE); assertNull(dataSourceResolver.resolve("/asf_logo_wide.gif")); dataSourceResolver = new DataSourceClassPathResolver("/images", true); assertTrue(toByteArray(dataSourceResolver.resolve("asf_logo_wide.gif")).length == IMG_SIZE); assertTrue(toByteArray(dataSourceResolver.resolve("./asf_logo_wide.gif")).length == IMG_SIZE); assertTrue(toByteArray(dataSourceResolver.resolve("/asf_logo_wide.gif")).length == IMG_SIZE); assertNull(dataSourceResolver.resolve("./images/asf_logo_wide.gif")); }