[java] Javamail을 사용하여 이미지 첨부 파일 보내기

이 문서에서는 Javamail을 사용하여 이미지 파일을 이메일에 첨부하는 방법을 소개합니다.

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

이미지 첨부를 위해 Javamail 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 종속성을 추가하세요:

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

2. 이미지 파일 첨부하기

다음은 Javamail을 사용하여 이미지 파일을 이메일에 첨부하는 예제입니다.

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.*;

import java.util.Properties;

public class ImageEmailSender {

    public void sendImageEmail() {
        String to = "recipient@example.com";
        String from = "sender@example.com";
        String host = "smtp.example.com";
        String subject = "이미지 첨부 파일 테스트";

        // SMTP 서버 설정
        Properties properties = System.getProperties();
        properties.setProperty("mail.smtp.host", host);

        // Session 객체 생성
        Session session = Session.getDefaultInstance(properties);

        try {
            // MimeMessage 생성
            MimeMessage message = new MimeMessage(session);

            // 수신자, 발신자, 제목 설정
            message.setFrom(new InternetAddress(from));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            message.setSubject(subject);

            // 이미지 파일 첨부
            String imageFilePath = "path/to/image.jpg";
            BodyPart messageBodyPart = new MimeBodyPart();
            DataSource source = new FileDataSource(imageFilePath);
            messageBodyPart.setDataHandler(new DataHandler(source));
            messageBodyPart.setFileName(imageFilePath);
            Multipart multipart = new MimeMultipart();
            multipart.addBodyPart(messageBodyPart);
            message.setContent(multipart);

            // 이메일 보내기
            Transport.send(message);
            System.out.println("이미지 첨부 파일을 이메일로 보냈습니다.");
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        ImageEmailSender sender = new ImageEmailSender();
        sender.sendImageEmail();
    }
}

위의 예제는 image.jpg 파일을 이메일에 첨부하고, 이미지 파일의 경로를 imageFilePath 변수에 저장하는 방법을 보여줍니다.

3. 실행

예제를 실행하기 전에, 다음 사항을 확인하세요:

애플리케이션을 실행하면, 이미지 첨부 파일이 수신자에게 이메일로 전송됩니다.

이제 Javamail을 사용하여 이미지 첨부 파일을 보낼 수 있는 방법을 알게 되었습니다. 이를 활용하여 프로젝트에서 필요한 기능을 구현해 보세요.

참고 자료