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

이 문서에서는 Javamail API를 사용하여 Java로 텍스트 형식의 이메일을 보내는 방법을 알아보겠습니다.

1. Javamail 라이브러리 가져오기

Javamail을 사용하기 위해서는 먼저 Javamail 라이브러리를 가져와야 합니다. Javamail은 JavaMail API와 JavaBeans Activation Framework (JAF) 두 가지 라이브러리로 구성되어 있습니다.

Maven을 사용한다면, pom.xml 파일에 다음 의존성을 추가하세요:

<dependencies>
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>javax.mail-api</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>com.sun.activation</groupId>
        <artifactId>javax.activation</artifactId>
        <version>1.2.0</version>
    </dependency>
</dependencies>

2. 이메일 보내기 설정

이메일을 보내기 위해 필요한 설정을 해야 합니다. 아래 코드는 GMail SMTP 서버를 사용하는 예제입니다. 필요한 경우 호스트, 포트, 이메일 주소, 비밀번호 등을 변경하세요.

import java.util.Properties;

public class MailSender {

    public static void main(String[] args) {
        String host = "smtp.gmail.com";
        int port = 587;
        String username = "your-email@gmail.com";
        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", host);
        props.put("mail.smtp.port", port);

        Authenticator authenticator = new Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
        };

        Session session = Session.getInstance(props, authenticator);

        try {
            // 이메일 보내기 코드 작성
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

3. 이메일 보내기

이제 실제로 이메일을 보내는 코드를 작성해보겠습니다. 아래 코드는 텍스트 형식의 이메일을 보내는 예제입니다.

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class MailSender {

    public static void main(String[] args) {
        // 이전 코드 생략

        try {
            Message message = new MimeMessage(session);

            message.setFrom(new InternetAddress(username));
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@example.com"));
            message.setSubject("Hello from Javamail");
            message.setText("This is a test email from Javamail. Enjoy!");

            Transport.send(message);

            System.out.println("Email sent successfully.");
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

위 코드에서 setFrom, setRecipients, setSubject, setText 메소드를 사용하여 이메일의 송신자, 수신자, 제목, 본문을 설정할 수 있습니다.

결론

이 문서에서는 Javamail API를 사용하여 Java로 텍스트 형식의 이메일을 보내는 방법을 알아보았습니다. Javamail을 사용하면 프로그램에서 이메일을 자동으로 보낼 수 있으며, 여러 가지 설정을 통해 보안 및 인증 등을 관리할 수 있습니다.