AWS SES Spring Bootでのテンプレートの使用
AWS SESとは?
Amazon Simple Email Service
Amazon Simple Email Service (SES) is a cloud-based email service that provides cost-effective, flexible and scalable way for businesses of all sizes to keep in contact with their customers through email.
AWSが提供するクラウドベースの電子メール送受信サービス.
最近のプロジェクトでは、初めて使いましたが、使い方をまとめてみましょう.
あらかじめ準備する
STEP 1:AWSアカウントの制限解除
初めてSESサービスを使用しようとすると、Sandbox状態ではサービスを使用できません.AWS側に要請する必要があります.
1.AWSサポートセンター接続の選択>ケースの作成
2.サービス制限を追加してLimit type>SESを選択
その後、あなたの要求(砂箱を閉じる)を記入することができますが、できるだけ原因を詳しく説明する必要があります.私は個人的な勉強のために書いたが、後で2回返されて書いた.
必要に応じて、砂箱をキャンセルすると同時に、基本出荷量制限(毎日200バレル)をキャンセルするように要求してください.
Step 2から、制限解除後に続きます.
STEP 2:ドメイン認証取得
1.AWS SES>Verified Identityへの接続
2.独自のEメールアカウントを使用してドメインを作成します。
独自のドメインがある場合は、それを使用できます.
STEP 3:アクセスキー取得
1.プロファイル>セキュリティ認証情報>アクセスキー
ここで新しいアクセスキーを作成できます.
最初の作成時にアクセスキーと秘密鍵が発行されますが、受信時にのみ表示されるため、単独で保存することが望ましいです.
AWSもそれを強調していますが、アクセスキーを共有することは絶対にできません!
STEP 4:依存性と構成設定の追加
スプリングにSES設定を追加しましょう
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-ses</artifactId>
<version>1.12.144</version>
</dependency>
pom.xmlaws.ses.access-key=액세스 키
aws.ses.secret-key=시크릿 키
applicant.properties@Configuration
public class AwsSesConfig {
@Value("${aws.ses.access-key}")
private String accessKey;
@Value("${aws.ses.secret-key}")
private String secretKey;
@Bean
public AmazonSimpleEmailService amazonSimpleEmailService() {
final BasicAWSCredentials basicAWSCredentials = new BasicAWSCredentials(accessKey, secretKey);
final AWSStaticCredentialsProvider awsStaticCredentialsProvider = new AWSStaticCredentialsProvider(
basicAWSCredentials);
return AmazonSimpleEmailServiceClientBuilder.standard()
.withCredentials(awsStaticCredentialsProvider)
.withRegion("설정한 지역")
.build();
}
}
STEP 5:SpringでSES+データムテンプレートを使用する
1.電子メールテンプレートhtmlの作成
<!DOCTYPE html>
<html lang="en">
<head>
<meta CHARSET="UTF-8">
</head>
<body>
<div class="container-fluid">
<h2 class="header">이메일 인증</h2>
<hr>
<div>
<br> 회원가입 진행을 위한 인증번호를 보내드립니다.
<br> 아래 보이는 인증번호를 화면에 입력해 주세요
<br> 감사합니다.
</div>
<div style="">
{{number}}
</div>
</div>
括弧で2回囲む部分は変数を含む部分です.スタイルはhead部分に置くことができますが、NAVERでは適用されないのでラベルに書きました.
2.AWSで作成したテンプレートオブジェクトを送信
通常amazon SimpleEmailServiceオブジェクトのsendEmailメソッドを使用しますが、カスタムhtmlファイルを使用して送信されるためsendTemplatedEmailメソッドを使用します.
@Autowired
private AmazonSimpleEmailService amazonSimpleEmailService;
...
Template template = new Template();
template.setTemplateName("number"); // 템플릿 이름
template.setSubjectPart("인증번호 입니다."); // 메일 제목
template.setHtmlPart(content); // 작성한 html(String 형식으로)
template.setTextPart(null); // html이 지원 안될때 형식
CreateTemplateRequest request = new CreateTemplateRequest().withTemplate(template);
amazonSimpleEmailService.createTemplate(request);
最後のcreateTemplate関数を実行すると、SES Eメールテンプレートが追加したEメールテンプレートを生成します.3.SendTemplatedEmailRequestオブジェクトの作成
今から正式にメールを送りましょう.
List<String> receivers = new ArrayList<>();
receivers.add(email);
Destination des = new Destination();
des.setToAddresses(receivers);
Map<String, String> data = new HashMap<>();
data.put("number", "인증번호");
String templateData = new Gson().toJson(data);
SendTemplatedEmailRequest emailRequest = new SendTemplatedEmailRequest();
emailRequest.setTemplate("authNo");
emailRequest.setDestination(des);
emailRequest.setSource("ses에 등록한 송신자 이메일");
emailRequest.setTemplateData(templateData);
amazonSimpleEmailService.sendTemplatedEmail(emailRequest);
結果
👍
Reference
この問題について(AWS SES Spring Bootでのテンプレートの使用), 我々は、より多くの情報をここで見つけました
https://velog.io/@jiyoon0605/AWS-SES-Spring-Boot에서-사용해보기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(AWS SES Spring Bootでのテンプレートの使用), 我々は、より多くの情報をここで見つけました https://velog.io/@jiyoon0605/AWS-SES-Spring-Boot에서-사용해보기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol