JavaMail
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=[아이디]
spring.mail.password=[비밀번호]
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
#spring.mail.host= SMTP 서버 호스트 정보
#spring.mail.port= 포트 정보, 기본값 25
#spring.mail.username= 사용자이름
#spring.mail.password= 비번
#spring.mail.protocol= 프로토콜, 기본 smtp
#spring.mail.default-encoding= 시작시 SMTP 서버가 사용 가능한지 테스트 진행 여부, 기본값 false
#spring.mail.test-connection= MIME 메시지가 사용하는 인코딩 유형, 기본값 UTF-8
#spring.mail.jndi-name= JavaMail 세션에서 설정하는 추가적인 설정값
#spring.mail.properties.* JavaMail 세션 JNDI 이름. 자바 엔터프라이즈 서버에 미리 설정해 배포 시 사용할 수 있다.
https://myaccount.google.com/lesssecureapps?pli=1 들어가서
보안 수준이 낮은 앱 허용: 사용 으로 변경
추가적인 설정 레퍼런스 : https://javaee.github.io/javamail/docs/api/com/sun/mail/smtp/package-summary.html
package com.example.demo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
@Slf4j
@Configuration
public class MailApp {
@Bean
public ApplicationRunner startupMailSender(JavaMailSender javaMailSender){
return (args -> {
javaMailSender.send((msg)->{
var helper = new MimeMessageHelper(msg);
helper.setTo("[받는사람 이메일]");
helper.setFrom("[보내는사람 이메일]");
helper.setSubject("[제목] 테스트");
helper.setText("[내용] 테스트");
});
});
}
}
package com.example.demo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.thymeleaf.context.Context;
import org.thymeleaf.spring5.SpringTemplateEngine;
import java.util.Collections;
@Slf4j
@Configuration
public class MailApp {
@Bean
public ApplicationRunner startupMailSender(JavaMailSender javaMailSender, SpringTemplateEngine templateEngine){
return (args -> {
javaMailSender.send((msg)->{
var helper = new MimeMessageHelper(msg);
helper.setTo("[받는사람 이메일]");
helper.setFrom("[보내는 사람 이메일]");
helper.setSubject("[제목] 테스트");
var context = new Context(
LocaleContextHolder.getLocale(),
Collections.singletonMap("msg", "All is well!"));
var body = templateEngine.process("email.html",context);
helper.setText(body,true);
});
});
}
}
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p><strong th:text="${msg}">Some email content will be here</strong></p>
<p>
Kind Regards,
Your Application
</p>
</body>
</html>
'WEB > 스프링 부트 2' 카테고리의 다른 글
@JmsListener (0) | 2020.02.17 |
---|---|
JMS, ActiveMQ (0) | 2020.02.15 |
JDBC, Mapper / JPA / TestEntityManagerTest / SessionFactory (0) | 2020.02.14 |
MySQL 연결 / 스프링 schema.sql, data.sql / Flyway (0) | 2020.02.13 |
내장데이터베이스 Derby (0) | 2020.02.13 |