[java] JAX-RS를 활용한 이메일 전송

개요

JAX-RS(Java API for RESTful Web Services)는 자바에서 RESTful 웹 서비스를 개발하기 위한 API입니다. 이를 활용하여 이메일 전송 기능을 구현하는 방법을 알아보겠습니다.

의존성 설정

먼저, JAX-RS를 사용하기 위해 의존성을 추가해야 합니다. 프로젝트의 pom.xml에 다음과 같이 의존성을 추가합니다:

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.1</version>
</dependency>

이메일 전송 API 생성

이메일을 전송하기 위한 RESTful API를 생성합니다. 예를 들어, /email 경로로 POST 요청을 받으면 이메일을 전송하는 API를 구현하겠습니다.

@Path("/email")
public class EmailResource {

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public Response sendEmail(Email email) {
        // 이메일 전송 로직 구현
        // ...
        return Response.ok().build();
    }
}

위의 예제 코드에서 Email 클래스는 이메일 메시지를 위한 데이터 모델입니다. javax.mail 라이브러리를 사용하여 실제로 이메일을 전송하는 로직을 구현할 수 있습니다.

RESTful 서비스 등록

이메일 전송 API를 RESTful 서비스로 등록해야 합니다. 이를 위해 서비스를 Application 클래스에 등록하면 됩니다.

@ApplicationPath("/api")
public class MyApplication extends Application {
    
    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> resources = new HashSet<>();
        resources.add(EmailResource.class);
        return resources;
    }
}

위의 예제 코드에서 /api 경로로 이메일 전송 API를 등록하게 됩니다.

테스트

이제 서버를 실행하고 테스트를 수행해보겠습니다. 예를 들어, curl 명령어를 사용하여 POST 요청을 보낼 수 있습니다.

$ curl -X POST -H "Content-Type: application/json" -d '{"to": "example@example.com", "subject": "Hello", "body": "This is a test email"}' http://localhost:8080/api/email

위의 명령어를 실행하면 example@example.com으로 이메일이 전송됩니다.

결론

JAX-RS를 활용하여 이메일 전송 기능을 구현하는 방법을 알아보았습니다. RESTful API를 통해 이메일을 전송하는 것은 간단하고 효율적인 방법입니다.