MailConfig mailConfig = new MailConfig() .setHostname("localhost") .setPort(5870) .setLogin(LoginOption.REQUIRED) .setAuthMethods("PLAIN") .setUsername("username") .setPassword("password");
@Override public void start() { // Start a local STMP server, remove this line if you want to use your own server. // It just prints the sent message to the console LocalSmtpServer.start(2525); MailClient mailClient = MailClient.createShared(vertx, new MailConfig().setPort(2525)); MailMessage email = new MailMessage() .setFrom("user@example.com (Sender)") .setTo(Arrays.asList( "user@example.com (User Name)", "other@example.com (Another User)")) .setBounceAddress("user@example.com (Bounce)") .setSubject("Test email") .setText("this is a test email"); mailClient.sendMail(email, result -> { if (result.succeeded()) { System.out.println(result.result()); System.out.println("Mail sent"); } else { System.out.println("got exception"); result.cause().printStackTrace(); } }); }
public void start() { // Start a local STMP server, remove this line if you want to use your own server. // It just prints the sent message to the console LocalSmtpServer.start(2528); MailConfig mailConfig = new MailConfig().setHostname("localhost").setPort(2528); MailClient mailClient = MailClient.createShared(vertx, mailConfig); MailMessage email = new MailMessage() .setFrom("user1@example.com") .setTo(Arrays.asList("user2@example.com", "user3@example.com", "user4@example.com")) .addHeader("X-Mailer", "Vert.x Mail-Client 3.6.2") .addHeader("Message-ID", "12345@example.com") .addHeader("Reply-To", "reply@example.com") .addHeader("Received", "by vertx mail service") .addHeader("Received", "from [192.168.1.1] by localhost") .setText("This message should have a custom Message-ID"); mailClient.sendMail(email, result -> { if (result.succeeded()) { System.out.println(result.result()); System.out.println("Mail sent"); } else { System.out.println("got exception"); result.cause().printStackTrace(); } }); }
public ProdMailer(Vertx vertx, JsonObject serverConfig) { MailConfig config = new MailConfig(); config.setHostname(serverConfig.getString("smtp.hostname", MailConfig.DEFAULT_HOST)); config.setPort(serverConfig.getInteger("smtp.port", MailConfig.DEFAULT_PORT)); config.setUsername(serverConfig.getString("smtp.username")); config.setPassword(serverConfig.getString("smtp.password")); config.setKeepAlive(serverConfig.getBoolean("smtp.keepAlive", MailConfig.DEFAULT_KEEP_ALIVE)); // make the default work on default linux installs config.setTrustAll(serverConfig.getBoolean("smtp.trustAll", true)); config.setStarttls(StartTLSOptions.valueOf(serverConfig.getString("smtp.starttls", MailConfig.DEFAULT_TLS.name()))); mailClient = MailClient.createShared(vertx, config); }
@Test public void mailTestTLSWrongHostTrustAll(TestContext testContext) { this.testContext = testContext; final MailConfig config = defaultConfig().setHostname("127.0.0.1").setPort(1587).setStarttls(StartTLSOptions.REQUIRED) .setKeyStore("src/test/resources/certs/client.jks").setKeyStorePassword("password").setTrustAll(true); MailClient mailClient = MailClient.createNonShared(vertx, config); testSuccess(mailClient); }
/** * @return */ private MailConfig configTLS() { return new MailConfig("localhost", 1587, StartTLSOptions.REQUIRED, LoginOption.DISABLED); }
@Test public void mailTestSSLCorrectCert(TestContext testContext) { this.testContext = testContext; startServer(SERVER2_JKS); final MailConfig config = new MailConfig("localhost", 1465, StartTLSOptions.DISABLED, LoginOption.DISABLED) .setSsl(true).setKeyStore(CLIENT_JKS).setKeyStorePassword("password"); MailClient mailClient = MailClient.createNonShared(vertx, config); testSuccess(mailClient); }
@Test public void toJsonTest3() { MailConfig mailConfig = new MailConfig(); mailConfig.setHostname(null).setPort(0).setStarttls(null).setLogin(null); assertEquals("{\"port\":0,\"maxPoolSize\":10}", mailConfig.toJson().toString()); }
@Test public void toJsonTest2() { MailConfig mailConfig = new MailConfig(); mailConfig.setUsername("username").setPassword("password").setSsl(true); assertEquals( "{\"hostname\":\"localhost\",\"port\":25,\"starttls\":\"OPTIONAL\",\"login\":\"NONE\",\"username\":\"username\",\"password\":\"password\",\"ssl\":true,\"maxPoolSize\":10}", mailConfig.toJson().toString()); }
@Test public void testConstructorFromMailConfig() { MailConfig mailConfig = new MailConfig(); mailConfig.setHostname("asdfasdf").setPort(1234); assertEquals("{\"hostname\":\"asdfasdf\",\"port\":1234,\"starttls\":\"OPTIONAL\",\"login\":\"NONE\",\"maxPoolSize\":10}", new MailConfig(mailConfig).toJson().encode()); }
/** * @return */ private MailConfig configLogin(String user, String pw) { return new MailConfig("localhost", 1587, StartTLSOptions.DISABLED, LoginOption.REQUIRED) .setUsername(user) .setPassword(pw); }
@Test public void toJsonTest4() { MailConfig mailConfig = new MailConfig(); mailConfig.setTrustAll(true); mailConfig.setAuthMethods("PLAIN"); mailConfig.setOwnHostname("example.com"); assertEquals( "{\"hostname\":\"localhost\",\"port\":25,\"starttls\":\"OPTIONAL\",\"login\":\"NONE\",\"trustAll\":true,\"authMethods\":\"PLAIN\",\"ownHostname\":\"example.com\",\"maxPoolSize\":10}", mailConfig.toJson().toString()); }
@Test public void toJsonDoesNotIntroduceNullValues() { MailConfig mailConfig = new MailConfig(); MailConfig config = new MailConfig(mailConfig.toJson()); assertNotNull(config.getHostname()); assertEquals(config.getPort(), 25); assertEquals(config.getStarttls(), StartTLSOptions.OPTIONAL); assertEquals(config.getLogin(), LoginOption.NONE); assertEquals(config.getMaxPoolSize(), 10); }
@Test public void toJsonTest5() { MailConfig mailConfig = new MailConfig(); mailConfig.setKeepAlive(false); mailConfig.setAllowRcptErrors(true); mailConfig.setDisableEsmtp(true); assertEquals( "{\"hostname\":\"localhost\",\"port\":25,\"starttls\":\"OPTIONAL\",\"login\":\"NONE\",\"maxPoolSize\":10,\"keepAlive\":false,\"allowRcptErrors\":true,\"disableEsmtp\":true}", mailConfig.toJson().toString()); }
@Test public void testUsername() { MailConfig mailConfig = new MailConfig(); mailConfig.setUsername("asdfasdf"); assertEquals("asdfasdf", mailConfig.getUsername()); }
@Test public void testPassword() { MailConfig mailConfig = new MailConfig(); mailConfig.setPassword("secret"); assertEquals("secret", mailConfig.getPassword()); }
@Test public void testPort() { MailConfig mailConfig = new MailConfig(); assertEquals(12345, mailConfig.setPort(12345).getPort()); }
@Test public void newJsonTest() { JsonObject json = new MailConfig("somehost", 25).toJson(); json.put("ssl", true); MailConfig mailConfig = new MailConfig(json); assertEquals("somehost", mailConfig.getHostname()); assertEquals(StartTLSOptions.OPTIONAL, mailConfig.getStarttls()); assertTrue(mailConfig.isSsl()); }
@Test public void testConstructorAll() { MailConfig mailConfig = new MailConfig("somehost", 12345, StartTLSOptions.DISABLED, LoginOption.DISABLED); assertEquals("somehost", mailConfig.getHostname()); assertEquals(12345, mailConfig.getPort()); assertEquals(StartTLSOptions.DISABLED, mailConfig.getStarttls()); assertEquals(LoginOption.DISABLED, mailConfig.getLogin()); }
@Test public void newJsonEmptyTest() { JsonObject json = new JsonObject("{}"); MailConfig mailConfig = new MailConfig(json); assertEquals("{\"hostname\":\"localhost\",\"port\":25,\"starttls\":\"OPTIONAL\",\"login\":\"NONE\"," + "\"maxPoolSize\":10}", mailConfig.toJson().encode()); }