[java] Javamail을 사용하여 이메일에 웃긴 GIF 추가하기

이메일에 웃긴 GIF를 추가하는 것은 재미있는 기능입니다. Javamail을 사용하면 Java로 이 작업을 수행할 수 있습니다. 이 튜토리얼에서는 Javamail을 사용하여 이메일에 GIF를 첨부하는 방법에 대해 알아보겠습니다.

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

우선 Javamail 라이브러리를 가져와야 합니다. Maven을 사용하신다면 pom.xml 파일에 다음 의존성을 추가하세요.

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

라이브러리를 직접 다운로드해서 사용하신다면 Javamail의 공식 웹사이트에서 다운로드할 수 있습니다.

2. 이메일 보내기 함수 작성하기

이메일을 보내기 위한 함수를 작성해 보겠습니다. 아래는 예시입니다.

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

public class EmailSender {
  public static void sendEmail(String from, String password, String to, String subject, String text, String gifPath) {
    Properties props = System.getProperties();
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.port", "587");
    props.put("mail.smtp.starttls.enable", "true");

    Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(from, password);
        }
    });

    try {
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(from));
        message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
        message.setSubject(subject);

        MimeMultipart multipart = new MimeMultipart();
        BodyPart messageBodyPart = new MimeBodyPart();
        
        messageBodyPart.setContent(text, "text/plain");
        multipart.addBodyPart(messageBodyPart);

        messageBodyPart = new MimeBodyPart();
        DataSource source = new FileDataSource(gifPath);
        messageBodyPart.setDataHandler(new DataHandler(source));
        messageBodyPart.setFileName("funny.gif");
        multipart.addBodyPart(messageBodyPart);

        message.setContent(multipart);

        Transport.send(message);
        System.out.println("Email sent successfully.");
    } catch (Exception ex) {
        System.out.println("Failed to send email. Error: " + ex.getMessage());
    }
  }
}

3. 이메일 보내기 함수 호출하기

이메일을 보내기 위해 위에서 작성한 함수를 호출해야 합니다. 아래는 함수 호출하는 예시입니다.

public class Main {
  public static void main(String[] args) {
    String from = "sender@gmail.com";
    String password = "password";
    String to = "recipient@gmail.com";
    String subject = "웃긴 GIF 첨부 이메일";
    String text = "안녕하세요!\n웃긴 GIF를 보내드립니다.";
    String gifPath = "path/to/funny.gif";

    EmailSender.sendEmail(from, password, to, subject, text, gifPath);
  }
}

위에서 작성한 EmailSender 클래스의 sendEmail 함수를 호출하면 웃긴 GIF가 첨부된 이메일이 지정된 수신자에게 전송됩니다.

결론

이제 Javamail을 사용하여 이메일에 웃긴 GIF를 추가하는 방법에 대해 알아보았습니다. Javamail을 사용하여 다양한 기능을 구현할 수 있으므로 참고할만한 자료들을 찾아보시기 바랍니다.