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

스프링 프레임워크를 사용한다면, 스프링에서 제공하는 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 서버를 이용하여 메일을 보내고 있습니다.

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

번호 제목 글쓴이 날짜 조회 수
173 google-auth-library-oauth2-http 라이브러리 다운로드 황제낙엽 2023.11.19 1427
172 firebase-admin-java 라이브러리 다운로드 (firebase admin sdk library) 황제낙엽 2023.11.19 575
171 Enum 활용 (개인블로그, Effective Java) file 황제낙엽 2023.11.02 523
170 Enum 활용 (우아한기술블로그) file 황제낙엽 2023.11.02 514
169 [JsonNode] depth 가 여러 단계인 json data 내부를 조회하는 java code 예제 (from Bard) file 황제낙엽 2023.08.09 585
168 JPA 개요 황제낙엽 2023.07.25 272
167 javax.mail 샘플 몇가지 (테스트 수행전) 황제낙엽 2023.06.26 570
166 java 프로그램으로 회원가입용 인증 메일을 보내는 방법 (from naver / 테스트 성공) file 황제낙엽 2023.06.24 560
» java 프로그램으로 회원가입용 인증 메일을 보내는 방법 (from bing / 테스트 실패) [1] 황제낙엽 2023.06.23 592
164 base64 encode, decode 황제낙엽 2023.06.12 288
163 BASE64Encoder, BASE64Decoder 의 deprecated 황제낙엽 2023.06.12 506
162 java로 알파벳 대소문자를 랜덤으로 조합하는 코드 만들어줘 (ChatGPT) 황제낙엽 2023.03.28 285
161 구글 클라우드 비전 API 사용하기 (Google Cloud Vision API) 황제낙엽 2023.02.22 291
160 람다식(Lambda Expressions in Java) file 황제낙엽 2022.12.03 753
159 ConcurrentLinkedQueue와 LinkedBlockingQueue 황제낙엽 2022.04.06 500
158 java.util.Queue file 황제낙엽 2022.04.06 7750
157 HP-UX, IBM-AIX 황제낙엽 2021.06.23 648
156 람다(Lambda)와 함수형 인터페이스 황제낙엽 2021.05.10 569
155 for, while 등의 loop구문에서 sleep하기 황제낙엽 2020.12.04 479
154 미디어 파일의 metadata를 읽자 (metadata-extractor) file 황제낙엽 2020.08.30 1047