Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- spring
- db종류
- codeium
- JPA
- git pat
- pat발급
- 르세라핌
- 애널리틱스4
- Python
- 11월순위
- analytics4
- 데이터내보내기
- 도커이미지
- 컬렉션프레임워크
- 티스토리챌린지
- IntelliJ
- 명령어
- docker
- gtihub
- ci/cd
- docker 명령어
- java
- 오블완
- DBMS
- bigquery
- JPQL
- ANTIFRAGILE
- git branch 삭제
- datagrip
Archives
- Today
- Total
hanker
Spring Boot - 이메일 전송(1)(JavaMailSender) 본문
반응형
Spring Boot 이메일 전송
1. pom.xml 의존성 주입
<!-- Email 인증 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
- JavaMailSender 등 클래스, 인터페이스를 사용하기 위함
2. resources 경로 밑에 mail/email.properties 파일 생성 (gmail SMTP 사용)
## Email Settings
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=Gmail아이디@gmail.com
spring.mail.password=Gmail비밀번호
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.transport.protocol=smtp
spring.mail.debug=true
spring.mail.default.encoding=UTF-8
3. EmailConfig 설정
@Configuration
@PropertySource("classpath:mail/email.properties")
public class EmailConfig {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
public EmailConfig() throws IOException {
logger.info("EmailConfig.java constructor called");
}
@Value("${spring.mail.transport.protocol}")
private String protocol;
@Value("${spring.mail.properties.mail.smtp.auth}")
private boolean auth;
@Value("${spring.mail.properties.mail.smtp.starttls.enable}")
private boolean starttls;
@Value("${spring.mail.debug}")
private boolean debug;
@Value("${spring.mail.host}")
private String host;
@Value("${spring.mail.port}")
private int port;
@Value("${spring.mail.username}")
private String username;
@Value("${spring.mail.password}")
private String password;
@Value("${spring.mail.default.encoding}")
private String encoding;
@Bean
public JavaMailSender javaMailSender(){
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
Properties properties = new Properties();
properties.put("mail.transport.protocol", protocol);
properties.put("mail.smtp.auth", auth);
properties.put("mail.smtp.starttls.enable", starttls);
properties.put("mail.smtp.debug", debug);
mailSender.setHost(host);
mailSender.setUsername(username);
mailSender.setPassword(password);
mailSender.setPort(port);
mailSender.setJavaMailProperties(properties);
mailSender.setDefaultEncoding(encoding);
return mailSender;
}
}
4. View 설정
<div class="form-floating mb-3">
<input class="form-control" id="inputEmail" type="email" />
<label for="inputEmail" th:text="#{email}"></label>
<button class="btn btn-secondary btn-block" th:text="#{certified_email}"
id="certEmail">
</button>
</div>
$(function(){
$("#certEmail").click(function(){
var data = {
email : $("#inputEmail").val(),
};
$.ajax({
url : "/certifiedEmail",
type : "post",
data : data,
dataType : "json",
success: [function(rs){
console.log(rs);
}], error : function(rs){
}
});
});
});
- 이메일을 입력하여 message를 보내는 방식
5. Controller
@PostMapping("/certifiedEmail")
public void certifiedEmail(@RequestParam("email") String email){
loginService.mailSend(email);
}
6. Service
private final JavaMailSender javaMailSender;
public void mailSend(String email) {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setTo(email);
simpleMailMessage.setSubject("title");
simpleMailMessage.setText("Text Mail Sender");
javaMailSender.send(simpleMailMessage);
}
- setSubject : 제목
- setText : 글내용
결과
반응형
'SPRING' 카테고리의 다른 글
Java - 웹 크롤링(Web Crawling) - jsoup (1) (0) | 2021.11.09 |
---|---|
Spring boot - 이메일 전송 (2) (0) | 2021.10.07 |
Spring Security - 로그인 경로 지정(java) (0) | 2021.08.25 |
Spring boot - boot 실행 시 sql 문 실행 (0) | 2021.08.23 |
Spring JPA - referencedColumnName (feat. @JoinColumn) (0) | 2021.05.27 |