preparator.prepare(mimeMessage); LOG.info("\"Sending\" email: "); if (mimeMessage.getContent() instanceof MimeMultipart) { MimeMultipart msg = (MimeMultipart) mimeMessage.getContent(); DataHandler dh = msg.getBodyPart(0).getDataHandler(); ByteArrayOutputStream baos = null; LOG.info(mimeMessage.getContent());
@Test public void shouldSendTestEmail() throws Exception { configure(); underTest.sendTestEmail("user@nowhere", "Test Message from SonarQube", "This is a test message from SonarQube."); List<WiserMessage> messages = smtpServer.getMessages(); assertThat(messages).hasSize(1); MimeMessage email = messages.get(0).getMimeMessage(); assertThat(email.getHeader("Content-Type", null)).isEqualTo("text/plain; charset=UTF-8"); assertThat(email.getHeader("From", ",")).isEqualTo("SonarQube from NoWhere <server@nowhere>"); assertThat(email.getHeader("To", null)).isEqualTo("<user@nowhere>"); assertThat(email.getHeader("Subject", null)).isEqualTo("[SONARQUBE] Test Message from SonarQube"); assertThat((String) email.getContent()).startsWith("This is a test message from SonarQube."); }
@Test public void shouldSendThreadedEmail() throws Exception { configure(); EmailMessage emailMessage = new EmailMessage() .setMessageId("reviews/view/1") .setFrom("Full Username") .setTo("user@nowhere") .setSubject("Review #3") .setMessage("I'll take care of this violation."); boolean delivered = underTest.deliver(emailMessage); List<WiserMessage> messages = smtpServer.getMessages(); assertThat(messages).hasSize(1); MimeMessage email = messages.get(0).getMimeMessage(); assertThat(email.getHeader("Content-Type", null)).isEqualTo("text/plain; charset=UTF-8"); assertThat(email.getHeader("In-Reply-To", null)).isEqualTo("<reviews/view/1@nemo.sonarsource.org>"); assertThat(email.getHeader("References", null)).isEqualTo("<reviews/view/1@nemo.sonarsource.org>"); assertThat(email.getHeader("List-ID", null)).isEqualTo("SonarQube <sonar.nemo.sonarsource.org>"); assertThat(email.getHeader("List-Archive", null)).isEqualTo("http://nemo.sonarsource.org"); assertThat(email.getHeader("From", ",")).isEqualTo("\"Full Username (SonarQube from NoWhere)\" <server@nowhere>"); assertThat(email.getHeader("To", null)).isEqualTo("<user@nowhere>"); assertThat(email.getHeader("Subject", null)).isEqualTo("[SONARQUBE] Review #3"); assertThat((String) email.getContent()).startsWith("I'll take care of this violation."); assertThat(delivered).isTrue(); }
@Test public void shouldSendNonThreadedEmail() throws Exception { configure(); EmailMessage emailMessage = new EmailMessage() .setTo("user@nowhere") .setSubject("Foo") .setMessage("Bar"); boolean delivered = underTest.deliver(emailMessage); List<WiserMessage> messages = smtpServer.getMessages(); assertThat(messages).hasSize(1); MimeMessage email = messages.get(0).getMimeMessage(); assertThat(email.getHeader("Content-Type", null)).isEqualTo("text/plain; charset=UTF-8"); assertThat(email.getHeader("In-Reply-To", null)).isNull(); assertThat(email.getHeader("References", null)).isNull(); assertThat(email.getHeader("List-ID", null)).isEqualTo("SonarQube <sonar.nemo.sonarsource.org>"); assertThat(email.getHeader("List-Archive", null)).isEqualTo("http://nemo.sonarsource.org"); assertThat(email.getHeader("From", null)).isEqualTo("SonarQube from NoWhere <server@nowhere>"); assertThat(email.getHeader("To", null)).isEqualTo("<user@nowhere>"); assertThat(email.getHeader("Subject", null)).isEqualTo("[SONARQUBE] Foo"); assertThat((String) email.getContent()).startsWith("Bar"); assertThat(delivered).isTrue(); }
@Override public Object getContent() throws IOException, MessagingException { if (AbstractMailReceiver.this.simpleContent) { return super.getContent(); } else { return this.content; } }
assertEquals(sentDate.getTime(), sentMessage.getSentDate().getTime()); assertEquals("my subject", sentMessage.getSubject()); assertEquals("my text", sentMessage.getContent());
@Test(timeout=10000) public void testTaskReminderWithNotificationByTaskNostarted() throws Exception { CountDownTaskEventListener countDownListener = new CountDownTaskEventListener(1, false, true); addCountDownListner(countDownListener); Map<String, Object> vars = new HashMap<String, Object>(); vars.put("now", new Date()); Reader reader = new InputStreamReader(getClass().getResourceAsStream(MvelFilePath .ReminderWithNotificationReserved)); InternalTask task = (InternalTask) TaskFactory.evalTask(reader, vars); System.out.println("testTaskReminderWithNotificationByTaskNostarted " + task.getTaskData().getStatus()); assertEquals(1, task.getDeadlines().getEndDeadlines().size()); assertEquals(1, task.getDeadlines().getStartDeadlines().size()); long taskId = taskService.addTask(task, new HashMap<String, Object>()); taskService.executeReminderForTask(taskId, "Luke Cage"); countDownListener.waitTillCompleted(); assertEquals(2, wiser.getMessages().size()); final List<String> list = new ArrayList<String>(2); list.add(wiser.getMessages().get(0).getEnvelopeReceiver()); list.add(wiser.getMessages().get(1).getEnvelopeReceiver()); assertTrue(list.contains("tony@domain.com")); assertTrue(list.contains("darth@domain.com")); MimeMessage msg = ((WiserMessage) wiser.getMessages().get(0)).getMimeMessage(); assertEquals("ReminderWithNotificationReserved:you have new task to be started", msg.getSubject()); assertEquals("task is not started", msg.getContent()); msg = ((WiserMessage) wiser.getMessages().get(1)).getMimeMessage(); assertEquals("ReminderWithNotificationReserved:you have new task to be started", msg.getSubject()); assertEquals("task is not started", msg.getContent()); }
assertEquals("ReminderWithNotificationInProgress:you have new task to be completed", msg.getSubject()); assertEquals("task is not completed", msg.getContent()); assertEquals("task is not completed", msg.getContent());
IntegrationMimeMessage(MimeMessage source) throws MessagingException { super(source); this.source = source; if (AbstractMailReceiver.this.simpleContent) { this.content = null; } else { Object complexContent; try { complexContent = source.getContent(); } catch (IOException e) { complexContent = "Unable to extract content; see logs: " + e.getMessage(); AbstractMailReceiver.this.logger.error("Failed to extract content from " + source, e); } this.content = complexContent; } }
assertEquals("'singleobject'", msg.getContent()); assertEquals("'singleobject'", msg.getSubject()); assertEquals("from@domain.com", ((InternetAddress) msg.getFrom()[0]).getAddress());
assertEquals(myBody, msg.getContent()); assertEquals(mySubject, msg.getSubject()); assertEquals("from@domain.com", ((InternetAddress) msg.getFrom()[0]).getAddress());
theMessage = new IntegrationMimeMessage(message); content = theMessage.getContent(); if (content instanceof String) { headers.put(MessageHeaders.CONTENT_TYPE, "text/plain");
/** * Gets the email message body as text. */ private String getTextFromEmail(MimeMessage email) throws MessagingException, IOException { if (email.isMimeType("text/*")) { return (String) email.getContent(); } else { return getTextFromPart(email); } }
@Test void transformerWithinChain() throws Exception { try (ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("mailToStringTransformerWithinChain.xml", this.getClass());) { MessageChannel input = new BeanFactoryChannelResolver(context).resolveDestination("input"); PollableChannel output = (PollableChannel) new BeanFactoryChannelResolver(context).resolveDestination("output"); MimeMessage mimeMessage = Mockito.mock(MimeMessage.class); Mockito.when(mimeMessage.getContent()).thenReturn("foo"); input.send(new GenericMessage<javax.mail.Message>(mimeMessage)); Message<?> result = output.receive(0); assertNotNull(result); assertEquals("FOO!!!", result.getPayload()); Mockito.verify(mimeMessage).getContent(); } }
@Override protected void execute(TestPluginLifeCycle lifeCycle, Wiser wiser) throws IOException, MessagingException, ExecutionException, InterruptedException { Shell shell = lifeCycle.createShell(); lifeCycle.bindClass("produce", Commands.ProduceValue.class); lifeCycle.bindClass("consume", Commands.ConsumeObject.class); Commands.list.clear(); BaseProcessContext process = BaseProcessContext.create(shell, "produce | mail send -s the_subject -b admin@gmail.com | consume").execute(); ShellResponse.Ok ok = assertInstance(ShellResponse.Ok.class, process.getResponse()); Assert.assertEquals(1, wiser.getMessages().size()); WiserMessage msg = wiser.getMessages().get(0); Assert.assertEquals("foo@gmail.com", msg.getEnvelopeSender()); Assert.assertEquals("admin@gmail.com", msg.getEnvelopeReceiver()); Assert.assertEquals("the_subject", msg.getMimeMessage().getSubject()); String data = new String(msg.getData()); String content = (String)msg.getMimeMessage().getContent(); assertTrue(content.contains("<value>abc</value>")); assertTrue(data.contains("Content-Type: text/html;charset=UTF-8")); System.out.println("data = " + data); assertEquals(Arrays.<Object>asList(new Value("abc")), Commands.list); } };
@Test public void byteArrayMessage() throws Exception { byte[] payload = {1, 2, 3}; org.springframework.messaging.Message<byte[]> message = MessageBuilder.withPayload(payload) .setHeader(MailHeaders.ATTACHMENT_FILENAME, "attachment.txt") .setHeader(MailHeaders.TO, MailTestsHelper.TO) .build(); this.handler.handleMessage(message); byte[] buffer = new byte[1024]; MimeMessage mimeMessage = this.mailSender.getSentMimeMessages().get(0); assertTrue("message must be multipart", mimeMessage.getContent() instanceof Multipart); int size = new DataInputStream(((Multipart) mimeMessage.getContent()).getBodyPart(0).getInputStream()).read(buffer); assertEquals("buffer size does not match", payload.length, size); byte[] messageContent = new byte[size]; System.arraycopy(buffer, 0, messageContent, 0, payload.length); assertArrayEquals("buffer content does not match", payload, messageContent); assertEquals(mimeMessage.getRecipients(Message.RecipientType.TO).length, MailTestsHelper.TO.length); }
@Test public void byteArrayMessage() throws Exception { byte[] payload = {1, 2, 3}; org.springframework.messaging.Message<?> message = MessageBuilder.withPayload(payload) .setHeader(MailHeaders.ATTACHMENT_FILENAME, "attachment.txt") .setHeader(MailHeaders.TO, MailTestsHelper.TO) .build(); this.handler.handleMessage(message); assertEquals("no mime message should have been sent", 1, this.mailSender.getSentMimeMessages().size()); assertEquals("only one simple message must be sent", 0, this.mailSender.getSentSimpleMailMessages().size()); byte[] buffer = new byte[1024]; MimeMessage mimeMessage = this.mailSender.getSentMimeMessages().get(0); assertTrue("message must be multipart", mimeMessage.getContent() instanceof Multipart); int size = new DataInputStream(((Multipart) mimeMessage.getContent()).getBodyPart(0).getInputStream()).read(buffer); assertEquals("buffer size does not match", payload.length, size); byte[] messageContent = new byte[size]; System.arraycopy(buffer, 0, messageContent, 0, payload.length); assertArrayEquals("buffer content does not match", payload, messageContent); assertEquals(mimeMessage.getRecipients(Message.RecipientType.TO).length, MailTestsHelper.TO.length); }
@Test public void testConvertToMimeMessage() throws Exception { EmailWrapper wrapper = getTypicalEmailWrapper(); MimeMessage email = new JavamailService().parseToEmail(wrapper); assertEquals(new InternetAddress(wrapper.getSenderEmail(), wrapper.getSenderName()), email.getFrom()[0]); assertEquals(new InternetAddress(wrapper.getReplyTo()), email.getReplyTo()[0]); assertEquals(new InternetAddress(wrapper.getRecipient()), email.getRecipients(Message.RecipientType.TO)[0]); assertEquals(new InternetAddress(wrapper.getBcc()), email.getRecipients(Message.RecipientType.BCC)[0]); assertEquals(wrapper.getSubject(), email.getSubject()); assertEquals(wrapper.getContent(), email.getContent().toString()); }
@Test public void testImap() throws Exception { Message<?> message = this.imapChannel.receive(10000); assertNotNull(message); MimeMessage mm = (MimeMessage) message.getPayload(); assertEquals("Foo <foo@bar>", mm.getRecipients(RecipientType.TO)[0].toString()); assertEquals("Bar <bar@baz>", mm.getFrom()[0].toString()); assertEquals("Test Email", mm.getSubject()); assertThat(mm.getContent(), equalTo(TestMailServer.MailServer.MailHandler.BODY + "\r\n")); }
assertTrue(received.getPayload().getLineCount() > -1); if (simple) { assertThat(received.getPayload().getContent(), equalTo(TestMailServer.MailServer.MailHandler.BODY + "\r\n")); assertThat(received.getPayload().getContent(), equalTo(TestMailServer.MailServer.MailHandler.MESSAGE + "\r\n"));