[java] Javamail을 사용하여 이메일에 새 비밀번호 안내 추가하기

비밀번호를 잊어버렸거나 변경한 사용자에게 새로운 비밀번호를 안내하는 이메일을 보내려면 Javamail 라이브러리를 사용할 수 있습니다. 이 블로그 포스트에서는 Javamail을 사용하여 이메일에 새 비밀번호 안내를 추가하는 방법을 알아보겠습니다.

1. Javamail 라이브러리 추가하기

우선 프로젝트에 Javamail 라이브러리를 추가해야 합니다. Maven을 사용한다면 pom.xml 파일에 다음 의존성을 추가합니다.

<dependency>
  <groupId>javax.mail</groupId>
  <artifactId>javax.mail-api</artifactId>
  <version>1.6.2</version>
</dependency>

Gradle을 사용한다면 build.gradle 파일에 다음 의존성을 추가합니다.

dependencies {
    implementation 'javax.mail:javax.mail-api:1.6.2'
}

의존성을 추가한 후에는 프로젝트를 다시 빌드해야 합니다.

2. 이메일 보내는 코드 작성하기

다음으로, 비밀번호를 재설정한 사용자에게 이메일을 보내는 코드를 작성해야 합니다. 아래 예제는 Gmail을 SMTP 서버로 사용하는 경우의 코드입니다.

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

public class EmailSender {

    private static final String SMTP_HOST = "smtp.gmail.com";
    private static final String SMTP_PORT = "587";
    private static final String USERNAME = "your_email@gmail.com";
    private static final String PASSWORD = "your_password";

    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("mail.smtp.host", SMTP_HOST);
        props.put("mail.smtp.port", SMTP_PORT);
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");

        Session session = Session.getInstance(props, new Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(USERNAME, PASSWORD);
            }
        });

        try {
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(USERNAME));
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient_email@example.com"));
            message.setSubject("새로운 비밀번호 안내");
            message.setText("안녕하세요, 새로운 비밀번호는 123456입니다.");

            Transport.send(message);

            System.out.println("이메일 전송 완료!");
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서 “your_email@gmail.com”과 “your_password”를 자신의 Gmail 이메일과 비밀번호로 변경하고, “recipient_email@example.com”을 수신자의 이메일 주소로 변경해야 합니다.

3. 코드 실행하기

코드를 작성한 후에는 해당 코드를 실행하여 이메일을 보낼 수 있습니다. 메일이 정상적으로 전송되면 “이메일 전송 완료!” 메시지가 출력됩니다.

결론

Javamail을 사용하여 이메일에 새 비밀번호 안내를 추가하는 방법을 간단히 알아보았습니다. 이를 응용하여 사용자의 요청에 따라 다양한 이메일 알림을 구현할 수 있습니다. Javamail 공식 문서를 참조하면 더 많은 기능과 옵션을 활용할 수 있습니다.

참고 자료