-
spring boot 로컬에서 smtp mail 테스트하기IT/spring 2021. 2. 18. 11:11
로컬에서 smtp mail 테스트 하는 방법 입니다.
maildev docker 준비
docker run -p 80:80 -p 25:25 maildev/maildev
dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-mail' } test { ... String activeProfile = System.properties['spring.profiles.active'] println "zone: $activeProfile" systemProperty "spring.profiles.active", activeProfile }
build.gradle
@Slf4j @Configuration public class CoreConfigration { @Value("${projects.properties.email-host}") String emailHost; @Value("${projects.properties.email-protocal}") String emailProtocal; @Value("${projects.properties.email-port}") int emailPort; @Bean public JavaMailSenderImpl mailSender() { JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); javaMailSender.setProtocol(emailProtocal); javaMailSender.setHost(emailHost); javaMailSender.setPort(emailPort); return javaMailSender; } ... }
config
spring: profiles: local projects: properties: email-host: localhost email-port: 25 email-protocal: smtp email-from: serviceteam@company.com
yaml
@Service public class MailService { @Autowired @Qualifier("mailSender") JavaMailSenderImpl javaMailSender; @Value("${projects.properties.email-from}") String from; public void sendHtml(String to, String subject, String content) throws MessagingException { MimeMessage mimeMessage = javaMailSender.createMimeMessage(); MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8"); messageHelper.setFrom(from); messageHelper.setTo(to); messageHelper.setSubject(subject); messageHelper.setText(content, true); javaMailSender.send(mimeMessage); } }
MailService
@SpringBootTest(classes = {ServiceMonitorApplication.class, MailService.class, JavaMailSenderImpl.class, ProjectProperties.class}, webEnvironment= SpringBootTest.WebEnvironment.RANDOM_PORT) @TestMethodOrder(MethodOrderer.OrderAnnotation.class) @Slf4j class MailServiceTest { @Autowired MailService mailService; @Autowired ProjectProperties projectProperties; @Test public void test() throws MessagingException { mailService.sendHtml( "asd@asd.net", "안녕하세요", "<b>Asdasd</b> <a href='http://google.con'> google</a>" ); } }
mail test
spring test start
-Dspring.profiles.active=local
gradle :test --tests "com.....MailServiceTest.test" -Dspring.profiles.active=local'
결과 'IT > spring' 카테고리의 다른 글
spring boot 세션만료 감지 (0) 2021.04.22 spring data jpa @Entity schema, catalog properties처리하기. (0) 2021.03.24 어디에서나 Spring 컨터이너 Bean 객체 얻어오기 (0) 2021.02.08 spring 시작(startup)과 끝 (end) 이벤트 받아오기 (0) 2021.02.08 Intellij spring entity jpa Persistence 기능 Diagram (0) 2021.02.08