1. pom.xml 수정
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId></dependency>
2. application.yml 수정
spring
mail:
host: smtp.naver.com #smtp.mailplug.co.kr #smtp.office365.com
port: 465 #587
username: 대표 이메일
password: 대표 이메일 비번
properties:
mail:
smtp:
auth: true
starttls:
enable: false
required: false
ssl:
enable: true
3. controller 수정
@RestController
public class MailApiController {
@Autowired
private JavaMailSender javaMailSender;
@PostMapping("/auth/certificationMail")
public ResponseDto<Integer> mailCheck(HttpServletRequest request, @RequestBody User user) {
System.out.println("email:::"+user.getEmail());
String path = request.getRequestURL().toString();
path = path.replace("/auth/certificationMail", "");
String returnUrl = path + "/auth/verify";
String verificationCode = createCode();
try {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
String htmlBody = gethtmlBody(returnUrl, verificationCode);
// 발신자 메일 주소 설정
helper.setFrom("발신자이메일@naver.com");
// 수신자 메일 주소 설정
helper.setTo(user.getEmail());
// 메일 제목 설정
helper.setSubject("메일 인증 테스트");
// HTML 내용을 설정합니다.
helper.setText(htmlBody, true);
javaMailSender.send(mimeMessage);
return new ResponseDto<Integer>(HttpStatus.OK.value(), Integer.parseInt(verificationCode));
} catch (MessagingException e) {
e.printStackTrace();
return new ResponseDto<Integer>(HttpStatus.BAD_REQUEST.value(),0);
}
}
public String gethtmlBody(String link, String code) {
String htmlBody = "<html><body>"
+ "<p><b>회원가입 화면에서 아래 인증코드 6자리를 입력 후 인증확인 버튼을 눌러주세요.</b></p><br/>"
+ "<p><b>인증코드: "+ code +"</b></p>"
//+ "<a href='"+link+"'>"+"TEST 링크 >>>> "+link+"</a>"
+ "</body></html>";
return htmlBody;
}
private String createCode() {
int lenth = 6;
try {
Random random = SecureRandom.getInstanceStrong();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < lenth; i++) {
builder.append(random.nextInt(10));
}
return builder.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
//log.debug("MemberService.createCode() exception occur");
return null;
}
}
}