.setTo("user2@example.com") .setCc("user3@example.com") .setBcc("user4@example.com") .setBounceAddress("bounce@example.com") .setSubject("Test email with HTML")
@Test public void testBcc() { MailMessage mailMessage = new MailMessage(); mailMessage.setBcc("user@example.com"); assertEquals(Arrays.asList("user@example.com"), mailMessage.getBcc()); mailMessage.setBcc(Arrays.asList("user@example.com", "user@example.org")); assertEquals(Arrays.asList("user@example.com", "user@example.org"), mailMessage.getBcc()); }
@Override public Completable send(Mail email) { Single<Optional<Buffer>> htmlRender = email.renderHtml().map(buffer -> Optional.of(buffer)).toSingle(Optional.empty()); Single<Buffer> textRender = email.renderText(); return Single.zip(textRender, htmlRender, (text, html) -> { MailMessage message = new MailMessage(); message.setFrom(email.from); if(email.to != null) message.setTo(Arrays.asList(email.to)); if(email.cc != null) message.setCc(Arrays.asList(email.cc)); if(email.bcc != null) message.setBcc(Arrays.asList(email.bcc)); message.setSubject(email.subject); message.setText(text.toString()); if(html.isPresent()) message.setHtml(html.get().toString()); return mailClient.rxSendMail(message).ignoreElement(); }).flatMapCompletable(c -> c); } }
@Override public Completable send(Mail email) { Single<Optional<Buffer>> htmlRender = email.renderHtml().map(buffer -> Optional.of(buffer)).toSingle(Optional.empty()); Single<Buffer> textRender = email.renderText(); return Single.zip(textRender, htmlRender, (text, html) -> { MailMessage message = new MailMessage(); message.setFrom(email.from); if(email.to != null) message.setTo(Arrays.asList(email.to)); if(email.cc != null) message.setCc(Arrays.asList(email.cc)); if(email.bcc != null) message.setBcc(Arrays.asList(email.bcc)); message.setSubject(email.subject); message.setText(text.toString()); if(html.isPresent()) message.setHtml(html.get().toString()); return mailClient.rxSendMail(message).ignoreElement(); }).flatMapCompletable(c -> c); } }
/** * @param context * @return */ private static void createMailMessage(RoutingContext context, MailPreferences prefs, Handler<AsyncResult<MailMessage>> handler) { String mailFrom = prefs.from == null ? readParameter(context, FROM_PARAM, true) : prefs.from; MailMessage email = new MailMessage().setFrom(mailFrom); if (prefs.bounceAddress != null) { email.setBounceAddress(prefs.bounceAddress); } String to = prefs.to == null || prefs.to.hashCode() == 0 ? readParameterOrContext(context, TO_PARAMETER, null, true) : prefs.to; email.setTo(to); String bcc = prefs.bcc == null || prefs.bcc.hashCode() == 0 ? readParameterOrContext(context, BCC_PARAMETER, null, false) : prefs.bcc; if (bcc != null) email.setBcc(bcc); String subject = prefs.subject == null ? readParameterOrContext(context, SUBJECT_PARAMETER, null, false) : prefs.subject; email.setSubject(subject); String text = prefs.text == null || prefs.text.hashCode() == 0 ? readParameterOrContext(context, TEXT_PARAMETER, null, false) : prefs.text; email.setText(text); String template = prefs.template == null || prefs.template.hashCode() == 0 ? readParameterOrContext(context, TEMPLATE_PARAM, null, false) : prefs.template; createMailContent(context, prefs, handler, email, template); }
@Test public void mailBounceAddrOnlyTest(TestContext testContext) { this.testContext=testContext; testSuccess(new MailMessage().setBounceAddress("from@example.com").setBcc("user@example.com")); }