일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 파이썬
- C++
- 프로그래머스
- Spring
- 자바
- python
- SWEA
- Computer Science
- 백준
- spotify
- Spring JPA
- Spotify Api
- Baekjoon
- SECS-II
- 스포티파이
- SW Expert Academy
- regression
- MYSQL
- Gem
- 회원가입
- 회귀
- c
- java
- programmers
- CS
- spring boot
- modern c++
- SECS/GEM
- linux
- SECS
Archives
- Today
- Total
비버놀로지
[Spring JPA] 1-6. 회원 가입 폼 서브밋 처리 본문
728x90
먼저 AccountController에서 회원 가입을 요청했을 때 정보를 받을 수 있도록 아래와 같은 코드를 추가해 줍니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
만약에 위와 같은 dependency가 없을 경우 pom.xml에 추가를 해줍니다.
위의 dependency를 활용해 메일을 보낼 수 있습니다.
private final JavaMailSender javaMailSender;
@PostMapping("/sign-up")
public String signUpSubmit(@Valid SignUpForm signUpForm, Errors errors) {
if (errors.hasErrors()) {
return "account/sign-up";
}
Account account = Account.builder().email(signUpForm.getEmail()).nickname(signUpForm.getNickname())
.password(signUpForm.getPassword()) // TODO encoding 해야됨
.studyCreatedByWeb(true).studyEnrollmentResultByWeb(true).studyUpdatedByWeb(true).build();
Account newAccount = accountRepository.save(account);
newAccount.generateEmailCheckToken();
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setSubject("스터디올래, 회원 가입 인증");
mailMessage.setText(
"/check-email-tocken?token=" + newAccount.getEmailCheckToken() + "&email=" + newAccount.getEmail());
javaMailSender.send(mailMessage);
return "redirect:/index.html";
}
위에서 사용한 javaMailSender를 사용하기 위해서 ConsoleMailSender를 만들어 줍니다.
Spring에서 메일을 보내주지만, 먼저 console로 찍어주기 위해 ConsoleMailSender를 만들어 줍니다.
package com.studyolle;
import java.io.InputStream;
import javax.mail.internet.MimeMessage;
import org.springframework.context.annotation.Profile;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessagePreparator;
import org.springframework.stereotype.Component;
import lombok.extern.slf4j.Slf4j;
@Profile("local")
@Component
@Slf4j
public class ConsoleMailSender implements JavaMailSender{
@Override
public void send(SimpleMailMessage simpleMailMessage) throws MailException {
log.info(simpleMailMessage.getText());
}
@Override
public void send(SimpleMailMessage... simpleMessages) throws MailException {
// TODO Auto-generated method stub
}
@Override
public MimeMessage createMimeMessage() {
// TODO Auto-generated method stub
return null;
}
@Override
public MimeMessage createMimeMessage(InputStream contentStream) throws MailException {
// TODO Auto-generated method stub
return null;
}
@Override
public void send(MimeMessage mimeMessage) throws MailException {
// TODO Auto-generated method stub
}
@Override
public void send(MimeMessage... mimeMessages) throws MailException {
// TODO Auto-generated method stub
}
@Override
public void send(MimeMessagePreparator mimeMessagePreparator) throws MailException {
}
@Override
public void send(MimeMessagePreparator... mimeMessagePreparators) throws MailException {
// TODO Auto-generated method stub
}
}
위와 같이 send를 요청했을 경우 log를 찍도록 작성합니다.
실행을 하게되면 위과 같은 콘솔이 찍히는 것을 확인 할 수 있습니다.
728x90
'LANGUAGE STUDY > Spring' 카테고리의 다른 글
[Spring JPA] 1-8. 회원 가입 : 패스워드 인코더 (0) | 2021.04.30 |
---|---|
[Spring JPA] 1-7. 회원 가입 리펙토링 및 테스트 (0) | 2021.04.30 |
[Spring JPA] 1-5. 회원 가입 폼 서브밋 검증 (0) | 2021.04.30 |
[Spring JPA] 1-4. 회원 가입 : 뷰 (0) | 2021.04.30 |
[Spring JPA] 1-3. 회원 가입 : 컨트롤러 (0) | 2021.04.27 |
Comments