changki123's Foundation

Lambda SES 이메일 보내기

2024. 2. 26. 21:41 | Amazon Web Services


728x90

java 1.8 maven

원하는 이메일을 SES에 등록 (검증까지 완료된)

 

dependency 버전

	<dependency>
	    <groupId>software.amazon.awssdk</groupId>
	    <artifactId>ses</artifactId>
	    <version>2.21.26</version>
	</dependency>

 

build

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.2.4</version>
        <configuration>
          <createDependencyReducedPom>false</createDependencyReducedPom>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

 

App.java

package say.hi;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.ses.*;
import software.amazon.awssdk.services.ses.model.*;

import java.util.Map;

public class App implements RequestHandler<Map<String, Object>, String> {

    private static final String SUBJECT = "Hello from SES";
    private static final String BODY_TEXT = "Hello, this is a test email from SES.";

    public String handleRequest(final Map<String, Object> input, final Context context) {
        // SES 클라이언트 생성
        SesClient sesClient = SesClient.builder().region(Region.AP_NORTHEAST_1).build();

        // 이메일 주소 가져오기
        String senderEmail = input.get("senderEmail").toString();
        String recipientEmail = input.get("recipientEmail").toString();

        // 이메일 전송 요청 생성
        SendEmailRequest emailRequest = SendEmailRequest.builder()
                .source(senderEmail)
                .destination(Destination.builder().toAddresses(recipientEmail).build())
                .message(Message.builder()
                        .subject(Content.builder().data(SUBJECT).build())
                        .body(Body.builder().text(Content.builder().data(BODY_TEXT).build()).build())
                        .build())
                .build();

        // 이메일 전송
        SendEmailResponse emailResponse = sesClient.sendEmail(emailRequest);

        // 결과 출력
        System.out.println("이메일 전송 성공! Message ID: " + emailResponse.messageId());

        // 세션 종료
        sesClient.close();

        return "이메일을 성공적으로 보냈습니다.";
    }

}

 

빌드 된거 확인 .jar파일을 업로드하고

핸들러를 패키지명으로 변경

test.json

{
  "senderEmail": "SES등록된이메일",
  "recipientEmail": "SES등록된이메일"
}

테스트 성공!!

 

이 메 일 도 착

 

창키스 커스텀 feat gpt

728x90

'Amazon Web Services' 카테고리의 다른 글

lambda session id 자동 부여  (0) 2024.04.14
AWS Serverless Application Model  (0) 2024.03.07
람다람쥐썬더  (0) 2024.03.02
Lambda hello world~ .jar  (0) 2024.02.21
ELB 라우팅 알고리즘  (0) 2024.02.09