Search in sources :

Example 6 with InternetAddress

use of jakarta.mail.internet.InternetAddress in project spring-framework by spring-projects.

the class JavaMailSenderTests method javaMailSenderWithSimpleMessage.

@Test
public void javaMailSenderWithSimpleMessage() throws MessagingException, IOException {
    MockJavaMailSender sender = new MockJavaMailSender();
    sender.setHost("host");
    sender.setPort(30);
    sender.setUsername("username");
    sender.setPassword("password");
    SimpleMailMessage simpleMessage = new SimpleMailMessage();
    simpleMessage.setFrom("me@mail.org");
    simpleMessage.setReplyTo("reply@mail.org");
    simpleMessage.setTo("you@mail.org");
    simpleMessage.setCc("he@mail.org", "she@mail.org");
    simpleMessage.setBcc("us@mail.org", "them@mail.org");
    Date sentDate = new GregorianCalendar(2004, 1, 1).getTime();
    simpleMessage.setSentDate(sentDate);
    simpleMessage.setSubject("my subject");
    simpleMessage.setText("my text");
    sender.send(simpleMessage);
    assertThat(sender.transport.getConnectedHost()).isEqualTo("host");
    assertThat(sender.transport.getConnectedPort()).isEqualTo(30);
    assertThat(sender.transport.getConnectedUsername()).isEqualTo("username");
    assertThat(sender.transport.getConnectedPassword()).isEqualTo("password");
    assertThat(sender.transport.isCloseCalled()).isTrue();
    assertThat(sender.transport.getSentMessages().size()).isEqualTo(1);
    MimeMessage sentMessage = sender.transport.getSentMessage(0);
    List<Address> froms = Arrays.asList(sentMessage.getFrom());
    assertThat(froms.size()).isEqualTo(1);
    assertThat(((InternetAddress) froms.get(0)).getAddress()).isEqualTo("me@mail.org");
    List<Address> replyTos = Arrays.asList(sentMessage.getReplyTo());
    assertThat(((InternetAddress) replyTos.get(0)).getAddress()).isEqualTo("reply@mail.org");
    List<Address> tos = Arrays.asList(sentMessage.getRecipients(Message.RecipientType.TO));
    assertThat(tos.size()).isEqualTo(1);
    assertThat(((InternetAddress) tos.get(0)).getAddress()).isEqualTo("you@mail.org");
    List<Address> ccs = Arrays.asList(sentMessage.getRecipients(Message.RecipientType.CC));
    assertThat(ccs.size()).isEqualTo(2);
    assertThat(((InternetAddress) ccs.get(0)).getAddress()).isEqualTo("he@mail.org");
    assertThat(((InternetAddress) ccs.get(1)).getAddress()).isEqualTo("she@mail.org");
    List<Address> bccs = Arrays.asList(sentMessage.getRecipients(Message.RecipientType.BCC));
    assertThat(bccs.size()).isEqualTo(2);
    assertThat(((InternetAddress) bccs.get(0)).getAddress()).isEqualTo("us@mail.org");
    assertThat(((InternetAddress) bccs.get(1)).getAddress()).isEqualTo("them@mail.org");
    assertThat(sentMessage.getSentDate().getTime()).isEqualTo(sentDate.getTime());
    assertThat(sentMessage.getSubject()).isEqualTo("my subject");
    assertThat(sentMessage.getContent()).isEqualTo("my text");
}
Also used : InternetAddress(jakarta.mail.internet.InternetAddress) SimpleMailMessage(org.springframework.mail.SimpleMailMessage) InternetAddress(jakarta.mail.internet.InternetAddress) Address(jakarta.mail.Address) MimeMessage(jakarta.mail.internet.MimeMessage) GregorianCalendar(java.util.GregorianCalendar) Date(java.util.Date) Test(org.junit.jupiter.api.Test)

Example 7 with InternetAddress

use of jakarta.mail.internet.InternetAddress in project spring-framework by spring-projects.

the class JavaMailSenderTests method javaMailProperties.

@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 {
            assertThat(sess.getProperty("bogusKey")).isEqualTo("bogusValue");
            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);
    assertThat(sender.transport.getConnectedHost()).isEqualTo("host");
    assertThat(sender.transport.getConnectedUsername()).isEqualTo("username");
    assertThat(sender.transport.getConnectedPassword()).isEqualTo("password");
    assertThat(sender.transport.isCloseCalled()).isTrue();
    assertThat(sender.transport.getSentMessages().size()).isEqualTo(1);
    assertThat(sender.transport.getSentMessage(0)).isEqualTo(mimeMessage);
}
Also used : InternetAddress(jakarta.mail.internet.InternetAddress) MimeMessage(jakarta.mail.internet.MimeMessage) Properties(java.util.Properties) Session(jakarta.mail.Session) Test(org.junit.jupiter.api.Test)

Example 8 with InternetAddress

use of jakarta.mail.internet.InternetAddress in project spring-framework by spring-projects.

the class JavaMailSenderTests method javaMailSenderWithCustomSession.

@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 {
            assertThat(sess).isEqualTo(session);
            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);
    assertThat(sender.transport.getConnectedHost()).isEqualTo("host");
    assertThat(sender.transport.getConnectedUsername()).isEqualTo("username");
    assertThat(sender.transport.getConnectedPassword()).isEqualTo("password");
    assertThat(sender.transport.isCloseCalled()).isTrue();
    assertThat(sender.transport.getSentMessages().size()).isEqualTo(1);
    assertThat(sender.transport.getSentMessage(0)).isEqualTo(mimeMessage);
}
Also used : InternetAddress(jakarta.mail.internet.InternetAddress) MimeMessage(jakarta.mail.internet.MimeMessage) GregorianCalendar(java.util.GregorianCalendar) Properties(java.util.Properties) Session(jakarta.mail.Session) Test(org.junit.jupiter.api.Test)

Example 9 with InternetAddress

use of jakarta.mail.internet.InternetAddress in project spring-framework by spring-projects.

the class JavaMailSenderTests method failedSimpleMessage.

@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();
        assertThat(sender.transport.getConnectedHost()).isEqualTo("host");
        assertThat(sender.transport.getConnectedUsername()).isEqualTo("username");
        assertThat(sender.transport.getConnectedPassword()).isEqualTo("password");
        assertThat(sender.transport.isCloseCalled()).isTrue();
        assertThat(sender.transport.getSentMessages().size()).isEqualTo(1);
        assertThat(sender.transport.getSentMessage(0).getAllRecipients()[0]).isEqualTo(new InternetAddress("she@mail.org"));
        assertThat(ex.getFailedMessages().size()).isEqualTo(1);
        assertThat(ex.getFailedMessages().keySet().iterator().next()).isEqualTo(simpleMessage1);
        Object subEx = ex.getFailedMessages().values().iterator().next();
        boolean condition = subEx instanceof MessagingException;
        assertThat(condition).isTrue();
        assertThat(((MessagingException) subEx).getMessage()).isEqualTo("failed");
    }
}
Also used : InternetAddress(jakarta.mail.internet.InternetAddress) SimpleMailMessage(org.springframework.mail.SimpleMailMessage) MailSendException(org.springframework.mail.MailSendException) MessagingException(jakarta.mail.MessagingException) Test(org.junit.jupiter.api.Test)

Aggregations

InternetAddress (jakarta.mail.internet.InternetAddress)9 Test (org.junit.jupiter.api.Test)9 MimeMessage (jakarta.mail.internet.MimeMessage)8 SimpleMailMessage (org.springframework.mail.SimpleMailMessage)4 Address (jakarta.mail.Address)3 MessagingException (jakarta.mail.MessagingException)3 Session (jakarta.mail.Session)3 GregorianCalendar (java.util.GregorianCalendar)3 Properties (java.util.Properties)3 MailSendException (org.springframework.mail.MailSendException)3 Date (java.util.Date)2 FileTypeMap (jakarta.activation.FileTypeMap)1 Message (jakarta.mail.Message)1 NoSuchProviderException (jakarta.mail.NoSuchProviderException)1 Transport (jakarta.mail.Transport)1 URLName (jakarta.mail.URLName)1 AddressException (jakarta.mail.internet.AddressException)1 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 Arrays (java.util.Arrays)1