22.회원가입이메일전송02
회원가입 이메일 전송02
4.controller 메서드 추가
// 메일 보내기: javamailSender 객체 타입인 mailSender 생성
@Autowired
private JavaMailSender mailSender;
메일을 보내기 위해 어노테이션을 선언해준다.
ajax에서 요청을 실행하는 메서드를 추가한다
메서드는 인증번호(난수)를 생성하여 이메일과 뷰에 보내는 기능을 수행한다.
@RequestMapping(value = "/mailCheck", method = RequestMethod.GET)
@ResponseBody
public String mailCheckGET(String email) throws Exception {
System.out.println("이메일 데이터 전송 확인");
System.out.println("인증번호" + email);
@ResponseBody 어노테이션을 사용한다. controller메서드를 ajax로 요청 했기때문에 필요하다.
인증번호를 생성하기 위해서는 난수가 필요하다.
java에서 제공하는 Random 객체를 사용한다.
// 인증번호(난수)생성
Random random = new Random();
int checkNum = random.nextInt(888888) + 111111;
// 난수 확인 System.out.println("인증번호" + checkNum);
random 클래스를 사용하여 객체 random을 선언한다.
random.nextInt()함수를 통해 난수를 생성한다.
111111 ~ 999999 범위의 숫자를 얻기위해서 nextInt(888888) + 111111를 사용한다.
객체 변수를 선언하여 이메일 전송에 필요한 데이터를 할당한다.
String setFrom = "####@####; // 자신의 이메일 계정의 주소
String toMail = email; // 수신 받을 이메일
String title = "슈펴멍뭉 인증번호 이메일 입니다"; // 제목작성
String content = // 자신이 보낼 이메일 내용
"슈퍼멍뭉을 방문해주셔서 감사합니다." + "<br><br>" + "인증 번호는" + checkNum + "입니다" + "<br>" + "해당 인증번호를 인증번호 확인란에 기입해주세요";
setFrom: root-context.xml에 입력한 자신의 이메일
toMail: 수신받을 이메일이다. 뷰로부터 받은 이메일 주소인 변수 email을 사용한다.
content: 자신이 보낼 이메일 내용이다.
// 이메일 전송을 위한 코드
try {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true, "utf-8");
helper.setFrom(setFrom);
helper.setTo(toMail);
helper.setSubject(title);
helper.setText(content, true);
mailSender.send(message);
} catch (Exception e) {
e.printStackTrace();
}
String num = Integer.toString(checkNum);
System.out.println(num);
return num;
}
이메일 전송을 위한 코드을 적는다. 인증번호 데이터 같은 경우 int이기 때문에 ajax를 통한 요청으로 뷰에게 반환을 할 떄 String형으로 바꿔야한다.
String num을 선언하고 인증번호인 checkNum을 String값으로 선언한다.
return값으로 num을 사용한다.
댓글남기기