[java] Javamail을 사용하여 다중 수신자에게 이메일 보내기

JavaMail은 Java에서 이메일을 보내는 데 사용되는 API입니다. 이를 사용하여 이메일을 보내는 방법을 알아보겠습니다.

필요한 라이브러리 가져오기

먼저, JavaMail을 사용하기 위해 다음 라이브러리를 프로젝트에 추가해야 합니다.

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

이메일 발송 코드 작성하기

다음은 JavaMail을 사용하여 다중 수신자에게 이메일을 보내는 예제 코드입니다.

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

public class EmailSender {

    public static void main(String[] args) {
        // SMTP 서버 설정
        String host = "smtp.example.com";
        String username = "your-email@example.com";
        String password = "your-password";

        // 메일 정보 설정
        Properties props = new Properties();
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.auth", "true");

        // 메일 세션 생성
        Session session = Session.getInstance(props, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
        });

        try {
            // 메일 메시지 생성
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(username));
            message.setSubject("다중 수신자에게 이메일 보내기 예제");
            
            // 수신자 이메일 주소 추가
            String[] toAddresses = {"receiver1@example.com", "receiver2@example.com"};
            Address[] recipients = new Address[toAddresses.length];
            for (int i = 0; i < toAddresses.length; i++) {
                recipients[i] = new InternetAddress(toAddresses[i]);
            }
            message.setRecipients(Message.RecipientType.TO, recipients);
            
            // 이메일 내용 설정
            message.setText("이 메일은 JavaMail을 사용하여 다중 수신자에게 보내집니다.");

            // 이메일 보내기
            Transport.send(message);
            System.out.println("이메일이 성공적으로 보내졌습니다.");
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서 host, username, password를 SMTP 서버 및 사용자의 이메일 정보로 변경해야 합니다. 또한 toAddresses에 수신자들의 이메일 주소를 설정할 수 있습니다.

결과 확인하기

위의 코드를 실행하면 다중 수신자에게 이메일이 발송됩니다. 성공적으로 이메일이 발송되면 콘솔에 “이메일이 성공적으로 보내졌습니다.” 메시지가 표시됩니다.

참고 자료