728x90
반응형
게시글의 조회수가 많아져 알립니다.
해당 게시글은 1편이고 2편은 여기에 있습니다.
2편에서는 서버 측의 코드가 바뀌었으니 1편만 확인해서는 기능 구현이 안 될 수 있습니다.
스프링 부트로 웹을 개발하면서 웹 사이트에 흔히 본인 인증 수단으로 사용할 수 있는 이메일 인증을 구현해보고 싶어서 오랜만에 노트북을 열었다.
사용기술 :
AJAX
Jquery
Spring boot starter mail
우선 발신 메일을 설정하기 위해 application.properties를 설정해야 한다.
spring.mail.host=smtp.gmail.com //지메일 SMTP를 사용하기 위해 설정
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
본인의 상황에 맞게 설정을 해주고,
https://www.google.com/settings/security/lesssecureapps
해당 링크에 접속해서
그림과 같이 보안 수준이 낮은 앱 허용을 해준다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.2.8.RELEASE</version>
</dependency>
pom.xml에 해당 의존성을 추가해준다.
그다음 버튼을 누르면 메일이 전송되도록 제이쿼리로 ajax 함수를 사용하여 다음과 같이 코드 작성해줬다.
$(".sendMail").click(function() {// 메일 입력 유효성 검사
var mail = $(".mail").val(); //사용자의 이메일 입력값.
if (mail == "") {
alert("메일 주소가 입력되지 않았습니다.");
} else {
mail = mail+"@"+$(".domain").val(); //셀렉트 박스에 @뒤 값들을 더함.
$.ajax({
type : 'post',
url : '/CheckMail',
data : {
mail:mail
},
dataType :'json',
});
alert("인증번호가 전송되었습니다.")
isCertification=true; //추후 인증 여부를 알기위한 값
}
});
300x250
자바 코드
@PostMapping("/CheckMail") // AJAX와 URL을 매핑시켜줌
@ResponseBody //AJAX후 값을 리턴하기위해 작성
public String SendMail(String mail) {
Random random=new Random(); //난수 생성을 위한 랜덤 클래스
String key=""; //인증번호
SimpleMailMessage message = new SimpleMailMessage();
message.setTo(mail); //스크립트에서 보낸 메일을 받을 사용자 이메일 주소
//입력 키를 위한 코드
for(int i =0; i<3;i++) {
int index=random.nextInt(25)+65; //A~Z까지 랜덤 알파벳 생성
key+=(char)index;
}
int numIndex=random.nextInt(9999)+1000; //4자리 랜덤 정수를 생성
key+=numIndex;
message.setSubject("인증번호 입력을 위한 메일 전송");
message.setText("인증 번호 : "+key);
javaMailSender.send(message);
return key;
}
아래 자바 코드까지 완성해주고, 인증 버튼을 누르게 되면
이메일이 잘 도착한 모습.
추후에는 인증 여부, 일치 여부 등 유효성 검사를 위한 게시물을 업로드한다.
728x90
728x90
'Java' 카테고리의 다른 글
'cannot run program '/path/to/tomcat/bin/catalina.sh' error=13 permission denied (0) | 2020.11.24 |
---|---|
java,spring]회원가입시 메일 인증하기 - 2 [인증번호 일치여부 확인] (14) | 2020.10.07 |
JAVA] Arrays 클래스를 이용해서 배열 정렬하기. (0) | 2020.09.08 |
JAVA]크롤링을 이용하여 웹 텍스트 마이닝 사이트 만들기 (0) | 2020.08.11 |
Spring,스프링] 어노테이션을 사용하여 쿠키 값 가져오기,게시판 조회수 새로고침 방지 (0) | 2020.07.22 |
댓글