[java] Javamail을 사용하여 이메일에 프로필 이미지 추가하기

이메일은 개인 및 비즈니스 커뮤니케이션에서 중요한 역할을 담당합니다. 때로는 이메일에 프로필 사진을 첨부하여 보다 개인적인 느낌을 전달하고자 할 수 있습니다. 이 글에서는 JavaMail API를 사용하여 이메일에 프로필 이미지를 추가하는 방법을 알아보겠습니다.

1. 프로필 이미지 준비하기

이메일에 첨부할 프로필 이미지를 준비해야 합니다. JPEG, PNG 또는 GIF와 같은 일반적인 이미지 포맷을 사용할 수 있습니다. 이미지 파일의 경로나 URL을 알고 있어야 합니다.

2. JavaMail 의존성 추가하기

JavaMail을 사용하기 위해서는 먼저 관련 의존성을 프로젝트에 추가해야 합니다. 일반적으로 Maven 또는 Gradle을 사용하여 다음 의존성을 추가할 수 있습니다.

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

3. 이메일 작성 및 프로필 이미지 추가

이제 프로필 이미지를 첨부한 이메일을 작성해보겠습니다. 아래의 예제 코드를 참고하세요.

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

public class EmailSender {
   public static void main(String[] args) throws MessagingException {
      // SMTP 서버 설정
      String host = "smtp.example.com";
      String port = "587";
      String username = "your_email@example.com";
      String password = "your_password";

      // 이메일 작성
      Properties props = new Properties();
      props.put("mail.smtp.host", host);
      props.put("mail.smtp.port", port);
      props.put("mail.smtp.auth", "true");
      props.put("mail.smtp.starttls.enable", "true");

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

      Message message = new MimeMessage(session);
      message.setFrom(new InternetAddress(username));
      message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@example.com"));
      message.setSubject("프로필 이미지 첨부 이메일");

      // 프로필 이미지 추가
      Multipart multipart = new MimeMultipart();
      BodyPart messageBodyPart = new MimeBodyPart();
      messageBodyPart.setText("안녕하세요,\n이메일에 프로필 이미지를 첨부합니다.");
      multipart.addBodyPart(messageBodyPart);

      // 프로필 이미지 파일 첨부
      String imageFile = "path_to_image_file.jpg";
      messageBodyPart = new MimeBodyPart();
      DataSource source = new FileDataSource(imageFile);
      messageBodyPart.setDataHandler(new DataHandler(source));
      messageBodyPart.setFileName("profile.jpg");
      multipart.addBodyPart(messageBodyPart);

      // 이메일 메시지에 프로필 이미지 추가
      message.setContent(multipart);

      // 이메일 보내기
      Transport.send(message);

      System.out.println("프로필 이미지 첨부 이메일이 전송되었습니다.");
   }
}

4. 코드 설명

5. 실행하기

이제 코드를 실행하여 프로필 이미지가 첨부된 이메일을 보낼 수 있습니다. 프로필 이미지 파일 경로나 URL을 올바르게 설정하고, SMTP 서버 설정을 적절히 수정한 후 코드를 실행하세요.

참고 자료