[java] Javamail을 사용하여 이메일에 동영상 추가하기

이메일에 동영상을 첨부하여 보낼 때 Javamail을 사용할 수 있습니다. Javamail은 자바 프로그램에서 이메일을 관리하고 보내는 데 사용되는 라이브러리입니다. 이 튜토리얼은 Javamail을 사용하여 이메일에 동영상을 첨부하는 방법을 안내합니다.

1. Javamail 라이브러리 추가

먼저, 프로젝트에 Javamail 라이브러리를 추가해야 합니다. 다음과 같이 Maven을 사용하는 경우 pom.xml 파일에 의존성을 추가하십시오.

<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>

2. 이메일에 동영상 첨부 코드 작성

다음은 Javamail을 사용하여 이메일에 동영상을 첨부하는 예제 코드입니다.

import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

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 javax.mail.Authenticator() {
            protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
                return new javax.mail.PasswordAuthentication(username, password);
            }
        });

        try {
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("your_email@gmail.com"));
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient_email@gmail.com"));
            message.setSubject("Email with Video");

            // 첨부 파일 생성
            BodyPart messageBodyPart = new MimeBodyPart();
            messageBodyPart.setText("Check out this video!");
            
            // 동영상 파일 경로 설정
            String videoFilePath = "path_to_your_video_file.mp4";
            String videoFileName = "video.mp4";
            FileDataSource fileDataSource = new FileDataSource(videoFilePath);
            messageBodyPart.setDataHandler(new DataHandler(fileDataSource));
            messageBodyPart.setFileName(videoFileName);

            Multipart multipart = new MimeMultipart();
            multipart.addBodyPart(messageBodyPart);

            message.setContent(multipart);

            Transport.send(message);
            System.out.println("Email sent successfully!");
        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }
}

위의 코드에서 your_email@gmail.com에 발신자의 이메일 주소와 your_password에 해당 이메일 계정의 비밀번호를 입력하세요. 또한 recipient_email@gmail.com에 수신자의 이메일 주소를 입력하세요. videoFilePath 변수를 동영상 파일의 경로로 설정하고, videoFileName 변수를 첨부 파일의 이름으로 원하는 대로 변경하면 됩니다.

3. 동영상 첨부 이메일 보내기

위의 코드를 실행하면 동영상이 첨부된 이메일이 수신자에게 전송됩니다. 첨부 파일에는 동영상 파일이 포함되며, 이메일의 본문 부분에는 “Check out this video!”라는 텍스트가 표시됩니다.

이렇게 Javamail을 사용하여 이메일에 동영상을 첨부하는 방법을 알아보았습니다. 이제 이 코드를 기반으로 원하는 대로 수정하여 다양한 동영상 파일을 첨부할 수 있습니다.

참고 자료