Programing/Springboot
Spring boot 2.x SMTP send mail tutorial, 메일 보내기 java
리커니
2019. 12. 2. 10:33
반응형
Spring boot 2.x SMTP send mail tutorial, 메일 보내기 java
windows server 에 SMTP 세팅하는 방법은 아래의 Link를 참고하세요.
Link : [Window server]How to set up SMTP mail Server 메일서버 세팅 방법
다른 로직은 제외하고 메일보내는 코드만 정리하였습니다. 참고바랍니다.
메일을 보내기 위해서는 spring-boot-starter-mail 의 의존성 주입이 필요합니다.
[Gradle]
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail
compile group: 'org.springframework.boot', name: 'spring-boot-starter-mail', version: '2.2.1.RELEASE'
[Maven]
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
[SendMailApplication]
@SpringBootApplication
public class SendMailApplication {
public static void main(String[] args) {
ConfigurableApplicationContext ctx = SpringApplication.run(RedisTestApplication.class);
MailController mailController = ctx.getBean(MailController.class);
mailController.send();
}
}
[MailController]
@Controller
public class MailController {
private static final Logger LOGGER = LoggerFactory.getLogger(MailController.class);
@Autowired
private MailService ms;
public void sendMail() {
try{
ms.sendMail();
}catch(Exception e){
LOGGER.error("메일 전송에 실패하였습니다.", e);
}
}
}
[MailService]
public interface MailService {
void sendMail(String msg) throws Exception;
}
[MailServiceImpl]
@Service
public class MailServiceImpl implements MailService{
private static final Logger LOGGER = LoggerFactory.getLogger(MailServiceImpl.class);
@Autowired
private JavaMailSender javaMailSender;
@Override
public void sendMail() throws Exception {
try {
new Thread(new Runnable() {
@Override
public void run() {
final MimeMessagePreparator preparator = new MimeMessagePreparator() {
@Override
public void prepare(MimeMessage mimeMessage) throws Exception {
final MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
helper.setFrom("from@test.com");
helper.setTo("to@test.com");
helper.setSubject("제목");
helper.setText("내용", true);
}
};
javaMailSender.send(preparator);
}
}).start();
}catch(Exception e) {
throw e;
}
}
}
setText 시 내용에는 HTML 태그를 포함한 문자를 넣어주셔도 됩니다.
매개변수 true가 HTML을 포함하겠다는 옵션입니다.
반응형