Wstęp
Przydatne klasy:
- EmailService - wysyłanie maili
- EmailConfigurationService - pobieranie konfiguracji skrzynek pocztowych
Pobieranie konfiguracji
//Pobieranie konfiguracji skrzynki pocztowej EmailConfiguration emailConfiguration = emailConfigurationService.getDefaultConfiguration(); // Pobranie domyślnej konfiguracji EmailConfiguration emailConfiguration1 = emailConfigurationService.get( 1L,EmailConfiguration.JOIN_CONNECTION ); // Pobranie po id konfiguracji w bazie danych
Wysyłanie maila za pomocą obiektu EmailMessage
Podstawowe
EmailMessage emailMessage = EmailMessage.builder() .recipient( "test@testowy.pl" ) // Odbiorca wiadomości .subject( "Testowy email" ) // Temat wiadomości .content( "To jest przykładowy email" ) // Zawartość wiadomości .build(); emailService.send( emailMessage ); // Za pomocą domyślnej konfiguracji emailService.send( emailMessage, emailConfiguration ); // Za pomocą pobranej wcześniej konfiguracji
Wysyłanie do wielu oraz kopie i ślepe kopie
EmailMessage emailMessage = EmailMessage.builder() .recipients( Arrays.asList( "test@testowy.pl", "test@testowy.pl") ) //Odbiorcy .copyRecipients( Arrays.asList( "test-copy@testowy.pl", "test-copy1@testowy.pl") ) // Odbiorcy kopii .hiddenCopyRecipients( Arrays.asList( "test-blindcopy@testowy.pl", "test-blindcopy1@testowy.pl") ) // Odbiorcy ślepych kopii .subject( "Testowy email" ) //Temat wiadomości .content( "To jest przykładowy email" ) //Zawartość wiadomości .build();
Dodatkowe opcje konfiguracyjne
EmailMessage emailMessage = EmailMessage.builder() .recipient( "test@testowy.pl" ) //Odbiorca wiadomości .subject( "Testowy email" ) //Temat wiadomości .content( "To jest <b>przykładowy</b> email" ) //Zawartość wiadomości .isHtml( true ) //Czy zawartość wiadomości jest html .test( false ) // Czy jest to wiadomość testowa, jeśli tak to nie będzie wysyłana buforowo .build();
Dołączanie załączników
//Tworzenie załączników EmailAttachment zal1 = EmailAttachment.builder() .file( new File( "C:\\test\\plik1.txt" ) ) .filename( "zal1.txt" ) .build(); EmailAttachment zal2 = EmailAttachment.builder() .file( new File( "C:\\test\\plik2.txt" ) ) .filename( "zal2.txt" ) .build(); EmailMessage emailMessage = EmailMessage.builder() .recipient( "test@testowy.pl" ) //Odbiorca wiadomości .subject( "Testowy email" ) //Temat wiadomości .content( "To jest przykładowy email" ) //Zawartość wiadomości .attachments( Arrays.asList( zal1, zal2 ) ) // Dołączanie załączników .build();
Podmienianie parametrów w temacie i zawartości
//Tworzenie listy parametrów Map<String,String> paramMap = new HashMap<>(); paramMap.put( "param1","Pierwszy argument" ); paramMap.put( "param2","Drugi argument" ); EmailMessage emailMessage = EmailMessage.builder() .recipient( "wbachan@suncode.pl" ) //Odbiorca wiadomości .subject( "Testowy email @param1@" ) //Temat wiadomości .content( "Test: @param2@" ) //Zawartość wiadomości .params( paramMap ) // Parametry, które mają zostać podmienione w temacie i zawartości wiadomości .build();
Szablon zawartości
// Za pomocą pliku EmailMessage emailMessage = EmailMessage.builder() .recipient( "wbachan@suncode.pl" ) //Odbiorca wiadomości .subject( "Testowy email" ) //Temat wiadomości .template( new File( "C:\\test\\szablon.html" ) ) // Szablon zawartości .build(); // Za pomocą input streama try ( InputStream inputStream = new FileInputStream( "C:\\test\\szablon1.html" ) ) { EmailMessage emailMessage = EmailMessage.builder() .recipient( "wbachan@suncode.pl" ) //Odbiorca wiadomości .subject( "Testowy email" ) //Temat wiadomości .templateInputStream( inputStream ) // Szablon zawartości .build(); }
Dodatkowe informacje do audytów
//Tworzenie informacji dla audytu EmailInfo emailInfo = EmailInfo.builder() .activityId( "zad23" ) .processId( "proc73453" ) .build(); EmailMessage emailMessage = EmailMessage.builder() .recipient( "wbachan@suncode.pl" ) //Odbiorca wiadomości .subject( "Testowy email" ) //Temat wiadomości .content( "Testowa zawartość" ) // Zawartość wiadomości .emailInfo( emailInfo ) // Dołączanie informacji .build();
Wysyłanie maila za pomocą MimeMessage
//Pobranie sesji Session mailSession = emailService.getSession(); // Pobranie domyślnej sesji Session mailSession1 = emailService.getSession(emailConfiguration); // Pobranie sesji z konkretnej konfiguracji //Tworzenie wiadomości MimeMessage mimeMessage = new MimeMessage( mailSession ); mimeMessage.addRecipients( Message.RecipientType.TO, "test@testowy.pl" ); // Dodanie odbiorcy mimeMessage.setSubject( "Testowa wiadomość", "UTF-8" ); // Ustawienie tematu mimeMessage.setSentDate( new Date() ); // Ustawienie daty wysłania mimeMessage.setFrom( new InternetAddress( "test-nadawca@testowy.pl" ) ); // Ustawienie nadawcy mimeMessage.setText( "Testowa zawartość" ); // Ustawienie zawartości emailService.send( mimeMessage ); // Wysłanie z podstawowej konfiguracji emailService.send( mimeMessage, emailConfiguration ); // Wysłanie z podanej konfiguracji emailService.send( mimeMessage, emailInfo ); // Wysłanie z podstawowej konfiguracji oraz informacją dla audytów emailService.send( mimeMessage, emailConfiguration, emailInfo ); // Wysłanie z podanej konfiguracji oraz informacją dla audytów