Amazon Pinpointを利用してメール配信。

[AWS SDK for Java](https://aws.amazon.com/sdk-for-java/)を使って、[Amazon Pinpoint](https://aws.amazon.com/pinpoint/)のSegmentやCampaignを操作するプログラムを作るらしいが、
そもそもAmazon Pinpointがなんだかよく分かってないので、チャートリアルを参考にメールを送信してみる。

## 手順

### リージョンの指定

1. Amazon Pinpointの利用できるリージョンは限られているため、 <br>今回はUS East (N. Virginia)(us-east-1)リージョンを選択する。

### Pinpointプロジェクトの作成

1. AWS Management ConsoleのFind ServicesからPinpointで検索し、下記にアクセスする。
    - https://console.aws.amazon.com/pinpoint/home?region=us-east-1#/apps
1. Create a projectからPinpointプロジェクトを作成する。
    - Project name: pinpoint_test

### 送信元メールの設定

1. Configure featuresからEmailのConfigureを選択する。
1. Set up emailに送信元とするのメールアドレスを入力し、Verifyをクリックする。
1. 送信元とするメールに確認メールが来てるので、リンクをクリックする。
1. Set up emailのSaveをクリックする。

### S3バケットの作成及びセグメントのアップロード

1. AWS Management ConsoleのFind ServicesからS3で検索し、下記にアクセスする。
    - https://console.aws.amazon.com/s3/home?region=us-east-1
1. Create bucketからS3バケットを作成する。
    - Bucket name: pinpoint-test-bucket-20200424
    - Region: us-east-1
    - Block all public access: チェック
1. 作成したバケットの詳細にアクセスし、Create folderをクリックしてフォルダを作成する。
    - New folder: test
    - None (Use bucket settings): チェック
1. 作成したフォルダに、下記フォーマットのCSVファイルをカンマ区切りでアップロードする。
    - ファイル名: test.csv
    - S3へのアップロード時の設定はデフォルト
    - ※Addressは各自送信したい送信先のメールアドレスに変更して下さい。

CSVファイルフォーマット

| ChannelType | Address | User.UserAttributes.FirstName | User.UserAttributes.LastName |
| ------- | ------- | ------- | ------- |
| EMAIL | test1@example.com | Closed | Three |
| EMAIL | test2@example.com | Dense | Three |
| EMAIL | test3@example.com | Close | Three |

### Pinpointでのセグメントの作成

1. Amazon Pinpoint Consoleを開き、Pinpointプロジェクトの作成で作成した、pinpoint_testを選択する。
1. 左のメニューからSegmentsを選択し、Create a segmentをクリックする。
1. Import a segment->Import files from an Amazon S3 bucketを選択、下記を選択し、Creage segmentをクリックする。
    - Segment name: pinpoint-test-segment
    - Amazon S3 URL: s3://pinpoint-test-bucket-20200424/test
    - IAM role: Automatically create a role
    - IAM role: pinpoint-test-iam
    - What type of file are you importing?: Comma-Separated Values (CSV)
1. Segmentsに作成したセグメントが表示されている事を確認する。

### Pinpointでのキャンペーンの作成

1. Campaignsを選択し、Create a campaignをクリックする。
1. Campaign detailsに下記を設定し、nextをクリックする。
    - Campaign name: pinpoint-test-campaign
    - Campaign type: Standard campaign
    - Channel: Email
1. Choose a segmentでUse an existing segmentを選択し、Segmentのプルダウンから、pinpoint-test-segmentを選択し、nextをクリックする。
    - ※画面を変えないとプルダウンに表示されなかった。
1. Create your messageでCreate a new email messageを選択し、メッセージを作成し、nextをクリックする。
    - Subject: Pinpoint test.
    - Message: bodyタグ内にPinpoint test message.
1. Choose when to send the campaignで下記を選択し、Nextをクリックする。
    - Choose when the campaign should be sent: At a specific time
    - Choose when the campaign should be sent: Immediately
    - Time zone: UTC+00:00 (UTC, GMT, WET)
1. Review and launchで内容を確認し、Launch campaignをクリック。

### キャンペーンの受信確認

1. S3バケットの作成及びセグメントのアップロードで設定した送信先のメールアドレスに、メールが送信される。

## メモ

* Amazon Pinpointを利用した、通知の方法の雰囲気が分かった。
* S3にパブリックアクセス設定機能が追加されてたり、なんか色々と変わってた。
* 画像も撮っていたが、力尽きたので文章のみ。
* AWS CLIでかっこよくやりたかったが、[先程インストールしたレベル](https://qiita.com/mitsuaki1229/items/a4929b98f3d69319e647)なので諦めた。

## 参考

* https://docs.aws.amazon.com/ja_jp/pinpoint/latest/userguide/tutorials.html