@Test public void failedMailServerConnect() { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost(null); sender.setUsername("username"); sender.setPassword("password"); SimpleMailMessage simpleMessage1 = new SimpleMailMessage(); try { sender.send(simpleMessage1); fail("Should have thrown MailSendException"); } catch (MailSendException ex) { // expected ex.printStackTrace(); assertTrue(ex.getFailedMessages() != null); assertEquals(1, ex.getFailedMessages().size()); assertSame(simpleMessage1, ex.getFailedMessages().keySet().iterator().next()); assertSame(ex.getCause(), ex.getFailedMessages().values().iterator().next()); } }
@Test public void javaMailSenderWithCustomSession() throws MessagingException { final Session session = Session.getInstance(new Properties()); MockJavaMailSender sender = new MockJavaMailSender() { @Override protected Transport getTransport(Session sess) throws NoSuchProviderException { assertEquals(session, sess); return super.getTransport(sess); } }; sender.setSession(session); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); MimeMessage mimeMessage = sender.createMimeMessage(); mimeMessage.setSubject("custom"); mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("you@mail.org")); mimeMessage.setSentDate(new GregorianCalendar(2005, 3, 1).getTime()); sender.send(mimeMessage); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(1, sender.transport.getSentMessages().size()); assertEquals(mimeMessage, sender.transport.getSentMessage(0)); }
@Test public void failedMimeMessage() throws MessagingException { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); MimeMessage mimeMessage1 = sender.createMimeMessage(); mimeMessage1.setRecipient(Message.RecipientType.TO, new InternetAddress("he@mail.org")); mimeMessage1.setSubject("fail"); MimeMessage mimeMessage2 = sender.createMimeMessage(); mimeMessage2.setRecipient(Message.RecipientType.TO, new InternetAddress("she@mail.org")); try { sender.send(mimeMessage1, mimeMessage2); } catch (MailSendException ex) { ex.printStackTrace(); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(1, sender.transport.getSentMessages().size()); assertEquals(mimeMessage2, sender.transport.getSentMessage(0)); assertEquals(1, ex.getFailedMessages().size()); assertEquals(mimeMessage1, ex.getFailedMessages().keySet().iterator().next()); Object subEx = ex.getFailedMessages().values().iterator().next(); assertTrue(subEx instanceof MessagingException); assertEquals("failed", ((MessagingException) subEx).getMessage()); } }
sender.setHost("host"); sender.setPort(30); sender.setUsername("username"); sender.setPassword("password");
@Test public void failedSimpleMessage() throws MessagingException { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); SimpleMailMessage simpleMessage1 = new SimpleMailMessage(); simpleMessage1.setTo("he@mail.org"); simpleMessage1.setSubject("fail"); SimpleMailMessage simpleMessage2 = new SimpleMailMessage(); simpleMessage2.setTo("she@mail.org"); try { sender.send(simpleMessage1, simpleMessage2); } catch (MailSendException ex) { ex.printStackTrace(); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(1, sender.transport.getSentMessages().size()); assertEquals(new InternetAddress("she@mail.org"), sender.transport.getSentMessage(0).getAllRecipients()[0]); assertEquals(1, ex.getFailedMessages().size()); assertEquals(simpleMessage1, ex.getFailedMessages().keySet().iterator().next()); Object subEx = ex.getFailedMessages().values().iterator().next(); assertTrue(subEx instanceof MessagingException); assertEquals("failed", ((MessagingException) subEx).getMessage()); } }
@Test public void javaMailSenderWithMimeMessagePreparators() { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); final List<Message> messages = new ArrayList<>(); MimeMessagePreparator preparator1 = new MimeMessagePreparator() { @Override public void prepare(MimeMessage mimeMessage) throws MessagingException { mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("he@mail.org")); messages.add(mimeMessage); } }; MimeMessagePreparator preparator2 = new MimeMessagePreparator() { @Override public void prepare(MimeMessage mimeMessage) throws MessagingException { mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("she@mail.org")); messages.add(mimeMessage); } }; sender.send(preparator1, preparator2); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(2, sender.transport.getSentMessages().size()); assertEquals(messages.get(0), sender.transport.getSentMessage(0)); assertEquals(messages.get(1), sender.transport.getSentMessage(1)); }
@Test public void javaMailProperties() throws MessagingException { Properties props = new Properties(); props.setProperty("bogusKey", "bogusValue"); MockJavaMailSender sender = new MockJavaMailSender() { @Override protected Transport getTransport(Session sess) throws NoSuchProviderException { assertEquals("bogusValue", sess.getProperty("bogusKey")); return super.getTransport(sess); } }; sender.setJavaMailProperties(props); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); MimeMessage mimeMessage = sender.createMimeMessage(); mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("you@mail.org")); sender.send(mimeMessage); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(1, sender.transport.getSentMessages().size()); assertEquals(mimeMessage, sender.transport.getSentMessage(0)); }
@Test public void javaMailSenderWithSimpleMessages() throws MessagingException { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); SimpleMailMessage simpleMessage1 = new SimpleMailMessage(); simpleMessage1.setTo("he@mail.org"); SimpleMailMessage simpleMessage2 = new SimpleMailMessage(); simpleMessage2.setTo("she@mail.org"); sender.send(simpleMessage1, simpleMessage2); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(2, sender.transport.getSentMessages().size()); MimeMessage sentMessage1 = sender.transport.getSentMessage(0); List<Address> tos1 = Arrays.asList(sentMessage1.getRecipients(Message.RecipientType.TO)); assertEquals(1, tos1.size()); assertEquals("he@mail.org", ((InternetAddress) tos1.get(0)).getAddress()); MimeMessage sentMessage2 = sender.transport.getSentMessage(1); List<Address> tos2 = Arrays.asList(sentMessage2.getRecipients(Message.RecipientType.TO)); assertEquals(1, tos2.size()); assertEquals("she@mail.org", ((InternetAddress) tos2.get(0)).getAddress()); }
@Test public void javaMailSenderWithMimeMessageHelperAndDefaultEncoding() throws MessagingException { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); sender.setDefaultEncoding("UTF-8"); FileTypeMap fileTypeMap = new ConfigurableMimeFileTypeMap(); sender.setDefaultFileTypeMap(fileTypeMap); MimeMessageHelper message = new MimeMessageHelper(sender.createMimeMessage()); assertEquals("UTF-8", message.getEncoding()); assertEquals(fileTypeMap, message.getFileTypeMap()); message.setTo("you@mail.org"); sender.send(message.getMimeMessage()); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(1, sender.transport.getSentMessages().size()); assertEquals(message.getMimeMessage(), sender.transport.getSentMessage(0)); }
@Test public void javaMailSenderWithMimeMessages() throws MessagingException { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); MimeMessage mimeMessage1 = sender.createMimeMessage(); mimeMessage1.setRecipient(Message.RecipientType.TO, new InternetAddress("he@mail.org")); MimeMessage mimeMessage2 = sender.createMimeMessage(); mimeMessage2.setRecipient(Message.RecipientType.TO, new InternetAddress("she@mail.org")); sender.send(mimeMessage1, mimeMessage2); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(2, sender.transport.getSentMessages().size()); assertEquals(mimeMessage1, sender.transport.getSentMessage(0)); assertEquals(mimeMessage2, sender.transport.getSentMessage(1)); }
@Test public void javaMailSenderWithMimeMessagePreparator() { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); final List<Message> messages = new ArrayList<>(); MimeMessagePreparator preparator = new MimeMessagePreparator() { @Override public void prepare(MimeMessage mimeMessage) throws MessagingException { mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("you@mail.org")); messages.add(mimeMessage); } }; sender.send(preparator); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(1, sender.transport.getSentMessages().size()); assertEquals(messages.get(0), sender.transport.getSentMessage(0)); }
@Test public void javaMailSenderWithMimeMessageHelper() throws MessagingException { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); MimeMessageHelper message = new MimeMessageHelper(sender.createMimeMessage()); assertNull(message.getEncoding()); assertTrue(message.getFileTypeMap() instanceof ConfigurableMimeFileTypeMap); message.setTo("you@mail.org"); sender.send(message.getMimeMessage()); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(1, sender.transport.getSentMessages().size()); assertEquals(message.getMimeMessage(), sender.transport.getSentMessage(0)); }
@Test public void javaMailSenderWithMimeMessageHelperAndSpecificEncoding() throws MessagingException { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); MimeMessageHelper message = new MimeMessageHelper(sender.createMimeMessage(), "UTF-8"); assertEquals("UTF-8", message.getEncoding()); FileTypeMap fileTypeMap = new ConfigurableMimeFileTypeMap(); message.setFileTypeMap(fileTypeMap); assertEquals(fileTypeMap, message.getFileTypeMap()); message.setTo("you@mail.org"); sender.send(message.getMimeMessage()); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(1, sender.transport.getSentMessages().size()); assertEquals(message.getMimeMessage(), sender.transport.getSentMessage(0)); }
@Test public void failedMailServerClose() { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost(""); sender.setUsername("username"); sender.setPassword("password"); SimpleMailMessage simpleMessage1 = new SimpleMailMessage(); try { sender.send(simpleMessage1); fail("Should have thrown MailSendException"); } catch (MailSendException ex) { // expected ex.printStackTrace(); assertTrue(ex.getFailedMessages() != null); assertEquals(0, ex.getFailedMessages().size()); } }
@Test public void javaMailSenderWithMimeMessage() throws MessagingException { MockJavaMailSender sender = new MockJavaMailSender(); sender.setHost("host"); sender.setUsername("username"); sender.setPassword("password"); MimeMessage mimeMessage = sender.createMimeMessage(); mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("you@mail.org")); sender.send(mimeMessage); assertEquals("host", sender.transport.getConnectedHost()); assertEquals("username", sender.transport.getConnectedUsername()); assertEquals("password", sender.transport.getConnectedPassword()); assertTrue(sender.transport.isCloseCalled()); assertEquals(1, sender.transport.getSentMessages().size()); assertEquals(mimeMessage, sender.transport.getSentMessage(0)); }