[java] Javamail을 사용하여 HTML 형식의 이메일 보내기

이번에는 Javamail 라이브러리를 사용하여 Java 언어로 HTML 형식의 이메일을 보내는 방법에 대해 알아보겠습니다.

Javamail 라이브러리 추가

먼저, 프로젝트에 Javamail 라이브러리를 추가해야 합니다. Maven이나 Gradle과 같은 의존성 관리 도구를 사용하는 경우, 아래와 같이 추가할 수 있습니다.

Maven:

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

Gradle:

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

이메일 작성하기

이제, HTML 형식의 이메일을 작성하는 코드를 작성해보겠습니다.

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

public class EmailSender {
    public static void main(String[] args) {
        final String username = "your_email@gmail.com";
        final String password = "your_password";
        
        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.port", "587");
        
        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@gmail.com"));
            message.setSubject("HTML 이메일 테스트");
            message.setContent("<h1>안녕하세요!</h1><p>HTML 형식의 이메일을 테스트 중입니다.</p>", "text/html");
            Transport.send(message);
            System.out.println("이메일이 전송되었습니다.");
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

위 코드에서 your_email@gmail.comyour_password 부분을 자신의 Gmail 계정의 이메일 주소와 비밀번호로 변경해야 합니다. 또한, recipient_email@gmail.com 부분에는 이메일을 보낼 대상의 이메일 주소를 입력해야 합니다.

위 코드는 Gmail SMTP 서버를 사용하여 이메일을 보내는 예제입니다. Gmail 외의 다른 이메일 서비스를 사용하는 경우, 해당 서비스의 SMTP 서버 정보를 사용하여 props 변수를 설정해야 합니다.

실행하기

코드를 작성한 후, 이메일을 보내기 위해 EmailSender 클래스를 실행하면 HTML 형식의 이메일이 작성한 대상 이메일 주소로 송신되게 됩니다.

참고 자료