

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 목록 관리 사용
<a name="sending-email-list-management"></a>

Amazon SES는 목록 관리 기능을 제공합니다. 즉, 고객이 연락처 목록이라고 하는 자체 메일링 목록을 관리할 수 있습니다. *contact list(연락처 목록)*는 특정 주제를 구독한 모든 연락처를 저장할 수 있는 목록입니다. *contact(연락처)*는 이메일을 수신하는 최종 사용자입니다. *topic(주제)*는 목록 내의 관심 그룹, 테마 또는 레이블입니다. 목록은 복수의 주제를 가질 수 있습니다.

Amazon SES API v2에서 [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListContacts.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListContacts.html) 작업을 수행하면 특정 주제를 구독한 모든 연락처의 목록을 검색할 수 있으며, [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html) 작업을 사용하여 이들 연락처에 메일을 보낼 수 있습니다.

구독 관리에 대한 자세한 내용은 [구독 관리 사용](sending-email-subscription-management.md) 단원을 참조하십시오.

## 목록 관리 개요
<a name="list-management-overview"></a>

목록 관리를 사용하는 경우 다음 요소를 고려해야 합니다.
+ 목록을 만드는 동안 목록 주제를 지정할 수 있습니다.
+ 당 하나의 연락처 목록만 허용됩니다 AWS 계정.
+ 목록은 최대 20개의 주제를 사용할 수 있습니다.
+ 목록에 새 주제 추가, 목록에서 연락처 추가 또는 삭제, 목록이나 주제에 대한 연락처 기본 설정 업데이트 등 기존 연락처 목록을 업데이트할 수 있습니다.
+ 주제 표시 이름 또는 설명과 같은 주제 메타데이터를 업데이트할 수 있습니다.
+ 연락처 목록의 연락처 목록, 주제를 구독한 연락처, 주제 구독이 취소된 연락처 및 목록의 모든 주제에서 구독 취소된 연락처를 가져올 수 있습니다.
+ [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateImportJob.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateImportJob.html) API를 사용하여 기존 연락처 목록을 SES로 가져올 수 있습니다.
+ SES는 연락처 목록의 구독 취소된 연락처로 전송되는 메시지에 대해 반송 이벤트를 발행합니다. 자세한 내용은 [구독 관리 사용](sending-email-subscription-management.md) 단원을 참조하십시오.
+ 각 연락처에는 해당 연락처에 대한 정보를 저장하는 데 사용할 수 있는 연결된 속성이 있을 수 있습니다.

## 목록 관리 구성
<a name="configuring-list-management"></a>

다음 작업을 사용하여 목록 관리 기능을 구성할 수 있습니다. 연락처 목록 및 연락처 작업의 전체 목록은 [Amazon SES API v2 참조](https://docs.aws.amazon.com/ses/latest/APIReference-V2/Welcome.html)를 참조하십시오.

### 연락처 목록 만들기
<a name="configuring-list-management-create-contact-list"></a>

SES API v2에서 [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateContactList.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateContactList.html) 작업을 사용하여 연락처 목록을 생성할 수 있습니다. AWS CLI을(를) 사용하여 이 설정을 쉽고 빠르게 구성할 수 있습니다. 설치 및 구성에 대한 자세한 내용은 [AWS Command Line Interface 사용 설명서를](https://docs.aws.amazon.com/cli/latest/userguide/) AWS CLI참조하세요.

**를 사용하여 연락처 목록을 생성하려면 AWS CLI**
+ 명령줄에 다음 명령을 입력합니다.

  ```
  aws sesv2 create-contact-list --cli-input-json file://CONTACT-LIST-JSON
  ```

  위의 명령에서 *CONTACT-LIST-JSON*을 [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateContactList.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateContactList.html) 요청에 대한 JSON 파일 경로로 바꿉니다.

  요청에 대한 `CreateContactList` 입력 JSON 파일의 예는 다음과 같습니다.

  ```
  {
      "ContactListName": "ExampleContactListName",
      "Description": "Creating a contact list example",
      "Topics": [
       {
           "TopicName": "Sports",
           "DisplayName": "Sports Newsletter",
           "Description": "Sign up for our free newsletter to receive updates on all sports.",
           "DefaultSubscriptionStatus": "OPT_OUT"
       },
       {
           "TopicName": "Cycling",
           "DisplayName": "Cycling newsletter",
           "Description": "Never miss a cycling update by subscribing to our newsletter.",
           "DefaultSubscriptionStatus": "OPT_IN"
       },
       {
           "TopicName": "NewProducts",
           "DisplayName": "New products",
           "Description": "Hear about new products by subscribing to this mailing list.",
           "DefaultSubscriptionStatus": "OPT_IN"
       },
       {
           "TopicName": "DailyUpdates",
           "DisplayName": "Daily updates",
           "Description": "Start your day with sport updates, Monday through Friday.",
           "DefaultSubscriptionStatus": "OPT_OUT"
       }
      ]
  }
  ```

### 연락처 만들기
<a name="configuring-list-management-create-contact"></a>

SES API v2에서 [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateContact.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateContact.html) 작업을 사용하여 연락처를 생성할 수 있습니다. AWS CLI을(를) 사용하여 이 설정을 쉽고 빠르게 구성할 수 있습니다. 설치 및 구성에 대한 자세한 내용은 [AWS Command Line Interface 사용 설명서를](https://docs.aws.amazon.com/cli/latest/userguide/) AWS CLI참조하세요.

**를 사용하여 연락처를 생성하려면 AWS CLI**
+ 명령줄에 다음 명령을 입력합니다.

  ```
  aws sesv2 create-contact --cli-input-json file://CONTACT-JSON
  ```

  위의 명령에서 *CONTACT-JSON*을 [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateContact.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateContact.html) 요청에 대한 JSON 파일 경로로 바꿉니다.

  요청에 대한 `CreateContact` 입력 JSON 파일의 예는 다음과 같습니다.

  ```
  {
      "ContactListName": "ExampleContactListName",
      "EmailAddress": "example@amazon.com",
      "UnsubscribeAll": false,
      "TopicPreferences": [
          {
              "TopicName": "Sports",
              "SubscriptionStatus": "OPT_IN"
          }
      ],
      "AttributesData": "{\"Name\": \"John\", \"Location\": \"Seattle\"}"
  }
  ```

  위 예제에서 `UnsubscribeAll` 값이 `false`이면 해당 연락처가 모든 주제의 구독을 취소하지 않았음을 나타냅니다. 여기서 값이 `true`이면 연락처가 모든 주제의 구독을 취소했음을 의미합니다.

  `TopicPreferences`에는 연락처의 주제 구독 상태에 대한 정보가 포함되어 있습니다. 앞의 예에서 연락처는 '*Sports*' 주제를 선택했으며 '*Sports*' 주제에 대한 모든 이메일을 받게 됩니다.

  `AttributesData`는 연락처에 대한 모든 메타데이터를 넣을 수 있는 JSON 필드입니다. 유효한 JSON 객체여야 합니다.

### 연락처 목록으로 연락처 일괄 가져오기
<a name="configuring-list-management-bulk-import"></a>

SES API v2 또는 SES 콘솔에서 [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateImportJob.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateImportJob.html) 작업을 사용하여 Amazon S3 객체에 연락처를 먼저 업로드한 다음 일괄적으로 주소를 수동으로 추가할 수 있습니다. 자세한 내용은 [계정 수준 금지 목록에 이메일 주소 일괄 추가](sending-email-suppression-list.md#sending-email-suppression-list-manual-add-bulk)을 참조하세요.

연락처를 가져오기 전에 연락처 목록을 만들어야 합니다.

**참고**  
ImportJob당 연락처 목록에 최대 1백만 개의 연락처를 추가할 수 있습니다.

연락처 목록에 연락처를 일괄적으로 추가하려면 다음 단계를 완료하세요.
+ CSV 또는 JSON 형식으로 Amazon S3 객체에 주소를 업로드합니다.

  **CSV 형식**

  Amazon S3에 업로드되는 파일의 첫 번째 줄은 헤더 행이어야 합니다.

  `topicPreferences` 객체를 CSV 형식으로 병합해야 합니다. `topicPreferences`의 모든 주제에는 별도의 헤더 필드가 있습니다.

  연락처 목록에 연락처를 일괄 추가하는 CSV 형식 예:

  ```
  emailAddress,unsubscribeAll,attributesData,topicPreferences.Sports,topicPreferences.Cycling
  example1@amazon.com,false,{"Name": "John"},OPT_IN,OPT_OUT
  example2@amazon.com,true,,OPT_OUT,OPT_OUT
  ```

  **JSON 형식**

  줄바꿈으로 구분된 JSON 파일만 지원됩니다. 이 형식에서 각 줄은 하나의 연락처 정보가 포함된 완전한 JSON 객체입니다.

  연락처 목록에 연락처를 일괄 추가하는 JSON 형식 예:

  ```
  {
       "emailAddress": "example1@amazon.com",
       "unsubscribeAll": false,
       "attributesData": "{\"Name\":\"John\"}",
       "topicPreferences": [
        {
            "topicName": "Sports",
            "subscriptionStatus": "OPT_IN"
        },
        {
            "topicName": "Cycling",
            "subscriptionStatus": "OPT_OUT"
        }
       ]
  }
  {
       "emailAddress": "example2@amazon.com",
       "unsubscribeAll": true,
       "topicPreferences": [
        {
            "topicName": "Sports",
            "subscriptionStatus": "OPT_OUT"
        },
        {
            "topicName": "Cycling",
            "subscriptionStatus": "OPT_OUT"
        }
       ]
  }
  ```

  위의 예제에서 *example1@amazon.com* 및 *example2@amazon.com*을 연락처 목록에 추가하려는 이메일 주소로 바꿉니다. `attributesData` 값을 연락처와 관련된 값으로 바꿉니다. 또한 *Sports* 및 *Cycling*을 연락처에 적용되는 `topicName`으로 바꿉니다. 허용되는 `topicPreferences`는 *OPT\$1IN*과 *OPT\$1OUT*입니다.

  연락처를 CSV 또는 JSON 형식으로 Amazon S3 객체에 업로드할 때 지원되는 속성은 다음과 같습니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/ses/latest/dg/sending-email-list-management.html)
+ SES에 S3 객체를 읽을 수 있는 권한을 부여합니다.

  Amazon S3 버킷에 적용하면 다음 정책은 SES에서 해당 버킷을 읽을 수 있는 권한을 부여합니다. Amazon S3의 버킷 정책에 대한 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [버킷 정책 및 사용자 정책 사용](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-iam-policies.html)을 참조하십시오.
+ SES에 AWS KMS 키를 사용할 수 있는 권한을 부여합니다.

  Amazon S3 객체가 AWS KMS 키로 암호화된 경우 Amazon SES에 KMS 키를 사용할 수 있는 권한을 부여해야 합니다. SES는 기본 KMS 키가 아닌 고객 관리형 키에서만 권한을 얻을 수 있습니다. 고객 관리 키를 사용하려면 키의 정책에 설명을 추가하여 SES에 권한을 부여해야 합니다.

  다음 정책 설명을 키 정책에 붙여넣어 SES가 고객 관리형 키를 사용할 수 있도록 허가하세요.

  ```
  {
     "Sid": "AllowSESToDecrypt", 
     "Effect": "Allow",
     "Principal": {
         "Service":"ses.amazonaws.com"
     },
     "Action": [
         "kms:Decrypt", 
     ],
     "Resource": "*"
  }
  ```
+ [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateImportJob.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateImportJob.html) 작업을 SES API v2에서 사용합니다.

**참고**  
다음 예제에서는 AWS CLI를 이미 설치했다고 가정합니다. 설치 및 구성에 대한 자세한 내용은 [AWS Command Line Interface 사용 설명서를](https://docs.aws.amazon.com/cli/latest/userguide/) AWS CLI참조하세요.

명령줄에 다음 명령을 입력합니다. *s3bucket*을 Amazon S3 버킷의 이름으로 바꾸고 *s3object*를 Amazon S3 객체 이름으로 바꿉니다.

```
aws sesv2 create-import-job --import-destination ContactListDestination={ContactListName=ExampleContactListName,ContactListImportAction=PUT} --import-data-source S3Url="s3://s3bucket/s3object",DataFormat=CSV
```

## 예제를 사용한 목록 관리 연습
<a name="configuring-list-management-list-contacts"></a>

다음 연습에서는 목록 관리를 사용하여 연락처를 나열하고, `ListManagementOptions`를 활용하여 이메일에 연락처 목록과 주제 이름을 지정하고, 구독 취소 링크를 삽입하는 방법에 대한 예제를 제공합니다.

1. **를 사용하여 연락처 나열 AWS CLI** - [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListContacts.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListContacts.html) 작업을 사용하여 이메일을 보낼 수 있는 [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html) 작업과 함께 특정 주제를 구독한 모든 연락처 목록을 검색할 수 있습니다.

   명령줄에 다음 명령을 입력합니다.

   ```
   aws sesv2 list-contacts --cli-input-json file://LIST-CONTACTS-JSON
   ```

   위의 명령에서 *LIST-CONTACT-JSON*을 [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListContacts.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListContacts.html) 요청에 대한 JSON 파일 경로로 바꿉니다.

   요청에 대한 `ListContacts` 입력 JSON 파일의 예는 다음과 같습니다.

   ```
   {
       "ContactListName": "ExampleContactListName",
       "Filter": {
           "FilteredStatus": "OPT_IN",
           "TopicFilter": {
               "TopicName": "Cycling",
               "UseDefaultIfPreferenceUnavailable": true
           }
       },
       "PageSize": 50
   }
   ```

   `FilteredStatus`는 필터링하려는 구독 상태를 보여주며, 이 상태는 `OPT_IN` 또는 `OPT_OUT`입니다.

   `TopicFilter`는 결과로 나타나기를 원하는 주제를 지정하는 필터 옵션이며 위의 예에서는 '*Cycling*'입니다.

   `UseDefaultIfPreferenceUnavailable`은 `true` 또는 `false` 값을 가질 수 있습니다. `true`의 경우, 연락처에 주제에 대한 명시적 기본 설정이 없는 경우 주제 기본 설정이 사용됩니다. `false`의 경우, 명시적으로 설정된 기본 설정이 있는 연락처만 필터링에 고려됩니다.

1. **`ListManagementOptions`를 사용하여 메일 전송** – 위의 [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListContacts.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListContacts.html) 작업을 사용하여 목록에 연락처를 나열한 후 [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html) 작업을 사용하여 [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListManagementOptions.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListManagementOptions.html) 헤더를 통해 연락처 목록과 주제 이름을 지정함으로써 각 연락처에 이메일을 보낼 수 있습니다.

   `SendEmail` 작업에 `ListManagementOptions`를 사용하려면 이메일이 속한 [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListManagementOptions.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListManagementOptions.html) 및 [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListManagementOptions.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListManagementOptions.html)을 포함합니다(`topicName`은 선택 사항).

   ```
   ListManagementOptions:
       String contactListName
       String topicName
   ```

   연락처 목록에 없는 수신자 이메일 주소에 `SendEmail` 요청의 `ListManagementOptions`를 포함하면 목록에 자동으로 연락처가 만들어집니다.

   SES는 연락처 목록에 있는 구독 취소된 연락처로 전송된 메시지에 대한 반송 메일 이벤트를 발급합니다. 즉, 구독이 취소된 연락처로 전송되지 않도록 `SendEmail` 요청을 업데이트할 필요가 없습니다.

1. **구독 취소 링크의 위치 지정** – [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListManagementOptions.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListManagementOptions.html)를 사용할 때 SES가 구독 취소 URL을 삽입해야 하는 위치를 지정하기 위해 `{{amazonSESUnsubscribeUrl}}` 자리 표시자를 사용하여 SES가 이메일에 구독 취소 바닥글 링크를 추가할 수 있도록 하는 옵션이 있습니다. HTML 및 TEXT 콘텐츠 형식에 대해서만 자리 표시자 교체가 지원됩니다. 자리 표시자를 최대 두 번 포함할 수 있습니다. 두 번 이상 사용하는 경우 처음 두 건만 교체됩니다. 자세한 내용은 [구독 관리 사용](sending-email-subscription-management.md) 단원을 참조하십시오.

   또는 SMTP 인터페이스를 사용하여 이메일을 보내는 경우 `X-SES-LIST-MANAGEMENT-OPTIONS` 헤더를 사용하여 목록과 주제 이름을 지정할 수 있습니다.

   SMTP 인터페이스를 사용하여 이메일을 보내는 동안 목록과 주제 이름을 지정하려면 메시지에 다음 이메일 헤더를 추가합니다.

   `X-SES-LIST-MANAGEMENT-OPTIONS: {contactListName}; topic={topicName}`