회원가입용 인증 메일을 보내는 방법은 다양합니다.

스프링 프레임워크를 사용한다면, 스프링에서 제공하는 JavaMailSender를 이용하여 구현할 수 있습니다.

JavaMailSender를 이용하면 SMTP 서버를 이용하여 메일을 보낼 수 있습니다.

JavaMailSender를 사용하는 방법은 다음과 같습니다.

 

  1. MailConfig 작성 - xml로 설정하지 않고 java파일로 설정했다.
  2. Tempkey.java 생성
  3. MailHandler.java 생성
  4. Member.java - domain 클래스 정의
  5. MemberMapper.xml 에 쿼리문 생성
  6. MemberDao.java
  7. MemberService 인터페이스
  8. MemberServiceImpl.java

 

 

스프링 프레임워크를 사용하지 않을 경우에는 JavaMailSender를 사용할 수 없습니다.

하지만 JavaMailSender와 비슷한 기능을 하는 JavaMail API를 사용하여 구현할 수 있습니다.

JavaMail API를 이용하여 메일을 보내는 방법은 다음과 같습니다.

 

public void sendEmail(String toEmail, String subject, String body) throws MessagingException {
    Properties props = new Properties();
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "587");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");

    Session session = Session.getInstance(props, new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication("your_email_address@gmail.com", "your_email_password");
        }
    });

    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress("your_email_address@gmail.com"));
    message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail));
    message.setSubject(subject);
    message.setText(body);

    Transport.send(message);
}

위 코드에서는 Gmail SMTP 서버를 이용하여 메일을 보내고 있습니다.

이메일 주소와 비밀번호를 입력하면 됩니다. 

번호 제목 글쓴이 날짜 조회 수
343 어떤 multi-part 설정도 제공되지 않았기 때문에, part들을 처리할 수 없습니다. file 황제낙엽 2023.08.23 891
342 (Bard) the request was rejected because no multipart boundary was found file 황제낙엽 2023.08.23 337
341 (Bard) multipart/form-data 요청 처리를 위한 MultipartHttpServletRequest file 황제낙엽 2023.08.21 210
340 [JsonNode] depth 가 여러 단계인 json data 내부를 조회하는 java code 예제 (from Bard) file 황제낙엽 2023.08.09 585
339 JPA 개요 황제낙엽 2023.07.25 272
338 javax.mail 샘플 몇가지 (테스트 수행전) 황제낙엽 2023.06.26 571
337 java 프로그램으로 회원가입용 인증 메일을 보내는 방법 (from naver / 테스트 성공) file 황제낙엽 2023.06.24 560
» java 프로그램으로 회원가입용 인증 메일을 보내는 방법 (from bing / 테스트 실패) [1] 황제낙엽 2023.06.23 592
335 base64 encode, decode 황제낙엽 2023.06.12 289
334 BASE64Encoder, BASE64Decoder 의 deprecated 황제낙엽 2023.06.12 506
333 문자의 ASCII 값 테이블 - String.charAt() file 황제낙엽 2023.03.28 471
332 java로 알파벳 대소문자를 랜덤으로 조합하는 코드 만들어줘 (ChatGPT) 황제낙엽 2023.03.28 285
331 ajax 로 post 데이터를 servlet 으로 전달 받기 (with nexacro) [1] secret 황제낙엽 2023.02.26 0
330 구글 클라우드 비전 API 사용하기 (Google Cloud Vision API) 황제낙엽 2023.02.22 291
329 람다식(Lambda Expressions in Java) file 황제낙엽 2022.12.03 754
328 ConcurrentLinkedQueue와 LinkedBlockingQueue 황제낙엽 2022.04.06 500
327 java.util.Queue file 황제낙엽 2022.04.06 7752
326 숫자형 클래스 BigInterger (int, long 범위 초과) 황제낙엽 2022.01.16 807
325 LocalDate.now() 오늘 날짜 황제낙엽 2022.01.16 323
324 HttpServletRequest, HttpServletResponse, JSONObject, POST 황제낙엽 2022.01.12 389