Berry-G / YoungCultureCenter

TEAM Young'tve jobs HOMEPAGE making project
0 stars 2 forks source link

메일 인증 기능 구현 #48

Closed Berry-G closed 1 year ago

Berry-G commented 1 year ago
  1. 라이브러리 추가 Image

  2. (root-context.xml)파일에 bean 추가 Image

  3. MailHandler.java / TempKey.java 추가

package com.youngtvjobs.ycc.member.mail;

import java.io.UnsupportedEncodingException;

import javax.activation.DataSource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;

//메일전송 라이브러리의 setter
public class MailHandler {

    private JavaMailSender mailSender;
    private MimeMessage message;
    private MimeMessageHelper messageHelper;

    public MailHandler(JavaMailSender mailSender) throws MessagingException{
        //super();
        this.mailSender = mailSender;
        message = this.mailSender.createMimeMessage();
        messageHelper = new MimeMessageHelper(message, true, "UTF-8");
    }

    //메일 제목
    public void setSubject(String subject) throws MessagingException {
        messageHelper.setSubject(subject);
    }

    //메일 내용
    public void setText(String htmlContent) throws MessagingException {
        messageHelper.setText(htmlContent, true);
    }

    //메일 발송자
    public void setFrom(String email, String name) throws UnsupportedEncodingException, MessagingException {
        messageHelper.setFrom(email, name);
    }

    //메일 수신자
    public void setTo(String email) throws MessagingException {
        messageHelper.setTo(email);
    }

    public void addInline(String contentId, DataSource dataSource) throws MessagingException {
        messageHelper.addInline(contentId, dataSource);
    }

    //메일 보내기
    public void send() {
        mailSender.send(message);
    }
}
package com.youngtvjobs.ycc.member.mail;

import java.util.Random;

//인증번호 발송시 사용할 클래스
//이 클래스를 호출할 때는 몇자리 수로 할것인지 정해서 파라미터로 보내면 됨
public class TempKey {

    private boolean lowerCheck;
    private int size;

    public String getKey(int size, boolean lowerCheck) {
        this.size = size;
        this.lowerCheck = lowerCheck;
        return init();
    }

    private String init() {
        Random ran = new Random();
        StringBuffer sb = new StringBuffer();
        int num = 0;
        do{
            num = ran.nextInt(75) + 48;
            if((num>=48 && num <= 57) || (num>=65 && num <= 90) || (num>=97 && num <= 122)) {
                sb.append((char)num);
            } else {
                continue;
            }
        } while (sb.length() < size);
        if(lowerCheck) {
            return sb.toString().toLowerCase();
        }
        return sb.toString();
    }
}

기본설정과 필요한 파일설정은 여기까지


  1. siForm.jsp 에서 ajax이용해 데이터 요청 Image

  2. MemberController.java에서 해당 url로직 돌아감 Image

  3. 데이터 값을 MemberServiceImpl.java에서 받아 mail_key값 반환 Image

여기까지 하면 메일발송까지 완료

  1. 인증번호 일치/불일치 로직 작성 Image Image Image

  2. 결과 Image Image