499
Amazon Simple Email Service 개발자 가이드

Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service개발자 가이드

Page 2: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드

Amazon Simple Email Service: 개발자 가이드Copyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드

Table of ContentsWhat is Amazon SES? ........................................................................................................................ 1

Why use Amazon SES? .............................................................................................................. 1Amazon SES and other AWS services .......................................................................................... 1In this guide .............................................................................................................................. 2

Quick start ......................................................................................................................................... 3Step 1: Sign up for AWS ............................................................................................................. 3Step 2: Verify your email address ................................................................................................. 3Step 3: Send your first email ........................................................................................................ 3Step 4: Consider how you will handle bounces and complaints .......................................................... 3Step 5: Move out of the Amazon SES sandbox ............................................................................... 3Next steps ................................................................................................................................. 4

Sending email .................................................................................................................................... 5How do I send emails using Amazon SES? .................................................................................... 5How do I start? .......................................................................................................................... 5Concepts ................................................................................................................................... 7

Amazon SES and deliverability ............................................................................................. 7Email-sending process ....................................................................................................... 10Email format and Amazon SES ........................................................................................... 13Types of credentials .......................................................................................................... 16

Getting started .......................................................................................................................... 17Using the Amazon SES console ......................................................................................... 17Using Simple Mail Transfer Protocol (SMTP) ......................................................................... 18Using an AWS SDK .......................................................................................................... 18시작하기 전 ...................................................................................................................... 18Send an Email Using the Console ....................................................................................... 18Send an email using SMTP ................................................................................................ 19Send an email using an AWS SDK ..................................................................................... 29Migrate to Amazon SES from another solution ...................................................................... 43

Setting up email ....................................................................................................................... 45Signing up for AWS .......................................................................................................... 45Verifying identities ............................................................................................................. 46Getting your AWS access keys ........................................................................................... 63AWS SDK 다운로드 .......................................................................................................... 63Setting up a custom MAIL FROM domain ............................................................................. 63Setting up SPF records ..................................................................................................... 69Getting your SMTP credentials ........................................................................................... 69샌드박스 환경에서 나가기 ................................................................................................. 69Configuring custom open and click domains .......................................................................... 75Setting up VPC endpoints .................................................................................................. 79

Email sending methods .............................................................................................................. 82Using the SMTP interface .................................................................................................. 83API 사용 ........................................................................................................................ 105Sending personalized email .............................................................................................. 114

Email authentication methods .................................................................................................... 125Authenticating Email with SPF .......................................................................................... 125DKIM을 사용하여 이메일 인증 ........................................................................................... 126DMARC 준수 .................................................................................................................. 138

발신 할당량 관리 ..................................................................................................................... 140발송 할당량 모니터링 ...................................................................................................... 141전송 할당량 높이기 ......................................................................................................... 142할당량 오류 전송 ............................................................................................................. 144

Using sending authorization ...................................................................................................... 144전송 권한 부여의 개요 ..................................................................................................... 145전송 권한 부여 정책 ........................................................................................................ 147

iii

Page 4: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드

전송 권한 부여 정책 예제 ................................................................................................. 151자격 증명 소유자 작업 ..................................................................................................... 156위임 발신자 작업 ............................................................................................................. 161

Using dedicated IP addresses ................................................................................................... 167Ease of Setup ................................................................................................................ 168Reputation Managed by AWS ........................................................................................... 168Predictability of Sending Patterns ...................................................................................... 168Volume of Outbound Email ............................................................................................... 168Additional Costs .............................................................................................................. 169Control over Sender Reputation ........................................................................................ 169Ability to Isolate Sender Reputation ................................................................................... 169Known, Unchanging IP Addresses ..................................................................................... 169Requesting and Relinquishing Dedicated IPs ....................................................................... 169전용 IP 워밍업 ................................................................................................................ 172전용 IP 풀 만들기 ........................................................................................................... 173고유 IP 주소 사용 ........................................................................................................... 174

Testing email sending .............................................................................................................. 175Important Considerations .................................................................................................. 175Using the Mailbox Simulator ............................................................................................. 176Testing Reject Events ...................................................................................................... 177

계정 수준 금지 목록 사용 ......................................................................................................... 177어카운트 수준 억제 목록 고려 사항 .................................................................................... 178계정 수준 억제 목록 활성화 .............................................................................................. 178구성 세트에 대한 계정 수준 억제 목록 활성화 ...................................................................... 179개별 전자 메일 주소를 계정 수준 억제 목록에 수동으로 추가 .................................................. 179계정 수준 억제 목록에 대량으로 전자 메일 주소 추가 ............................................................ 180계정 수준 억제 목록에 있는 주소 목록 보기 ......................................................................... 181계정 수준 금지 목록에서 이메일 주소 제거 .......................................................................... 183계정 수준 억제 목록에서 대량으로 전자 메일 주소 제거 ......................................................... 183계정에 대한 가져오기 작업 목록 보기 ................................................................................. 185어카운트의 가져오기 작업에 대한 정보 가져오기 .................................................................. 186계정 수준 억제 목록 비활성화 ........................................................................................... 187

Using the global suppression list ............................................................................................... 187Global suppression list considerations ................................................................................ 187Removing an address from the global suppression list .......................................................... 188

Supported security protocols ..................................................................................................... 188Email Sender to Amazon SES .......................................................................................... 188Amazon SES to Receiver ................................................................................................. 189End-to-End Encryption ..................................................................................................... 189

Receiving email .............................................................................................................................. 191Email receiving concepts .......................................................................................................... 191

Recipient-based control .................................................................................................... 191IP address-based control .................................................................................................. 192Email-receiving process .................................................................................................... 192

이메일 수신 시작하기 .............................................................................................................. 193Step 1: Before you begin ................................................................................................. 193Step 2: Verify your domain ............................................................................................... 194Step 3: Set up a receipt rule ............................................................................................. 195Step 4: Send a test email ................................................................................................. 197Step 5: View the email ..................................................................................................... 197Step 6: Clean up ............................................................................................................ 198

이메일 수신 설정하기 .............................................................................................................. 198Considering your use case ............................................................................................... 199Verifying your domain ...................................................................................................... 201Publishing an MX record .................................................................................................. 201Giving permission ............................................................................................................ 202Creating IP address filters ................................................................................................ 205

iv

Page 5: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드

Creating a receipt rule set ................................................................................................ 205Creating receipt rules ....................................................................................................... 206

Managing email receiving ......................................................................................................... 218Managing receipt rule sets ................................................................................................ 218Managing receipt rules ..................................................................................................... 221Managing IP address filters .............................................................................................. 223Viewing error metrics ....................................................................................................... 223Using notifications ........................................................................................................... 224

Using configuration sets ................................................................................................................... 235구성 집합 관리 ........................................................................................................................ 235

구성 세트 생성 ................................................................................................................ 235구성 세트 목록 보기 ........................................................................................................ 236구성 세트의 세부 정보 보기 .............................................................................................. 237구성 세트 삭제 ................................................................................................................ 237

이벤트 대상 관리 ..................................................................................................................... 238이벤트 대상 업데이트 ...................................................................................................... 238이벤트 대상 삭제 ............................................................................................................. 238이벤트 대상 활성화 또는 비활성화 ..................................................................................... 238

IP 풀 관리 .............................................................................................................................. 239구성 세트에 IP 풀 할당 .................................................................................................... 239IP 풀 할당 수정 ............................................................................................................... 239

이메일에 구성 세트 지정 .......................................................................................................... 240평판 지표 내보내기 ................................................................................................................. 240

구성 세트의 평판 지표 내보내기 활성화 .............................................................................. 240구성 세트의 평판 지표 내보내기 비활성화 ........................................................................... 241

Monitoring your sending activity ......................................................................................................... 242Monitoring using the console .................................................................................................... 244Monitor using the API .............................................................................................................. 244

Calling the GetSendStatistics API operation using the AWS CLI ....................................... 245Calling the GetSendStatistics operation programmatically ............................................... 245

Monitoring using notifications .................................................................................................... 247Important considerations ................................................................................................... 248Notifications through email ................................................................................................ 248Amazon SNS notifications ................................................................................................ 250

Monitoring sending using event publishing .................................................................................. 269How event publishing works ............................................................................................. 269How to use event publishing ............................................................................................. 270Event publishing terminology ............................................................................................. 270Setting up event publishing ............................................................................................... 271Working with event data ................................................................................................... 279Tutorials ......................................................................................................................... 319

Monitoring your sender reputation ...................................................................................................... 347Using the reputation dashboard ................................................................................................. 347평판 대시보드 메시지 .............................................................................................................. 348

General Status Messages ................................................................................................ 349반송 메일 발생률 알림 ..................................................................................................... 349수신 거부 발생률 알림 ..................................................................................................... 350스팸 방지 조직 알림 ........................................................................................................ 351직접 피드백 알림 ............................................................................................................. 352도메인 차단 목록 알림 ..................................................................................................... 353내부 검토 알림 ................................................................................................................ 354메일박스 제공업체 알림 ................................................................................................... 355수신자 피드백 알림 ......................................................................................................... 356관련 계정 알림 ................................................................................................................ 357스팸 트랩 알림 ................................................................................................................ 357취약 사이트 알림 ............................................................................................................. 358기타 알림 ....................................................................................................................... 359

v

Page 6: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드

Creating alarms using CloudWatch ............................................................................................ 359Automatically pausing email sending .......................................................................................... 361

For your entire account .................................................................................................... 362For a configuration set ..................................................................................................... 366

Controlling access ........................................................................................................................... 373Creating IAM Policies for Access to Amazon SES ........................................................................ 373

Restricting the Action ....................................................................................................... 373Restricting Email Addresses ............................................................................................. 374Restricting General API Usage .......................................................................................... 374

Example IAM Policies for Amazon SES ...................................................................................... 375Allowing Full Access to All Amazon SES Actions ................................................................. 375Allowing Access to Email-Sending Actions Only ................................................................... 375Restricting the Time Period of Sending ............................................................................... 376Restricting the Recipient Addresses ................................................................................... 376Restricting the "From" Address .......................................................................................... 376Restricting the Display Name of the Email Sender ................................................................ 377Restricting the Destination of Bounce and Complaint Feedback .............................................. 378

Logging API calls ............................................................................................................................ 379Amazon SES Information in CloudTrail ....................................................................................... 379Example: Amazon SES Log File Entries ..................................................................................... 381

Using the API ................................................................................................................................. 383API requests .......................................................................................................................... 383

Structure of a GET request ............................................................................................... 383Structure of a POST request ............................................................................................. 384

Request authentication ............................................................................................................. 385Authentication errors ........................................................................................................ 385

GET and POST examples ........................................................................................................ 386Example GET request ...................................................................................................... 386Example POST request .................................................................................................... 386

API responses ........................................................................................................................ 387Structure of a successful response .................................................................................... 387Structure of an Amazon SES API error response ................................................................. 388

API error codes ...................................................................................................................... 388Code examples ............................................................................................................................... 391

Sending email using AWS SDKs ............................................................................................... 391Sending email using the SMTP Interface .................................................................................... 404Sending raw email using AWS SDKs ......................................................................................... 417Verify multiple email addresses ................................................................................................. 425ID 복제 .................................................................................................................................. 426

Regions ......................................................................................................................................... 432Amazon SES regions and endpoints .......................................................................................... 432Sandbox and sending limit increases ......................................................................................... 432Verification of email addresses and domains ............................................................................... 433Easy DKIM ............................................................................................................................. 433Suppression list ...................................................................................................................... 433Feedback notifications .............................................................................................................. 433SMTP credentials .................................................................................................................... 433Custom MAIL FROM domains ................................................................................................... 434Sending authorization .............................................................................................................. 434Email receiving ....................................................................................................................... 435

Quotas ........................................................................................................................................... 436Email sending quotas .............................................................................................................. 436

Sending quotas ............................................................................................................... 436Message quotas .............................................................................................................. 436Sender and recipient quotas ............................................................................................. 437Quotas related to event publishing ..................................................................................... 437Email template quotas ..................................................................................................... 437

vi

Page 7: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드

Quotas related to email receiving .............................................................................................. 438General quotas ....................................................................................................................... 438

Amazon SES API quotas ................................................................................................. 438Best practices ................................................................................................................................. 439

성공 지표 ............................................................................................................................... 439반송 메일 발생률 ............................................................................................................. 439불만 제기 ....................................................................................................................... 440메시지 품질 .................................................................................................................... 441

Tips and best practices ............................................................................................................ 441General recommendations ................................................................................................ 441Domain and "From" address considerations ........................................................................ 442Authentication ................................................................................................................. 442Building and maintaining your lists ..................................................................................... 442Compliance .................................................................................................................... 443

Amazon SES 문제 해결 ................................................................................................................... 444General issues ........................................................................................................................ 444

Changes that I make are not immediately visible .................................................................. 444Verification problems ............................................................................................................... 445

Email verification problems ............................................................................................... 445Domain verification problems ............................................................................................ 445Checking domain verification settings ................................................................................. 446

DKIM problems ....................................................................................................................... 447Delivery problems ................................................................................................................... 448Problems with received emails .................................................................................................. 449notification problems ................................................................................................................ 449Email sending errors ................................................................................................................ 450Increasing throughput .............................................................................................................. 451SMTP issues .......................................................................................................................... 452

SMTP response codes ..................................................................................................... 454Deleting personal data ..................................................................................................................... 457

Delete Suppressed Addresses .................................................................................................. 457Delete Data About Sent Email .................................................................................................. 457

Remove Stored Event Data .............................................................................................. 458Delete Data About Identities ..................................................................................................... 458Delete Sender Authentication Data ............................................................................................ 459Delete Data Related to Receiving Rules ..................................................................................... 460Delete Data Related to IP Address Filters ................................................................................... 460Delete Data in Email Templates ................................................................................................ 461Delete Data in Custom Verification Email Templates ..................................................................... 461Delete All Data by Closing Your AWS Account ............................................................................ 461

FAQ .............................................................................................................................................. 463Sending review process FAQs .................................................................................................. 463

Account Under Review ..................................................................................................... 463Sending Pauses .............................................................................................................. 465Bounces ........................................................................................................................ 468Complaints ..................................................................................................................... 470Spamtraps ...................................................................................................................... 474Manual Investigations ...................................................................................................... 475

DNS 블랙홀 목록(DNSBL) FAQ ................................................................................................. 477DNSBL FAQ Q1 ............................................................................................................. 477DNSBL FAQ Q2 ............................................................................................................. 477DNSBL FAQ Q3 ............................................................................................................. 477DNSBL FAQ Q4 ............................................................................................................. 478DNSBL FAQ Q5 ............................................................................................................. 478DNSBL FAQ Q6 ............................................................................................................. 478

Email metrics FAQs ................................................................................................................. 479General ......................................................................................................................... 479

vii

Page 8: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드

Open Tracking ................................................................................................................ 480Click Tracking ................................................................................................................. 481

Resources ...................................................................................................................................... 483Appendix ........................................................................................................................................ 484

Header fields .......................................................................................................................... 484Unsupported attachment types .................................................................................................. 486

문서 기록 ....................................................................................................................................... 487................................................................................................................................................... cdxci

viii

Page 9: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Why use Amazon SES?

What is Amazon SES?Amazon Simple Email Service(Amazon SES) 개발자 안내서를 시작하겠습니다. Amazon SES는 사용자의이메일 주소와 도메인을 사용하여 이메일을 보내고 받기 위한 경제적이고 손쉬운 방법을 제공하는 이메일 플랫폼입니다.

예를 들어, 특별 행사 안내 등의 마케팅 이메일, 주문 확인서 등의 거래 이메일, 뉴스레터 등의 기타 통신문을발송할 수 있습니다. Amazon SES를 사용하여 메일을 수신하면 이메일 자동 응답기, 이메일 구독 해제 시스템, 수신 이메일에서 고객 지원 티켓을 생성하는 애플리케이션과 같은 소프트웨어 솔루션을 개발할 수 있습니다.

Amazon SES는 사용한 만큼만 비용을 지불하면 됩니다. 자세한 내용은 Amazon SES 요금을 참조하십시오.

Why use Amazon SES?대규모 이메일 솔루션을 구축하는 것은 비즈니스에 있어서 고비용의 복잡한 작업입니다. 이메일 서버 관리,네트워크 구성, IP 주소 신뢰도 등의 인프라 문제를 해결해야 하기 때문입니다. 또한 많은 타사 이메일 솔루션이 상당한 사전 비용과 함께 약정 및 가격 협상을 요구하고 있습니다. Amazon SES는 이러한 문제들을 해결하여 Amazon.com이 대규모 고객층을 위해 구축한 고급 이메일 인프라와 여기에 녹아든 다년간의 경험을마음껏 이용할 수 있습니다.

Amazon SES and other AWS servicesAmazon SES는 다른 AWS 제품과 완벽하게 통합됩니다. 예를 들어 다음을 수행할 수 있습니다.

• Add email-sending capabilities to any application. If your application runs in Amazon Elastic ComputeCloud (Amazon EC2), you can use Amazon SES to send 62,000 emails every month at no additionalcharge. You can send email from Amazon EC2 by using an AWS SDK, by using the Amazon SES SMTPinterface (p. 83), or by making calls directly to the Amazon SES API.

• Use AWS Elastic Beanstalk to create an email-enabled application such as a program that uses AmazonSES to send a newsletter to customers.

• Set up Amazon Simple Notification Service (Amazon SNS) to notify you of your emails that bounced,produced a complaint, or were successfully delivered to the recipient's mail server. When you useAmazon SES to receive emails, your email content can be published to Amazon SNS topics.

• Use the AWS Management 콘솔 to set up Easy DKIM, which is a way to authenticate your emails.Although you can use Easy DKIM with any DNS provider, it is especially easy to set up when youmanage your domain with Route 53.

• Control user access to your email sending by using AWS Identity and Access Management (IAM).• Store emails you receive in Amazon Simple Storage Service (Amazon S3).• Take action on your received emails by triggering AWS Lambda functions.• Use AWS Key Management Service (AWS KMS) to optionally encrypt the mail you receive in your

Amazon S3 bucket.• Use AWS CloudTrail to log Amazon SES API calls that you make using the console or the Amazon SES

API.• Publish your email sending events to Amazon CloudWatch or Amazon Kinesis Data Firehose. If you

publish your email sending events to Kinesis Data Firehose, you can access them in Amazon Redshift,Amazon Elasticsearch Service, or Amazon S3.

1

Page 10: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드In this guide

In this guide이 가이드는 다음 섹션을 포함하고 있습니다.

단원 설명

Sending email (p. 5) Amazon SES로 이메일을 전송하는 방법을 설명합니다.

Receiving email (p. 191) Amazon SES로 이메일을 수신하는 방법을 설명합니다.

Controlling access (p. 373) Amazon SES와 AWS Identity and Access Management(IAM)을 사용하여 사용자가 어떤 Amazon SES 리소스에서 어떤Amazon SES API 작업을 수행할지 지정하는 방법을 보여줍니다.

Logging API calls (p. 379) AWS CloudTrail를 사용하여 로깅할 수 있는 Amazon SES API의 목록을 제공합니다.

Types of credentials (p. 16) Amazon SES에서 사용할 수 있는 자격 증명의 유형과 언제 사용할 수 있는지를 설명합니다.

Using the API (p. 383) Amazon SES API와 상호 작용하는 방법을 설명합니다.

Regions (p. 432) 여러 AWS 리전에서 Amazon SES를 사용하는 것에 관한 설명이 포함되어 있습니다.

Quotas (p. 436) Amazon SES에 적용되는 할당량 목록을 제공합니다.

Resources (p. 483) Amazon SES을 사용할 때 참조할 수 있는 리소스를 나열합니다.

Appendix (p. 484) 헤더 필드, 미지원 첨부 파일 유형, 스크립트에 대한 보충 정보를 제공합니다.

2

Page 11: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Step 1: Sign up for AWS

Amazon SES Quick start이 절차에서는 AWS에 가입하고, 이메일 주소를 확인하고, 첫 이메일을 보내고, 반송 메일과 수신 거부를 처리하는 방법을 고려하고, Amazon Simple Email Service(Amazon SES) 샌드박스를 해제하는 단계를 안내합니다.

다음과 같은 경우 이 절차를 사용합니다.

• Are just experimenting with Amazon SES.• Want to send some test emails without doing any programming.• Want to get set up in as few steps as possible.

Step 1: Sign up for AWSAmazon SES를 사용하기 전에 AWS에 가입해야 합니다. AWS에 가입하면 모든 AWS 서비스에 계정이 자동으로 등록됩니다.

지침은 Signing up for AWS (p. 45)을 참조하십시오.

Step 2: Verify your email addressAmazon SES를 통해 본인의 이메일 주소에서 이메일을 보내려면 먼저 해당 이메일 주소를 확인하여 이메일주소의 소유자임을 Amazon SES에 인증해야 합니다.

지침은 Verifying email addresses in Amazon SES (p. 46)을 참조하십시오.

Step 3: Send your first emailAmazon SES 콘솔을 사용하여 이메일을 간단히 보낼 수 있습니다. 새 사용자의 경우 계정이 샌드박스라는테스트 환경에 있으므로, 확인된 이메일 주소로만 이메일을 주고받을 수 있습니다.

지침은 Send an email using the Amazon SES console (p. 18)을 참조하십시오.

Step 4: Consider how you will handle bounces andcomplaints

다음 단계로 넘어가기 전에 반송 메일과 불만 제기를 처리하는 방법에 대해 생각해야 합니다. 소수의 수신자에게 보내는 경우 이메일로 받는 반송 메일 및 수신 거부 피드백을 검토한 다음 메일 그룹에서 그러한 수신자를 간단하게 제거할 수 있습니다.

Step 5: Move out of the Amazon SES sandbox확인되지 않은 이메일 주소로 이메일을 보내고 하루에 보낼 수 있는 이메일 수와 속도를 높이려면 샌드박스환경에서 계정을 전환해야 합니다. 이 절차에는 지원 센터에서 SES Sending Limits Increase 요청을 보내는것이 포함됩니다.

3

Page 12: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Next steps

샌드박스 제한과 샌드박스 환경에서 나오는 방법에 대한 자세한 내용은 Amazon SES 샌드박스 환경에서 나가기 (p. 69) 단원을 참조하십시오.

Next steps• After you send a few test emails to yourself, use the Amazon SES mailbox simulator for further testing

because emails to the mailbox simulator do not count towards your sending quota or your bounce andcomplaint rates. For more information on the mailbox simulator, see Testing email sending in AmazonSES (p. 175).

• Monitor your sending activity, such as the number of emails that you have sent and the number thathave bounced or received complaints. For more information, see Monitoring your Amazon SES sendingactivity (p. 242).

• Verify entire domains so that you can send email from any email address in your domain without verifyingaddresses individually. For more information, see Verifying domains in Amazon SES (p. 57).

• Increase the chance that your emails will be delivered to your recipients' inboxes instead of junkboxes by authenticating your emails. For more information, see Authenticating your email in AmazonSES (p. 125).

4

Page 13: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드How do I send emails using Amazon SES?

Sending email with Amazon SES이메일을 보내면 일종의 아웃바운드 이메일 서버를 통해 전송됩니다. 이메일 서버는 인터넷 서비스 공급자(ISP) 또는 회사의 IT 부서에서 제공하거나 사용자가 직접 설정할 수 있습니다. 이메일 서버는 이메일 콘텐츠를 수락해 이메일 표준에 맞게 서식을 지정한 뒤 인터넷을 통해 내보냅니다. 이메일은 최종적으로 받는 사람(수신자를 대신해 이메일을 받는 ISP 같은 주체)에게 도달할 때까지 다른 서버를 통과할 수 있습니다. 그러면받는 사람이 수신자에게 이메일을 전달합니다. 다음 다이어그램에서는 기본적인 이메일 전송 프로세스를 보여줍니다.

Amazon SES를 사용하면 Amazon SES가 아웃바운드 이메일 서버가 됩니다. 기존 이메일 서버를 유지하고Amazon SES를 통해 발신 이메일을 보내도록 구성할 수도 있습니다. 이렇게 하면 이메일 클라이언트에서 설정을 변경하지 않아도 됩니다. 다음 다이어그램에는 Amazon SES가 이메일 전송 프로세스 중 어느 단계에위치하는지 나와 있습니다.

발신자는 다양한 방법으로 이메일 콘텐츠를 생성할 수 있습니다. 발신자는 이메일 클라이언트 애플리케이션을 사용하여 이메일을 생성하거나, 구매 주문에 응답하여 주문 확인서를 발송하는 애플리케이션과 같은 이메일 자동 생성 프로그램을 사용할 수 있습니다.

How do I send emails using Amazon SES?Amazon SES를 사용하여 이메일을 보내는 방법에는 여러 가지가 있습니다. Amazon SES 콘솔이나SMTP(Simple Mail Transfer Protocol) 인터페이스를 사용하거나 Amazon SES API를 호출할 수 있습니다.

• Amazon SES console—This method is the quickest way to set up your system and send a couple of testemails, but once you are ready to start your email campaign, you will use the console primarily to monitoryour sending activity. For example, you can quickly view the number of emails that you have sent and thenumber of bounces and complaints that you have received.

• SMTP Interface—There are two ways to access Amazon SES through the SMTP interface. The first way,which requires no coding, is to configure any SMTP-enabled software to send email through AmazonSES. For example, you can configure your existing email client or software program to connect to theAmazon SES SMTP endpoint instead of your current outbound email server.

The second way is to use an SMTP-compatible programming language such as Java and access theAmazon SES SMTP interface by using the language's built-in SMTP functions and data types.

• Amazon SES API—You can call the Amazon SES Query API directly through HTTPS, or you can use theAWS Command Line Interface, the Windows PowerShell용 AWS 도구, or an AWS SDK. The AWS SDKswrap the low-level functionality of the Amazon SES API with higher-level data types and function callsthat take care of the details for you. The AWS SDKs provide not only Amazon SES operations, but alsobasic AWS functionality such as request authentication, request retries, and error handling.

How do I start?Amazon SES를 처음 사용하는 경우 다음 단원을 먼저 읽어 보십시오.

5

Page 14: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드How do I start?

• Amazon SES Quick start (p. 3)—Shows you how to get set up and send a test email as quickly aspossible.

• Getting started sending email with Amazon SES (p. 17)—Shows you how to send an email by usingthe Amazon SES console, the SMTP interface, and an AWS SDK. Examples are provided in C#, Java,and PHP.

• Amazon SES and deliverability (p. 7)—Explains email deliverability concepts that you should befamiliar with when you use Amazon SES.

• Amazon SES email-sending process (p. 10)—Shows you what happens when you send an emailthrough Amazon SES.

• Email format and Amazon SES (p. 13)—Reviews the format of emails and identifies the informationthat you need to provide to Amazon SES.

그리고 다음 표에 열거된 단원을 읽고 Amazon SES을 통한 이메일 전송에 대해 보다 상세히 학습할 수 있습니다.

단원 설명

Setting up email (p. 45) AWS에 가입하고, AWS 액세스 키를 획득하고, AWS SDK를다운로드하고, 이메일 주소 또는 도메인을 확인하고, AmazonSES 샌드박스를 해제하는 방법을 설명합니다.

Using the SMTP interface (p. 83) Amazon SES SMTP 자격 증명을 획득하고 Amazon SESSMTP 엔드포인트로 연결하는 방법을 소개하고 Amazon SES를 통해 이메일을 전송하도록 이메일 클라이언트 및 소프트웨어를 구성하는 방법에 대한 예제를 제공합니다. 또한 AmazonSES를 통해 모든 발신 이메일을 보내도록 기존 이메일 서버를구성하는 방법을 설명합니다.

API 사용 (p. 105) Amazon SES API를 사용하여 서식 지정된 이메일과 원시 이메일을 전송하는 방법을 설명합니다. 원시 이메일을 전송할때 비 표준 문자를 사용하고 MIME(Multipurpose Internet MailExtensions) 표준을 사용하여 첨부 파일을 전송하는 방법을 설명합니다.

Email authentication methods (p. 125) Amazon SES에서 DKIM을 사용하여 이메일을 전송한 도메인이 본인의 소유임을 ISP에게 입증하는 방법을 설명합니다.

발신 할당량 관리 (p. 140) Amazon SES 발신 할당량을 설명하고, 발신 할당량을 늘리는절차를 제공하고, 발신 할당량을 초과할 경우 받는 오류를 문서화합니다.

Using sending authorization (p. 144) 사용자가 다른 사용자에게 자신을 대신하여 자신의 자격 증명으로 이메일을 전송하도록 권한을 부여하는 방법을 설명합니다.

Using dedicated IP addresses (p. 167) you decide whether to use shared IP addresses or leasededicated IP addresses for your Amazon SES sending.Provides procedures for requesting and relinquishingdedicated IPs, and for creating pools of dedicated IPs.

Testing email sending (p. 175) Amazon SES 사서함 시뮬레이터를 사용하여 반송 메일 및 수신 거부 측정치와 같은 발송 통계치에 영향을 주지 않고 일반적인 이메일 시나리오를 시뮬레이션하는 방법을 설명합니다.테스트할 수 있는 시나리오는 전송 성공, 반송 메일, 수신 거부,OOTO(out-of-the-office) 및 금지 목록 내 주소입니다.

6

Page 15: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Concepts

Amazon SES email-sending concepts다음 단원에는 Amazon SES가 메일을 보내는 방법에 대한 정보가 있습니다.

이 단원의 주제:• Amazon SES and deliverability (p. 7)• Amazon SES email-sending process (p. 10)• Email format and Amazon SES (p. 13)• Types of Amazon SES credentials (p. 16)

Amazon SES and deliverability발신자는 수신자가 이메일을 읽고, 이메일에서 가치를 발견하고, 이메일을 스팸으로 표시하지 않기를 원합니다. 다시 말해, 이메일을 극대화하고 싶어 합니다. deliverability—수신자의 상자 에 도착하는 사용자의 비율.이 주제에서는 Amazon SES를 사용할 때 숙지해야 할 이메일 발송률 개념에 대해 알아봅니다.

이메일 발송률을 극대화하기 위해서는 이메일 전송 문제를 이해하고, 이러한 문제를 방지하기 위해 사전에조치를 취하고, 전송한 이메일의 상태를 추적하고, 필요한 경우 이메일 전송 프로그램을 개선하여 성공적인전송의 가능성을 더 높여야 합니다. 다음 단원에서는 이러한 조치의 배경이 되는 개념과 Amazon SES가 프로세스에서 어떤 도움을 주는지 알아봅니다.

7

Page 16: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SES and deliverability

Understand email delivery issues대부분의 경우, 메시지를 기대하는 수신자에게는 메시지가 성공적으로 전송됩니다. 하지만 전송이 실패하거나 수신자가 발송된 이메일을 수신하기를 원치 않는 경우도 간혹 있을 수 있습니다. 반송 메일, 불만 제기, 금지 목록이 이러한 전송 문제와 관련되며, 다음 섹션에서 이들 문제에 대해 설명합니다.

Bounce수신자의 수신기(예: 이메일 공급자)가 수신자에게 메시지를 전달하지 못하는 경우 수신기는 메시지를Amazon SES로 반송합니다. 그러면 Amazon SES가 사용자의 시스템 설정 방식에 따라 이메일 또는Amazon Simple Notification Service(Amazon SNS)를 통해 사용자에게 반송된 이메일을 알립니다. 자세한정보는 Monitoring Amazon SES email sending using notifications (p. 247) 단원을 참조하십시오.

있습니다 hard bounces and soft bounces다음과 같이:

• Hard bounce – A persistent email delivery failure. For example, the mailbox does not exist. Amazon SESdoes not retry hard bounces, with the exception of DNS lookup failures. We strongly recommend that youdo not make repeated delivery attempts to email addresses that hard bounce.

• Soft bounce – A temporary email delivery failure. For example, the mailbox is full, there are too manyconnections (also called throttling), or the connection times out. Amazon SES retries soft bouncesmultiple times. If the email still cannot be delivered, then Amazon SES stops retrying it.

Amazon SES는 사용자에게 더 이상 전송을 재시도하지 않을 소프트 바운스 및 하드 바운스에 대해 알립니다. 단, 하드 바운스만 Amazon SES 콘솔 또는 GetSendStatistics API를 사용하여 검색하는 반송 메일발생률 및 반송 메일 측정치에 반영됩니다.

바운스는 synchronous 또는 asynchronous. 발신자 및 수신자의 이메일 서버가 활발하게 통신 중인 동안 동기 바운스가 발생합니다. 비동기식 반송 메일은 받는 사람이 처음에는 이메일 메시지를 수락했다가 나중에수신자에게 전송하지 못하는 경우 발생합니다.

Complaint대부분의 이메일 클라이언트 프로그램은 "스팸으로 표시" 등으로 표시된 버튼을 제공합니다. 이 버튼을 누르면 메시지가 스팸 폴더로 이동한 후 이메일 공급자로 전달됩니다. 또한, 대부분의 이메일 공급자는 침해 주소(예: [email protected])를 유지합니다. 이 주소를 통해 사용자는 이메일 공급자에게 원치 않는 이메일 메시지를 전달하고 이러한 메시지를 방지하는 작업을 할 것을 요청할 수 있습니다. 두 경우 모두, 수신자가 수신 거부를 제기하는 것입니다. 이메일 공급자가 발신자를 스패머라고 판단하고 Amazon SES가 해당 이메일공급자와 피드백 루프를 설정한 경우, 이메일 공급자가 수신 거부를 Amazon SES로 전송합니다. 그러한 수신 거부를 수신한 Amazon SES는 사용자가 시스템을 설정한 방식에 따라 이메일 또는 Amazon SNS 알림을통해 사용자에게 수신 거부 알림을 전달합니다. 자세한 정보는 Monitoring Amazon SES email sending usingnotifications (p. 247) 단원을 참조하십시오. 수신 거부가 발생한 이메일 주소는 전송 시도를 반복하지 않는것이 좋습니다.

Global suppression listThe Amazon SES global suppression list 은(는) 최근에 하드 바운스를 발생시킨 수신자 이메일 주소 목록입니다. Amazon SES 고객. Amazon SES를 통해 금지 목록에 포함된 주소로 이메일을 전송하려 할 경우Amazon SES 호출은 성공하지만 Amazon SES가 해당 이메일을 전송하는 대신 하드 바운스로 취급합니다. 일반적인 반송과 마찬가지로 발송 금지 목록 반송은 발신 할당량과 반송률에 포함됩니다. 이메일 주소는 최대 14일까지 발송 금지 목록에 남아 있을 수 있습니다. 해당 이메일 주소가 유효한 것으로 확신하는경우 사용자는 금지 목록 제거 요청을 제출할 수 있습니다. 자세한 정보는 Using the Amazon SES globalsuppression list (p. 187) 단원을 참조하십시오.

Be proactive인터넷 상에서 가장 심각한 이메일 문제 중 하나가 원치 않는 대량 메일(스팸)입니다. 이메일 공급자는 고객이 스팸을 수신하도록 상당한 조치를 취하고 있습니다. Amazon SES도 이메일 공급자가 사용자의 이메일을

8

Page 17: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SES and deliverability

스팸으로 간주할 가능성을 낮추기 위해 조치를 취합니다. Amazon SES는 확인, 인증, 발신 할당량 및 콘텐츠필터링을 사용합니다. 또한 Amazon SES는 이메일 공급자로부터 신뢰할 수 있는 평판을 유지하고 있으며 사용자에게도 중요 이메일을 전송하도록 요구하고 있습니다. Amazon SES는 이러한 조치를 사용자 대신 자동으로 수행하고 있으며(예: 콘텐츠 필터링), 도구를 제공하거나(예: 인증) 사용자를 올바른 방향으로 유도하고있습니다(예: 발신 할당량). 다음 단원에서는 각 개념에 대한 자세한 내용을 제공합니다.

Verification불행히도 스패머가 이메일을 다른 소스로부터 발송된 것처럼 보이기 위해 이메일 헤더를 조작하고 발신 이메일 주소를 스푸핑하는 것이 가능합니다. 이메일 공급자와 Amazon SES 사이에서 신뢰를 유지하기 위해,Amazon SES는 발신자가 사용자 본인이라는 것을 보증해야 합니다. 그러므로 사용자는 Amazon SES를통해 이메일을 전송하는 모든 이메일 주소를 확인하여 전송 자격 증명을 보호해야 합니다. 이메일 주소는Amazon SES 콘솔 또는 Amazon SES API를 사용하여 확인할 수 있습니다. 전체 도메인을 확인할 수도 있습니다. 자세한 내용은 Verifying email addresses in Amazon SES (p. 46) 및 Verifying domains in AmazonSES (p. 57) 단원을 참조하십시오.

계정이 아직 Amazon SES 샌드박스에 있는 경우, Amazon SES 사서함 시뮬레이터에서 제공하는 주소를제외한 모든 수신자 이메일 주소 또한 확인해야 합니다. 샌드박스 해제에 대한 자세한 내용은 Amazon SES샌드박스 환경에서 나가기 (p. 69) 단원을 참조하십시오. 메일박스 시뮬레이터에 대한 자세한 내용은Testing email sending in Amazon SES (p. 175) 단원을 참조하십시오.

AuthenticationAuthentication 님은 귀하가 라고 말한다고 말하는 이메일 공급자에게 표시할 수 있는 또 다른 방법입니다. 이메일을 인증하면 발신자가 계정의 소유자이고 발신자가 보낸 이메일이 전송 중에 수정되지 않았다는 증거를 제공하는 것입니다. 경우에 따라 이메일 제공업체는 인증되지 않은 이메일을 전달하지 않습니다. AmazonSES 는 두 가지 인증 방법을 지원합니다. 발신자 정책 프레임워크(SPF) 및 도메인 키 확인 메일(DKIM). 자세한 정보는 Authenticating your email in Amazon SES (p. 125) 단원을 참조하십시오.

Sending quotas예상치 못한 갑작스러운 이메일 볼륨 또는 속도 급증이 감지되면 이메일 공급자는 발신자를 스패머로 의심하여 이메일을 차단할 수 있습니다. 따라서 모든 Amazon SES 계정에는 발신 할당량이 있습니다. 이러한 할당량은 24시간 동안 보낼 수 있는 이메일 수와 초당 보낼 수 있는 수를 제한합니다. 이러한 발신 할당량은 이메일 공급자와의 신뢰를 보호하는 데 도움이 됩니다.

대부분의 경우 신규 사용자에게는 Amazon SES가 매일 소량의 이메일을 전송하도록 허용합니다. 사용자가 전송하는 메일이 이메일 공급자가 허용 가능한 수준이라면 이 할당량이 자동으로 증가합니다. 사용자가더 많은 이메일을 더 빠른 속도로 전송할 수 있도록 발신 할당량이 꾸준히 증가합니다. SES Sending LimitsIncrease case를 생성하여 추가 할당량 증가를 요청할 수도 있습니다.

발신 할당량 및 할당량을 높이는 방법에 대한 자세한 내용은 관리 Amazon SES 할당량 보내기 (p. 140) 단원을 참조하십시오.

Content filtering많은 이메일 공급자가 콘텐츠 필터링을 사용하여 수신 이메일이 스팸인지 여부를 결정합니다. 콘텐츠 필터는 의심스러운 콘텐츠를 검색하여 이메일이 스팸의 프로필에 해당하는 경우 해당 이메일을 차단합니다.Amazon SES도 콘텐츠 필터를 사용합니다. 애플리케이션이 Amazon SES로 요청을 전송하면 Amazon SES가 사용자를 대신해 이메일 메시지를 수집한 후 메시지 헤더 및 본문을 스캔하여 이메일 공급자가 스팸으로간주할 수 있는 콘텐츠가 포함되었는지 판단합니다. 사용자의 메시지가 Amazon SES의 콘텐츠 필터에 스팸처럼 보일 경우 Amazon SES에서의 사용자 신뢰도에 악영향을 주게 됩니다.

또한 Amazon SES는 모든 메시지에서 바이러스를 검사합니다. 메시지에 바이러스가 포함되는 경우Amazon SES는 해당 메시지를 수신자의 메일 서버로 전송하지 않습니다.

Reputation이메일 전송 시 reputation—IP 주소, 이메일 주소 또는 전송 도메인이 스팸 출처가 아니라는 확신 척도—중요합니다. Amazon SES 이메일 제공업체와 강력한 평판을 유지하여 수신자의 편지함으로 이메일을 전송합

9

Page 18: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Email-sending process

니다. 마찬가지로, 사용자는 Amazon SES로부터 높은 신뢰도를 유지해야 합니다. 사용자는 품질이 높은 콘텐츠를 전송함으로써 Amazon SES에서 신뢰도를 쌓을 수 있습니다. 사용자가 품질이 높은 콘텐츠를 전송하면 장기적으로 평판이 상승하여 Amazon SES가 사용자의 발신 할당량을 늘립니다. 과도한 반송 메일 및수신 거부는 사용자의 평판에 악영향을 미치며 Amazon SES가 계정의 발신 할당량을 낮추거나 사용자의Amazon SES 계정이 종료되는 원인이 될 수 있습니다.

신뢰도를 유지하는 한 방법은 시스템을 테스트할 때 사용자가 직접 생성한 이메일 주소로 이메일을 전송하는 대신 사서함 시뮬레이터를 사용하는 것입니다. 메일박스 시뮬레이터로 보낸 이메일은 반송 메일 및 불만제기 지표에 영향을 미치지 않습니다. 메일박스 시뮬레이터에 대한 자세한 내용은 Testing email sending inAmazon SES (p. 175) 단원을 참조하십시오.

High-quality email

품질이 높은 이메일은 수신자가 가치를 발견하고 수신을 희망하는 이메일입니다. 가치는 수신자마다 다른 것을 의미하며 제안, 주문 확인, 영수증, 뉴스레터 등의 형태를 띨 수 있습니다. 궁극적으로, 사용자의 발송률은사용자가 전송하는 이메일의 품질에 달려 있습니다. 이메일 공급자는 낮은 품질로 간주되는 이메일을 차단하기 때문입니다.

Stay informed이메일 전송이 실패했는지, 수신자가 이메일에 대해 수신 거부를 제기했는지, Amazon SES가 성공적으로 이메일을 수신자의 메일 서버로 전달했는지 여부에 대해 Amazon SES는 알림을 제공하고 간편한 사용량 통계치 모니터링을 제공하여 사용자가 문제를 추적할 수 있게 지원합니다.

Notifications

이메일이 반송되면 이메일 공급자는 Amazon SES에게 알리고 Amazon SES는 사용자에게 알립니다.Amazon SES는 사용자에게 Amazon SES가 더 이상 전송을 재시도하지 않을 소프트 바운스 및 하드 바운스에 대해 알립니다. 또한 많은 이메일 공급자가 수신 거부를 전달하는데 Amazon SES가 주요 이메일 공급자와 수신 거부 피드백 루프를 설정하고 있으므로 사용자는 그럴 필요가 없습니다. Amazon SES는 사용자에게두 가지 방법으로 반송 메일, 수신 거부 및 전송 성공을 알릴 수 있습니다. 사용자는 Amazon SNS를 통해 알림을 수신하도록 계정을 설정하거나 이메일을 통해 알림을 수신할 수 있습니다(반송 메일 및 수신 거부만 해당). 자세한 정보는 Monitoring Amazon SES email sending using notifications (p. 247) 단원을 참조하십시오.

Usage statistics

Amazon SES는 사용자가 실패한 전송을 통해 근본 원인을 파악하고 해결할 수 있도록 사용량 통계치를 제공합니다. 사용량 통계치는 Amazon SES 콘솔을 사용하거나 Amazon SES API를 호출하여 확인할 수 있습니다. 전송, 반송 메일, 수신 거부 및 바이러스 감염 거부 이메일 수를 확인할 수 있고, 또한 발신 할당량을 초과하지 않도록 발신 할당량을 확인할 수 있습니다.

Improve your email-sending program반송 메일 및 불만 제기 수가 증가하고 있다면 이메일 전송 전략을 재평가할 때입니다. 반송 메일, 수신 거부및 낮은 품질의 이메일 전송 시도가 과다하게 발생하면 침해 사례가 성립되고 AWS 계정이 종료될 수 있습니다. 궁극적으로, 사용자는 Amazon SES를 사용하여 중요 이메일을 전송하고 수신자가 수신을 희망하는 이메일만 전송해야 합니다.

Amazon SES email-sending process이 주제에서는 Amazon SES를 통해 이메일을 전송할 때 어떤 과정을 거치는지 설명하고 이메일 전송 후 발생할 수 있는 다양한 결과에 대해 설명합니다. 다음 그림은 전송 프로세스의 종합적 개요입니다.

10

Page 19: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Email-sending process

1. 이메일 발신자 역할을 담당하는 클라이언트 애플리케이션이 Amazon SES에게 하나 이상의 수신자에게이메일을 전송하는 요청을 합니다.

2. 요청이 유효하면 Amazon SES가 이메일을 수락합니다.3. Amazon SES는 인터넷을 통해 수신자의 수신 장치에 메시지를 보냅니다. Amazon SES로 전달된 메시

지는 일반적으로 즉시 전송됩니다. 통상적으로 최초 전송 시도가 몇 밀리초 이내에 이루어집니다.4. 이 시점에서 다양한 가능성이 존재합니다. 예: .

a. ISP가 성공적으로 메시지를 수신자의 수신함으로 전송합니다.b. 수신자의 이메일 주소가 존재하지 않습니다. 따라서 ISP가 Amazon SES로 반송 메일 알림을 전송

합니다. 그러면 Amazon SES가 알림을 발신자에게 전달합니다.c. 수신자가 메시지를 수신하지만 이를 스팸으로 여겨 ISP에게 수신 거부를 제기합니다. Amazon SES

와 피드백 루프가 설정되어 있는 ISP가 Amazon SES로 수신 거부를 전송하고, 그런 다음 발신자로전달됩니다.

다음 단원에서는 발신자가 Amazon SES로 이메일 요청을 보낸 후, 그리고 Amazon SES가 수신자에게 이메일 메시지를 전송한 후 발생 가능한 개별 결과를 알아봅니다.

After a sender sends an email request to Amazon SES발신자가 Amazon SES로 이메일 전송 요청을 할 경우 호출이 성공할 수도 실패할 수도 있습니다. 다음 단원에서 각 경우에 어떤 일이 벌어지는지 설명합니다.

Successful sending requestAmazon SES에 대한 요청이 성공하면 Amazon SES가 발신자에게 성공 응답을 반환합니다. 이 메시지는message ID요청을 고유하게 식별하는 문자열입니다. 이 메시지 ID를 사용하여 전송된 이메일을 식별하거나 전송 중 발생하는 문제를 추적할 수 있습니다. 그런 다음 Amazon SES가 요청 파라미터를 기반으로 이메일 메시지를 수집하고 메시지에서 의심스러운 콘텐츠 및 바이러스를 검사한 다음 Simple Mail TransferProtocol(SMTP)을 사용하여 인터넷을 통해 전송합니다. 메시지는 일반적으로 즉시 전송됩니다. 통상적으로최초 전송 시도가 몇 밀리초 이내에 이루어집니다.

Note

Amazon SES가 발신자의 요청을 수락한 다음 메시지에 바이러스가 포함된 것을 확인할 경우Amazon SES는 해당 메시지 처리를 중지하고 해당 메시지를 수신자의 메일 서버로 전송하지 않습니다.

Failed sending request발신자가 Amazon SES로 보낸 이메일 전송 요청이 실패할 경우 Amazon SES가 발신자에게 오류를 반환하고 이메일을 거부합니다. 요청이 실패하는 원인은 여러 가지가 있을 수 있습니다. 예를 들어 요청이 적절한형식이 아니거나 발신자가 이메일 주소를 확인하지 않았을 수 있습니다.

11

Page 20: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Email-sending process

사용자가 요청 실패 여부를 확인할 수 있는 방법은 Amazon SES를 호출한 방법에 따라 다릅니다. 다음 예제는 오류 및 예외가 반환되는 방식입니다.

• If you are calling Amazon SES through the Query (HTTPS) API (SendEmail or SendRawEmail), theactions will return an error. For more information, see the Amazon Simple Email Service API Reference.

• If you are using an AWS SDK for a programming language that uses exceptions, the call to Amazon SESwill throw a MessageRejectedException. (The name of the exception may vary slightly depending on theSDK.)

• If you are using the SMTP interface, then the sender receives an SMTP response code, but how the erroris conveyed depends on the sender's client. Some clients may display an error code; others may not.

Amazon SES를 통해 이메일을 전송할 때 발생할 수 있는 오류에 대한 자세한 내용은 Amazon SES emailsending errors (p. 450) 단원을 참조하십시오.

After Amazon SES sends an email발신자가 Amazon SES로 보낸 요청이 성공할 경우 Amazon SES가 이메일을 전송하고 다음 결과 중 하나가발생합니다/

• Successful delivery and the recipient does not object to the email—The email is accepted by the ISP, andthe ISP delivers the email to the recipient. A successful delivery is shown in the following figure.

• Hard bounce—The email is rejected by the ISP because of a persistent condition or rejected by AmazonSES because the email address is on the Amazon SES suppression list. An email address is on theAmazon SES suppression list if it has recently caused a hard bounce for any Amazon SES customer. Ahard bounce with an ISP can occur because the recipient's address is invalid. A hard bounce notificationis sent from the ISP back to Amazon SES, which notifies the sender through email or through AmazonSimple Notification Service (Amazon SNS), depending on the sender's setup. Amazon SES notifies thesender of suppression list bounces by the same means. The path of a hard bounce from an ISP is shownin the following figure.

• Soft bounce—The ISP cannot deliver the email to the recipient because of a temporary condition, suchas the ISP is too busy to handle the request or the recipient's mailbox is full. A soft bounce can alsooccur if the domain does not exist. The ISP sends a soft bounce notification back to Amazon SES, or,in the case of a nonexistent domain, Amazon SES cannot find an email server for the domain. In eithercase, Amazon SES retries the email for an extended period of time. If Amazon SES cannot deliver theemail in that time period, it sends you a bounce notification through email or through Amazon SNS.If Amazon SES can deliver the email to the recipient during a retry, the delivery is successful. A softbounce is shown in the following figure. In this case, Amazon SES retries sending the email, and the ISPis eventually able to deliver it to the recipient.

• Complaint—The email is accepted by the ISP and delivered to the recipient, but the recipient considersthe email to be spam and clicks a button such as "Mark as spam" in his or her email client. If AmazonSES has a feedback loop set up with the ISP, then a complaint notification is sent to Amazon SES,

12

Page 21: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Email format and Amazon SES

which forwards the complaint notification to the sender. Most ISPs do not provide the email addressof the recipient who submitted the complaint, so the complaint notification from Amazon SES providesthe sender a list of recipients who might have sent the complaint, based on the recipients of the originalmessage and the ISP from which Amazon SES received the complaint. The path of a complaint is shownin the following figure.

• Auto response—The email is accepted by the ISP, and the ISP delivers it to the recipient. The ISP thensends an automatic response such as an out-of-the-office (OOTO) message to Amazon SES. AmazonSES forwards the auto response notification to the sender. An auto response is shown in the followingfigure.

Make sure that your Amazon SES-enabled program does not retry sending messages that generate anauto response.

Tip

You can use the Amazon SES mailbox simulator to test a successful delivery, bounce,complaint, OOTO, or what happens when an address is on the suppression list. For moreinformation, see Testing email sending in Amazon SES (p. 175).

Email format and Amazon SES클라이언트가 Amazon SES로 요청을 보내면 Amazon SES가 인터넷 메시지 형식 사양(RFC 5322)을 준수하여 이메일 메시지를 구성합니다. 이메일은 header, a body, 및 envelope에 설명되어 있습니다.

• Header—Contains routing instructions and information about the message. Examples are the sender'saddress, the recipient's address, the subject, and the date. The header is analogous to the information atthe top of a postal letter, though it can contain many other types of information, such as the format of themessage.

• Body—Contains the text of the message itself.• Envelope—Contains the actual routing information that is communicated between the email client and

the mail server during the SMTP session. This email envelope information is analogous to the informationon a postal envelope. The routing information of the email envelope is usually the same as the routinginformation in the email header, but not always. For example, when you send a blind carbon copy (BCC),the actual recipient address (derived from the envelope) is not the same as the "To" address that isdisplayed in the recipient's email client, which is derived from the header.

다음은 간단한 이메일의 예입니다. 헤더 다음에 한 줄이 건너뛴 후 이메일 본문이 이어집니다. 엔벌로프는 이메일 자체의 일부가 아니라 SMTP 세션 도중 클리언트와 메일 서버 사이에서 통신되므로 표시되지 않습니다.

Received: from abc.smtp-out.amazonses.com (123.45.67.89) by in.example.com (87.65.43.210); Fri, 17 Dec 2010 14:26:22From: "Andrew" <[email protected]>;To: "Bob" <[email protected]>Date: Fri, 17 Dec 2010 14:26:21 -0800

13

Page 22: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Email format and Amazon SES

Subject: HelloMessage-ID: <[email protected]>Accept-Language: en-USContent-Language: en-USContent-Type: text/plain; charset="us-ascii"Content-Transfer-Encoding: quoted-printableMIME-Version: 1.0

Hello, I hope you are having a good day.

-Andrew

다음 단원에서는 이메일 헤더 및 본문에 대해 살펴보고 Amazon SES를 사용할 때 제공해야 하는 정보를 알아봅니다.

Email header이메일 메시지당 하나의 헤더가 있습니다. 헤더의 각 줄은 필드를 포함하며 필드와 필드 본문 사이는 콜론으로 구분됩니다. 이메일 클라이언트에서 이메일을 읽을 때, 통상적으로 이메일 클라이언트가 다음 헤더 필드의 값을 표시합니다.

• To—The email addresses of the message's recipients.• CC—The email addresses of the message's carbon copy recipients.• From—The email address from which the email is sent.• Subject—A summary of the message topic.• Date—The time and date the email is sent.

라우팅 정보를 제공하고 메시지 내용을 설명하는 많은 추가 헤더 필드가 있습니다. 보통의 경우 이메일 클라이언트는 이러한 필드를 사용자에게 표시하지 않습니다. Amazon SES에서 사용 가능한 헤더 필드의 전체 목록은 Header fields (p. 484) 단원을 참조하십시오. Amazon SES를 사용할 때 특히 "From," "Reply-To," 및"Return-Path" 헤더 필드의 차이를 이해해야 합니다. 앞서 언급한 대로, "From" 주소는 메시지 발신자의 이메일 주소이고, "Reply-To" 및 "Return-Path"의 정의는 다음과 같습니다.

• Reply-To—The email address to which replies will be sent. By default, replies are sent to the originalsender's email address.

• Return-Path—The email address to which message bounces and complaints should be sent. "Return-Path" is sometimes called "envelope from," "envelope sender," or "MAIL FROM."

Note

When you use Amazon SES, we recommend that you always set the "Return-Path" parameterso that you can be aware of bounces and take corrective action if they occur.

반송된 메시지를 의도된 수신자와 간편하게 매칭하려면 VERP(Variable Envelope Return Path)를 사용할 수있습니다. VERP에서는 각 수신자별로 다른 "Return-Path"를 설정합니다. 따라서 메시지가 반송될 경우 반송메일 메시지를 열고 파싱할 필요 없이 자동으로 어느 수신자로부터 반송되었는지 알 수 있습니다.

Email body이메일 본문은 메시지의 텍스트를 포함합니다. 본문은 다음 형식으로 전송할 수 있습니다.

• HTML—If the recipient's email client can interpret HTML, the body can include formatted text andhyperlinks

• Plain text—If the recipient's email client is text-based, the body must not contain any nonprintablecharacters.

14

Page 23: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Email format and Amazon SES

• Both HTML and plain text—When you use both formats to send the same content in a single message,the recipient's email client decides which to display, based upon its capabilities.

다수의 수신자에게 이메일 메시지를 전송하는 경우 HTML 및 텍스트 모두 형식으로 이메일을 전송하는 것이나을 수 있습니다. HTML 지원 이메일 클라이언트를 사용하는 수신자라면 메시지에서 포함된 하이퍼링크를직접 클릭할 수 있습니다. 텍스트 기반 이메일 클라이언트를 사용하는 수신자를 위해서는 URL을 복사하여웹 브라우저를 사용하여 열 수 있도록 URL을 포함시켜야 합니다.

Email information you need to provide to Amazon SESAmazon SES에서 이메일을 전송할 때 제공해야 하는 이메일 정보는 Amazon SES를 호출하는 방식에 따라달라집니다. 사용자는 최소한의 정보만 제공하면 Amazon SES가 대신하여 형식 설정을 수행합니다. 또는,첨부 파일 전송과 같은 고급 작업을 수행하려면 직접 원시 메시지를 제공할 수 있습니다. 다음 단원에서는Amazon SES API, Amazon SES SMTP 인터페이스 또는 Amazon SES 콘솔을 사용하여 이메일을 전송할 때무엇이 필요한지 알아봅니다.

Amazon SES API

직접 Amazon SES API를 호출하는 경우 SendEmail 또는 SendRawEmail API를 호출할 수 있습니다. 사용자가 제공해야 하는 정보는 어느 API를 호출하는가에 따라 다릅니다.

• The SendEmail API requires you to provide only a source address, destination address, messagesubject, and a message body. You can optionally provide "Reply-To" addresses. When you call thisAPI, Amazon SES automatically assembles a properly formatted multi-part Multipurpose Internet MailExtensions (MIME) email message optimized for display by email client software. For more information,see Sending formatted email using the Amazon SES API (p. 106).

• The SendRawEmail API provides you the flexibility to format and send your own raw email message byspecifying headers, MIME parts, and content types. SendRawEmail is typically used by advanced users.You need to provide the body of the message and all header fields that are specified as required in theInternet Message Format specification (RFC 5322). For more information, see Sending raw email usingthe Amazon SES API (p. 106).

AWS SDK를 사용하여 Amazon SES API를 호출하는 경우 해당 함수(예: Java의 SendEmail 및SendRawEmail)에 위에 나열된 정보를 제공합니다.

Amazon SES API를 사용한 이메일 전송에 대한 자세한 내용은 Amazon SES API를 사용하여 이메일 보내기 (p. 105) 단원을 참조하십시오.

Amazon SES SMTP interface

SMTP 인터페이스를 통해 Amazon SES에 액세스하는 경우 SMTP 클라이언트 애플리케이션이 메시지를 수집합니다. 따라서 제공해야 할 정보는 어떤 애플리케이션을 사용하는가에 따라 달라집니다. 클라이언트와 서버 간의 SMTP 교환에는 최소한 원본 주소, 대상 주소 및 메시지 데이터가 필요합니다. SMTP 인터페이스를사용 중이고 피드백 전달이 활성화된 상태라면 반송 메일, 불만 제기 및 전송 알림이 "MAIL FROM" 주소로보내집니다. 사용자가 지정한 "Reply-To" 주소는 사용되지 않습니다.

Amazon SES SMTP 인터페이스를 사용한 이메일 전송에 대한 자세한 내용은 Using the Amazon SESSMTP interface to send email (p. 83) 단원을 참조하십시오.

Amazon SES console

Amazon SES 콘솔을 사용하여 이메일을 전송하는 경우 제공해야 할 정보는 서식 지정된 이메일 또는 원시이메일을 전송하는지에 따라 달라집니다.

• To send a formatted email, you need to provide a source address, a destination address, a messagesubject, and a message body. Amazon SES automatically assembles a properly formatted multi-part

15

Page 24: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Types of credentials

MIME email message optimized for display by email client software. You can also specify a reply-to and areturn path field.

• To send a raw email, you provide the source address, a destination address, and the message content,which must contain the body of the message and all header fields that are specified as required in theInternet Message Format specification (RFC 5322).

Types of Amazon SES credentialsAmazon Simple Email Service(Amazon SES)와 상호 작용하려면 보안 자격 증명을 사용하여 본인을 확인하고 Amazon SES와 상호 작용할 권한이 있는지 확인합니다. 자격 증명에는 여러 유형이 있으며, 사용하는 자격 증명은 수행할 작업에 따라 다릅니다. 예를 들어, Amazon SES API를 사용하여 이메일을 보낼 때는 AWS액세스 키를 사용하고, Amazon SES SMTP 인터페이스를 사용하여 이메일을 보낼 때는 SMTP 자격 증명을사용합니다.

다음 표에 수행하는 작업에 따라 Amazon SES에서 사용할 수 있는 자격 증명 유형이 나와 있습니다.

액세스할 대상 사용할 자격 증명 자격 증명의 구성 요소

자격 증명을 가져오는 방법

Amazon SES API:

(Amazon SES API에 직접 액세스하거나 AWS SDK,AWS CommandLine Interface 또는Windows PowerShell용 AWS 도구를 통해간접적으로 액세스할수 있습니다.)

AWS 액세스 키 액세스 키 ID 및 보안액세스 키

참조 액세스 키 in the AWSGeneral Reference.

Note

보안 모범 사례에서는 AWS 계정 액세스 키 대신 AWSIdentity and AccessManagement(IAM) 사용자 액세스 키를 사용합니다. AWS 계정 자격 증명은 모든 AWS 리소스에대한 모든 액세스를 부여하므로 AWS 계정 자격 증명은 안전한 위치에 저장하고 대신 AWS와의 일상적인 상호 작용에는 IAM 사용자 자격 증명을 사용해야 합니다.자세한 내용은 루트 계정자격 증명 대. IAM 사용자 자격 증명 in the AWSGeneral Reference.

Amazon SES SMTP인터페이스

SMTP 자격 증명 사용자 이름 및 암호 Obtaining your Amazon SESSMTP credentials (p. 84)을(를) 참조하십시오.

Note

Amazon SES SMTP자격 증명은 AWS 액세스 키 및 IAM 사용자액세스 키와 다르지만Amazon SES SMTP 자격 증명은 사실상 IAM 자

16

Page 25: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Getting started

액세스할 대상 사용할 자격 증명 자격 증명의 구성 요소

자격 증명을 가져오는 방법

격 증명의 일종입니다.IAM 사용자는 AmazonSES SMTP 자격 증명을 생성할 수 있지만 루트 계정 소유자는 IAM사용자의 정책이 이들에게 "iam:ListUsers","iam:CreateUser","iam:CreateAccessKey"및 "iam:PutUserPolicy"등의 IAM 작업에 액세스할 권한을 부여하는지 확인해야 합니다.

Amazon SES 콘솔 IAM 사용자 이름과 암호

-또는-

이메일 주소와 암호

IAM 사용자 이름과 암호

-또는-

이메일 주소와 암호

참조 IAM 사용자 이름 및 암호and 이메일 주소 및 암호 of theAWS General Reference.

Note

보안 모범 사례에서는 이메일 주소와 암호 대신IAM 사용자 이름과 암호를 사용합니다. 이메일 주소와 암호 조합은AWS 계정을 위한 것이므로 AWS와의 일상적인상호 작용에 사용하지 말고 안전한 위치에 저장해야 합니다. 자세한 내용은 루트 계정 자격 증명대. IAM 사용자 자격 증명 in the AWS GeneralReference.

다른 유형의 AWS 보안 자격 증명(SMTP 자격 증명 제외, Amazon SES참조) AWS 보안 자격 증명 in theAWS General Reference.

Getting started sending email with Amazon SES이 시작 자습서는 Amazon Simple Email Service(Amazon SES)를 안내하고 이메일을 전송하는 단계별 지침을 제공합니다. 먼저 Amazon SES를 시작하기 전에 (p. 18)의 정보를 검토합니다. 그리고 다음 방법 중 하나로 이메일을 전송합니다.

Using the Amazon SES console최소 설정으로 Amazon SES를 통해 테스트 이메일을 전송하려면 이 방법을 사용합니다. 프로덕션 이메일 전송 캠페인을 시작할 준비가 되면 다른 전송 방법 중 하나를 사용한 후 주로 Amazon SES 콘솔을 통해 전송작업을 모니터링할 수 있습니다.

이 자습서를 시작하려면 Send an email using the Amazon SES console (p. 18)으로 이동합니다.

17

Page 26: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using Simple Mail Transfer Protocol (SMTP)

Using Simple Mail Transfer Protocol (SMTP)다음과 같이 프로그래밍을 사용하거나 사용하지 않고 Amazon SES SMTP 인터페이스를 통해 이메일을 전송하려면 이 방법을 사용합니다.

• Enable an application to send email through Amazon SES by using a programming language thatsupports SMTP. Examples are provided in C#, Java, and PHP. To start this tutorial, go to Send an emailby accessing the Amazon SES SMTP interface programmatically (p. 20).

• Set up your mail server to forward mail to Amazon SES, or configure your email client or SMTP-enabledsoftware package to send email through Amazon SES. Examples are provided for Postfix, Sendmail, andExim mail servers. To start this tutorial, go to Configuring Your Existing Email Server or SMTP-EnabledApplication to Send Email Through Amazon SES (p. 29).

두 SMTP 전송 방법에 대한 기본 정보는 Send an email through Amazon SES using SMTP (p. 19) 단원을참조하십시오.

Using an AWS SDK기본 Amazon SES 쿼리 인터페이스의 세부 정보를 처리하는 라이브러리를 사용하여 Amazon SES API를 호출하려면 이 방법을 사용합니다. 예제는 C#, Java PHP, Ruby 및 Python으로 제공됩니다. 이 자습서를 시작하려면 Send an email through Amazon SES using an AWS SDK (p. 29)으로 이동합니다.

Amazon SES를 시작하기 전에시작하기 전에 Amazon SES를 설정해야 합니다. Amazon SES 콘솔, SMTP 인터페이스 또는 Amazon SESAPI 중 어느 방법을 사용해 이메일을 전송하든 다음 절차를 수행해야 합니다.

• AWS 가입—Amazon SES 또는 다른 AWS 서비스를 사용하려면 먼저 AWS 계정을 생성해야 합니다. 자세한 내용은 Signing up for AWS (p. 45) 단원을 참조하십시오.

• 이메일 주소 또는 도메인 확인—Amazon SES를 사용하여 이메일을 전송하려면 항상 "발신" 주소를 확인하여 해당 주소를 소유하고 있음을 보여야 합니다. 샌드박스에 있는 경우 "To" 주소도 확인해야 합니다. 이메일 주소나 전체 도메인을 확인할 수 있습니다. 자세한 내용은 Verifying identities in AmazonSES (p. 46) 단원을 참조하십시오.

• 계정 세부 정보 제공— 계정 세부 정보를 편집하여 계정을 최신 상태로 유지하십시오. 또한 계정 세부 정보를 제공하면 샌드박스 에서 이동하도록 요청할 수 있습니다. 샌드박스에서 Amazon SES 사서함 시뮬레이터로만 이메일을 보내고 이메일 주소 또는 도메인을 확인할 수 있습니다. 자세한 내용은 Amazon SES 샌드박스 환경에서 나가기 (p. 69) 단원을 참조하십시오.

이 목록에는 모든 이메일 전송 방법에 필수적인 설정 작업이 나와 있습니다. 메일 전송 방법별 추가 설정작업은 해당 시작하기 섹션에서 설명합니다. 모든 설정 작업의 전체 목록을 보려면 Setting up email withAmazon SES (p. 45) 단원을 참조하십시오.

Send an email using the Amazon SES consoleAmazon SES에서 이메일을 보내는 가장 쉬운 방법은 Amazon SES 콘솔을 사용하는 것입니다. 콘솔에서는 사용자가 정보를 수동으로 입력해야 하므로 일반적으로 테스트 이메일을 보낼 때만 사용합니다. 일단Amazon SES를 사용하기 시작하면 Amazon SES SMTP 인터페이스나 API를 사용하여 이메일을 전송하는것이 좋지만 전송 활동을 모니터링하기에는 콘솔이 유용합니다.

Important

이 시작 자습서에서는 수신 여부를 확인할 수 있도록 자신에게 이메일을 발송합니다. 추가적인 실험또는 로드 테스트는 Amazon SES 메일박스 시뮬레이터를 사용하십시오. 사서함 시뮬레이터로 전송되는 이메일은 전송 할당량이나 반송 메일 및 수신 거부 발생률에 포함되지 않습니다. 자세한 정보는 Testing email sending in Amazon SES (p. 175) 단원을 참조하십시오.

18

Page 27: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using SMTP

다음 단계를 수행하기 전에 Amazon SES를 시작하기 전에 (p. 18)의 설정 지침을 검토하십시오.

Amazon SES 콘솔에서 이메일 메시지를 전송하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

Note

현재 AWS 계정에 로그인하지 않은 상태라면 로그인 페이지가 열립니다. 로그인하면 AmazonSES 콘솔로 이동합니다.

2. Amazon SES 콘솔의 왼쪽 탐색 창에 있는 자격 증명 관리 아래에서 이메일 주소를 선택하여 Verifyingemail addresses in Amazon SES (p. 46)에서 확인한 이메일 주소를 봅니다.

3. 자격 증명 목록에서 확인된 이메일 주소 옆에 있는 확인란을 선택합니다.4. [Send a Test Email]을 선택합니다.5. [Send Test Email]에서 [Email Format]을 선택합니다. 다음과 같이 두 가지 옵션이 있습니다.

• Formatted—This is the simplest option. Choose this option if you simply want to type the text of yourmessage into the Body text box. When you send the email, Amazon SES puts the text into emailformat for you.

• Raw—Choose this option if you want to send a more complex message, such as a message thatincludes HTML or an attachment. Because of this flexibility, you need to format the message, asdescribed in Sending raw email using the Amazon SES API (p. 106), yourself, and then paste theentire formatted message, including the headers, into the Body text box. You can use the followingexample, which contains HTML, to send a test email using the Raw email format. Copy and pastethis message in its entirety into the Body text box. Ensure that there is not a blank line betweenthe MIME-Version header and the Content-Type header; a blank line between these two linescauses the email to be formatted as plain text instead of HTML.

Subject: Amazon SES Raw Email TestMIME-Version: 1.0Content-Type: text/html <!DOCTYPE html><html><body><h1>This text should be large, because it is formatted as a header in HTML.</h1><p>Here is a formatted link: <a href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html">Amazon Simple Email Service 개개개 개개개</a>.</p></body></html>

6. [Send Test Email]에서 나머지 필드를 입력합니다. 여전히 Amazon SES 샌드박스 환경에 있는 경우To(수신) 필드의 주소가 확인된 이메일 주소여야 합니다. 자세한 정보는 Verifying email addresses inAmazon SES (p. 46) 단원을 참조하십시오.

7. [Send a Test Email]을 선택합니다.8. 이메일 수신 주소의 이메일 클라이언트에 로그인합니다. 보낸 메시지가 도착해 있을 것입니다.

Send an email through Amazon SES using SMTPAmazon SES SMTP 인터페이스를 사용하여 이메일을 전송하기 위해 SMTP 지원 프로그래밍 언어, 이메일서버 또는 애플리케이션을 사용할 수 있습니다. 시작하기 전에 Amazon SES를 시작하기 전에 (p. 18)의지침을 검토합니다. 또한 다음과 같은 추가 정보가 필요합니다.

• Your Amazon SES SMTP username and password, which enable you to connect to the Amazon SESSMTP endpoint. To get your Amazon SES SMTP username and password, see Obtaining your AmazonSES SMTP credentials (p. 84).

19

Page 28: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using SMTP

Important

Your SMTP credentials are different from your AWS credentials. For more information aboutcredentials, see Types of Amazon SES credentials (p. 16).

• The SMTP endpoint address. For a list of Amazon SES SMTP endpoints, see Connecting to an AmazonSES SMTP endpoint (p. 87).

• The Amazon SES SMTP interface port number, which depends on the connection method. For moreinformation, see Connecting to an Amazon SES SMTP endpoint (p. 87).

SMTP 자격 증명을 얻은 후 Amazon SES SMTP 엔드포인트에 연결하여 이메일을 전송할 수 있습니다. 이시작 자습서에서는 다음과 같은 방법을 사용해 Amazon SES SMTP 인터페이스를 통해 이메일을 보내는 방법을 소개합니다.

• Send an email by accessing the Amazon SES SMTP interface programmatically (p. 20)• Configuring Your Existing Email Server or SMTP-Enabled Application to Send Email Through Amazon

SES (p. 29)

Amazon SES SMTP 인터페이스에 대한 자세한 내용은 Using the Amazon SES SMTP interface to sendemail (p. 83) 단원을 참조하십시오.

Send an email by accessing the Amazon SES SMTP interfaceprogrammaticallySMTP 지원 프로그래밍 언어를 사용하여 Amazon SES SMTP 인터페이스에 액세스할 수 있습니다. AmazonSES SMTP 호스트 이름 및 포트 번호와 사용자의 SMTP 자격 증명을 입력한 후 프로그래밍 언어의 일반SMTP 함수를 사용하여 이메일을 전송합니다.

이 단원의 주제:• Send an email using SMTP with C# (p. 20)• Send an email using SMTP with Java (p. 23)• Send an email using SMTP with PHP (p. 26)

Send an email using SMTP with C#

다음 절차에서는 Microsoft Visual Studio를 사용하여 Amazon SES를 통해 이메일을 전송하는 C# 콘솔 애플리케이션을 생성하는 방법을 보여줍니다. 이 단원의 절차는 Visual Studio 2017에 적용되지만 C# 콘솔 애플리케이션을 생성하는 프로세스는 전체 Microsoft Visual Studio 에디션과 비슷합니다.

다음 절차를 수행하기 전에 Amazon SES를 시작하기 전에 (p. 18) 및 Send an email through AmazonSES using SMTP (p. 19)에서 설명하는 설정 작업을 완료합니다.

Important

이 시작 자습서에서는 수신 여부를 확인할 수 있도록 자신에게 이메일을 발송합니다. 추가적인 실험또는 로드 테스트는 Amazon SES 메일박스 시뮬레이터를 사용하십시오. 사서함 시뮬레이터로 전송되는 이메일은 전송 할당량이나 반송 메일 및 수신 거부 발생률에 포함되지 않습니다. 자세한 정보는 Testing email sending in Amazon SES (p. 175) 단원을 참조하십시오.

C#를 사용하여 Amazon SES SMTP 인터페이스를 통해 이메일을 전송하려면

1. 다음 단계를 수행하여 Visual Studio에서 콘솔 프로젝트를 생성합니다.

a. Microsoft Visual Studio를 엽니다.

20

Page 29: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using SMTP

b. [File] 메뉴에서 [New]와 [Project]를 차례대로 선택합니다.c. [New Project] 창에서 왼쪽 창에 있는 [Installed], [Templates], [Visual C#]를 차례대로 확장합니다.d. [Visual C#] 아래에서 [Windows Classic Desktop]을 선택합니다.e. 창의 상단에 있는 메뉴에서 다음 그림과 같이 [.NET Framework 4.5]을 선택합니다.

Note

필요하다면 이후 버전의 .NET Framework를 선택할 수도 있습니다.f. [Console App (.NET Framework)]을 선택합니다.g. [Name(이름)] 필드에 AmazonSESSample을 입력합니다.h. [OK]를 선택합니다.

2. Visual Studio 프로젝트에서 Program.cs의 전체 내용을 다음 코드로 바꿉니다.

using System;using System.Net;using System.Net.Mail;

namespace AmazonSESSample{ class Program { static void Main(string[] args) { // Replace [email protected] with your "From" address. // This address must be verified with Amazon SES. String FROM = "[email protected]"; String FROMNAME = "Sender Name";

// Replace [email protected] with a "To" address. If your account // is still in the sandbox, this address must be verified. String TO = "[email protected]";

// Replace smtp_username with your Amazon SES SMTP user name. String SMTP_USERNAME = "smtp_username";

// Replace smtp_password with your Amazon SES SMTP user name. String SMTP_PASSWORD = "smtp_password";

// (Optional) the name of a configuration set to use for this message. // If you comment out this line, you also need to remove or comment out // the "X-SES-CONFIGURATION-SET" header below. String CONFIGSET = "ConfigSet";

// If you're using Amazon SES in a region other than 개개 개개(개개개), // replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP // endpoint in the appropriate AWS Region. String HOST = "email-smtp.us-west-2.amazonaws.com";

// The port you will connect to on the Amazon SES SMTP endpoint. We // are choosing port 587 because we will use STARTTLS to encrypt

21

Page 30: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using SMTP

// the connection. int PORT = 587;

// The subject line of the email String SUBJECT = "Amazon SES test (SMTP interface accessed using C개)";

// The body of the email String BODY = "<h1>Amazon SES Test</h1>" + "<p>This email was sent through the " + "<a href='https://aws.amazon.com/ses'>Amazon SES</a> SMTP interface " + "using the .NET System.Net.Mail library.</p>";

// Create and build a new MailMessage object MailMessage message = new MailMessage(); message.IsBodyHtml = true; message.From = new MailAddress(FROM, FROMNAME); message.To.Add(new MailAddress(TO)); message.Subject = SUBJECT; message.Body = BODY; // Comment or delete the next line if you are not using a configuration set message.Headers.Add("X-SES-CONFIGURATION-SET", CONFIGSET);

using (var client = new System.Net.Mail.SmtpClient(HOST, PORT)) { // Pass SMTP credentials client.Credentials = new NetworkCredential(SMTP_USERNAME, SMTP_PASSWORD);

// Enable SSL encryption client.EnableSsl = true;

// Try to send the message. Show status in console. try { Console.WriteLine("Attempting to send email..."); client.Send(message); Console.WriteLine("Email sent!"); } catch (Exception ex) { Console.WriteLine("The email was not sent."); Console.WriteLine("Error message: " + ex.Message); } } } }}

3. Program.cs에서 다음 이메일 주소를 사용자의 값으로 바꿉니다.

Important

이메일 주소는 대/소문자를 구분합니다. 주소는 사용자가 확인한 것과 정확하게 동일해야 합니다.

[email protected]—Replace with your "From" email address. You must verify thisaddress before you run this program. For more information, see Verifying identities in AmazonSES (p. 46).

[email protected]—Replace with your "To" email address. If your account is still in thesandbox, you must verify this address before you use it. For more information, see Amazon SES 샌드박스 환경에서 나가기 (p. 69).

22

Page 31: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using SMTP

4. Program.cs에서 다음 SMTP 자격 증명을 Obtaining your Amazon SES SMTP credentials (p. 84)에서 얻은 값으로 바꿉니다.

Important

SMTP 자격 증명은 AWS 자격 증명과 다릅니다. 자격 증명에 대한 자세한 내용은 Types ofAmazon SES credentials (p. 16)을 참조하십시오.

• YOUR_SMTP_USERNAME—Replace with your SMTP username. Note that your SMTP usernamecredential is a 20-character string of letters and numbers, not an intelligible name.

• YOUR_SMTP_PASSWORD—Replace with your SMTP password.5. (선택 사항) 미국 서부(오레곤) 이외의 리전에서 Amazon SES SMTP 엔드포인트를 사용하려면 HOST 변

수 값을 사용하려는 엔드포인트로 바꿉니다. SMTP 끝점 URL 목록을 보려면 AWS 지역 Amazon SES사용 가능한 Amazon Simple Email Service (Amazon SES) in the AWS General Reference.

6. (선택 사항) 이 이메일을 전송할 때 구성 세트를 사용하려면 CONFIGSET 변수 값을 구성 세트의 이름으로 바꿉니다. 구성 세트에 대한 자세한 내용은 Using Amazon SES configuration sets (p. 235) 단원을참조하십시오.

7. Program.cs 저장8. 프로젝트를 빌드하려면 [Build]를 선택한 후 [Build Solution]을 선택합니다.9. 프로그램을 실행하려면 [Debug]를 선택한 후 [Start Debugging]을 선택합니다.10. 출력 결과를 검토합니다. 이메일이 성공적으로 전송되었으면 콘솔에 "Email sent!"가 표시됩니다. 그

렇지 않으면 오류 메시지가 표시됩니다.11. 수신자 주소의 이메일 클라이언트에 로그인합니다. 보낸 메시지가 도착해 있을 것입니다.

Send an email using SMTP with Java

이 예제에서는 SMTP 인터페이스를 사용하여 Amazon SES를 통해 이메일을 보내기 위해 Eclipse IDE 및JavaMail API를 사용합니다.

다음 절차를 수행하기 전에 Amazon SES를 시작하기 전에 (p. 18) 및 Send an email through AmazonSES using SMTP (p. 19)에서 설명하는 설정 작업을 완료합니다.

Important

이 시작 자습서에서는 수신 여부를 확인할 수 있도록 자신에게 이메일을 발송합니다. 추가적인 실험또는 로드 테스트는 Amazon SES 메일박스 시뮬레이터를 사용하십시오. 사서함 시뮬레이터로 전송되는 이메일은 전송 할당량이나 반송 메일 및 수신 거부 발생률에 포함되지 않습니다. 자세한 정보는 Testing email sending in Amazon SES (p. 175) 단원을 참조하십시오.

Java를 사용하여 Amazon SES SMTP 인터페이스를 통해 이메일을 전송하려면

1. 웹 브라우저에서 JavaMail Github 페이지로 이동합니다. [Downloads] 아래에서 [javax.mail.jar]를 선택하여 최신 버전의 JavaMail을 다운로드합니다.

Important

이 자습서에서는 JavaMail 버전 1.5 이상이 필요합니다. 이 절차는 JavaMail 버전 1.6.1을 사용하여 테스트되었습니다.

2. 다음 단계를 수행하여 Eclipse에서 프로젝트를 만듭니다.

a. Eclipse를 시작합니다.b. Eclipse에서, [File], [New], [Java Project]를 차례로 선택합니다.c. [Create a Java Project] 대화 상자에서, 프로젝트 이름을 입력하고 [Next]를 선택합니다.d. [Java Settings] 대화 상자에서, [Libraries] 탭을 선택합니다.e. [Add External JARs]를 선택합니다.

23

Page 32: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using SMTP

f. JavaMail을 다운로드한 폴더로 이동합니다. javax.mail.jar 파일과 [Open]을 차례대로 선택합니다.

g. [Java Settings] 대화 상자에서, [Finish]를 선택합니다.3. Eclipse에서, [Package Explorer] 창에서 프로젝트를 확장합니다.4. 프로젝트에서 [src] 디렉터리를 마우스 오른쪽 버튼으로 클릭한 후 [New], [Class]를 차례로 선택합니다.5. [New Java Class] 대화 상자에서, [Name] 필드에 AmazonSESSample을 입력한 후 [Finish]를 선택합니

다.6. AmazonSESSample.java의 전체 내용을 다음 코드로 바꿉니다.

import java.util.Properties;

import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;

public class AmazonSESSample {

// Replace [email protected] with your "From" address. // This address must be verified. static final String FROM = "[email protected]"; static final String FROMNAME = "Sender Name"; // Replace [email protected] with a "To" address. If your account // is still in the sandbox, this address must be verified. static final String TO = "[email protected]"; // Replace smtp_username with your Amazon SES SMTP user name. static final String SMTP_USERNAME = "smtp_username"; // Replace smtp_password with your Amazon SES SMTP password. static final String SMTP_PASSWORD = "smtp_password"; // The name of the Configuration Set to use for this message. // If you comment out or remove this variable, you will also need to // comment out or remove the header below. static final String CONFIGSET = "ConfigSet"; // Amazon SES SMTP host name. This example uses the 개개 개개(개개개) region. // See https://docs.aws.amazon.com/ses/latest/DeveloperGuide/regions.html개region-endpoints // for more information. static final String HOST = "email-smtp.us-west-2.amazonaws.com"; // The port you will connect to on the Amazon SES SMTP endpoint. static final int PORT = 587; static final String SUBJECT = "Amazon SES test (SMTP interface accessed using Java)"; static final String BODY = String.join( System.getProperty("line.separator"), "<h1>Amazon SES SMTP Email Test</h1>", "<p>This email was sent with Amazon SES using the ", "<a href='https://github.com/javaee/javamail'>Javamail Package</a>", " for <a href='https://www.java.com'>Java</a>." );

public static void main(String[] args) throws Exception {

// Create a Properties object to contain connection configuration information.

24

Page 33: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using SMTP

Properties props = System.getProperties(); props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.port", PORT); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.auth", "true");

// Create a Session object to represent a mail session with the specified properties. Session session = Session.getDefaultInstance(props);

// Create a message with the specified information. MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(FROM,FROMNAME)); msg.setRecipient(Message.RecipientType.TO, new InternetAddress(TO)); msg.setSubject(SUBJECT); msg.setContent(BODY,"text/html"); // Add a configuration set header. Comment or delete the // next line if you are not using a configuration set msg.setHeader("X-SES-CONFIGURATION-SET", CONFIGSET); // Create a transport. Transport transport = session.getTransport(); // Send the message. try { System.out.println("Sending..."); // Connect to Amazon SES using the SMTP username and password you specified above. transport.connect(HOST, SMTP_USERNAME, SMTP_PASSWORD); // Send the email. transport.sendMessage(msg, msg.getAllRecipients()); System.out.println("Email sent!"); } catch (Exception ex) { System.out.println("The email was not sent."); System.out.println("Error message: " + ex.getMessage()); } finally { // Close and terminate the connection. transport.close(); } }}

7. AmazonSESSample.java에서 다음 이메일 주소를 사용자의 값으로 바꿉니다.

Important

이메일 주소는 대/소문자를 구분합니다. 주소는 사용자가 확인한 것과 정확하게 동일해야 합니다.

[email protected]—Replace with your "From" email address. You must verify thisaddress before you run this program. For more information, see Verifying identities in AmazonSES (p. 46).

[email protected]—Replace with your "To" email address. If your account is still in thesandbox, you must verify this address before you use it. For more information, see Amazon SES 샌드박스 환경에서 나가기 (p. 69).

8. AmazonSESSample.java에서 다음 SMTP 자격 증명을 Obtaining your Amazon SES SMTPcredentials (p. 84)에서 얻은 값으로 바꿉니다.

25

Page 34: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using SMTP

Important

SMTP 자격 증명은 AWS 자격 증명과 다릅니다. 자격 증명에 대한 자세한 내용은 Types ofAmazon SES credentials (p. 16)을 참조하십시오.

• YOUR_SMTP_USERNAME—Replace with your SMTP username credential. Note that your SMTPusername credential is a 20-character string of letters and numbers, not an intelligible name.

• YOUR_SMTP_PASSWORD—Replace with your SMTP password.9. (선택 사항) 미국 서부(오레곤) 이외의 AWS 리전에서 Amazon SES SMTP 엔드포인트를 사용하려면

HOST 변수 값을 사용하려는 엔드포인트로 변경하십시오. 지역 목록을 보려면 Amazon SES 사용 가능한 Amazon Simple Email Service (Amazon SES) in the AWS General Reference.

10. (선택 사항) 이 이메일을 전송할 때 구성 세트를 사용하려면 CONFIGSET 변수 값을 구성 세트의 이름으로 바꿉니다. 구성 세트에 대한 자세한 내용은 Using Amazon SES configuration sets (p. 235) 단원을참조하십시오.

11. AmazonSESSample.java 저장12. 프로젝트를 빌드하려면 [Project]를 선택한 후 [Build Project]를 선택합니다. (이 옵션이 비활성화되어 있

는 경우 자동 빌딩이 활성화된 것일 수 있습니다.)13. 프로그램을 시작하고 이메일을 전송하려면 [Run]을 선택하고 다시 [Run]을 선택합니다.14. 출력 결과를 검토합니다. 이메일이 성공적으로 전송되었으면 콘솔에 "Email sent!"가 표시됩니다. 그

렇지 않으면 오류 메시지가 표시됩니다.15. 수신자 주소의 이메일 클라이언트에 로그인합니다. 보낸 메시지가 도착해 있을 것입니다.

Send an email using SMTP with PHP

이 예제에서는 SMTP 인터페이스를 사용하여 Amazon SES를 통해 이메일을 전송하기 위해 PHPMailer 패키지를 사용합니다.

Important

이 자습서에서는 수신 여부를 확인할 수 있도록 자신에게 이메일을 발송합니다. 추가적인 실험 또는 로드 테스트는 Amazon SES 메일박스 시뮬레이터를 사용하십시오. 사서함 시뮬레이터로 전송되는 이메일은 전송 할당량이나 반송 메일 및 수신 거부 발생률에 포함되지 않습니다. 자세한 정보는 Testing email sending in Amazon SES (p. 175) 단원을 참조하십시오.

Prerequisites

시작하기 전에 다음 작업을 수행하십시오.

• Verify your email address with Amazon SES— Before you can send an email with Amazon SES,you must verify that you own the sender's email address. If your account is still in the Amazon SESsandbox, you must also verify the recipient email address. The easiest way to verify email addressesis by using the Amazon SES console. For more information, see Verifying email addresses in AmazonSES (p. 46).

• Get your SMTP credentials—You need an Amazon SES SMTP user name and password to access theAmazon SES SMTP interface. Your SMTP credentials are not the same as your AWS credentials. Youcan find your SMTP credentials by going to the SMTP Settings page of the Amazon SES console. Formore information about SMTP credentials, see Obtaining your Amazon SES SMTP credentials (p. 84).

• Install PHP—PHP is available at http://php.net/downloads.php. After you install PHP, add the path toPHP in your environment variables so that you can run PHP from any command prompt.

• Install the Composer dependency manager—The Composer dependency manager will enable youto download and install the PHPMailer class and its dependencies. To install Composer, follow theinstallation instructions at https://getcomposer.org/download.

• Install the PHPMailer class— After you install Composer, run the following command to installPHPMailer:

26

Page 35: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using SMTP

path/to/composer require phpmailer/phpmailer

In the preceding command, replace path/to/ with the path where you installed Composer.

Procedure

다음 절차에서는 PHP를 사용하여 Amazon SES를 통해 이메일을 보내는 방법을 보여줍니다.

PHP를 사용하여 Amazon SES SMTP 인터페이스를 통해 이메일을 전송하려면

1. 이름의 파일 만들기 amazon-ses-smtp-sample.php. 텍스트 편집기로 파일을 열고 다음 코드에 붙여넣습니다.

<?php

// Import PHPMailer classes into the global namespace// These must be at the top of your script, not inside a functionuse PHPMailer\PHPMailer\PHPMailer;use PHPMailer\PHPMailer\Exception;

// If necessary, modify the path in the require statement below to refer to the// location of your Composer autoload.php file.require 'vendor/autoload.php';

// Replace [email protected] with your "From" address.// This address must be verified with Amazon SES.$sender = '[email protected]';$senderName = 'Sender Name';

// Replace [email protected] with a "To" address. If your account// is still in the sandbox, this address must be verified.$recipient = '[email protected]';

// Replace smtp_username with your Amazon SES SMTP user name.$usernameSmtp = 'smtp_username';

// Replace smtp_password with your Amazon SES SMTP password.$passwordSmtp = 'smtp_password';

// Specify a configuration set. If you do not want to use a configuration// set, comment or remove the next line.$configurationSet = 'ConfigSet';

// If you're using Amazon SES in a region other than US West (Oregon),// replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP// endpoint in the appropriate region.$host = 'email-smtp.us-west-2.amazonaws.com';$port = 587;

// The subject line of the email$subject = 'Amazon SES test (SMTP interface accessed using PHP)';

// The plain-text body of the email$bodyText = "Email Test\r\nThis email was sent through the Amazon SES SMTP interface using the PHPMailer class.";

// The HTML-formatted body of the email$bodyHtml = '<h1>Email Test</h1> <p>This email was sent through the <a href="https://aws.amazon.com/ses">Amazon SES</a> SMTP interface using the <a href="https://github.com/PHPMailer/PHPMailer">

27

Page 36: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using SMTP

PHPMailer</a> class.</p>';

$mail = new PHPMailer(true);

try { // Specify the SMTP settings. $mail->isSMTP(); $mail->setFrom($sender, $senderName); $mail->Username = $usernameSmtp; $mail->Password = $passwordSmtp; $mail->Host = $host; $mail->Port = $port; $mail->SMTPAuth = true; $mail->SMTPSecure = 'tls'; $mail->addCustomHeader('X-SES-CONFIGURATION-SET', $configurationSet);

// Specify the message recipients. $mail->addAddress($recipient); // You can also add CC, BCC, and additional To recipients here.

// Specify the content of the message. $mail->isHTML(true); $mail->Subject = $subject; $mail->Body = $bodyHtml; $mail->AltBody = $bodyText; $mail->Send(); echo "Email sent!" , PHP_EOL;} catch (phpmailerException $e) { echo "An error occurred. {$e->errorMessage()}", PHP_EOL; //Catch errors from PHPMailer.} catch (Exception $e) { echo "Email not sent. {$mail->ErrorInfo}", PHP_EOL; //Catch errors from Amazon SES.}

?>

2. amazon-ses-smtp-sample.php에서 다음 값을 사용자의 값으로 대체합니다.

[email protected]—Replace with an email address that you have verified with Amazon SES.For more information, see Verifying identities (p. 46). Email addresses in Amazon SES are case-sensitive. Make sure that the address you enter is exactly the same as the one you verified.

[email protected]—Replace with the address of the recipient. If your account is still in thesandbox, you must verify this address before you use it. For more information, see Amazon SES 샌드박스 환경에서 나가기 (p. 69). Make sure that the address you enter is exactly the same as theone you verified.

• smtp_username—Replace with your SMTP user name credential, which you obtained from theSMTP Settings page of the Amazon SES console. This is not the same as your AWS access key ID.Note that your SMTP user name credential is a 20-character string of letters and numbers, not anintelligible name.

• smtp_password—Replace with your SMTP password, which you obtained from the SMTP Settingspage of the Amazon SES console. This is not the same as your AWS secret access key.

• (Optional) ConfigSet—If you want to use a configuration set when sending this email, replace thisvalue with the name of the configuration set. For more information about configuration sets, seeUsing Amazon SES configuration sets (p. 235).

• (Optional) email-smtp.us-west-2.amazonaws.com—If you want to use an Amazon SESSMTP endpoint in a Region other than 미국 서부(오레곤), replace this with the Amazon SES SMTPendpoint in the Region you want to use. For a list of SMTP endpoint URLs for the AWS Regionswhere Amazon SES is available, see Amazon Simple Email Service (Amazon SES) in the AWSGeneral Reference.

28

Page 37: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using an AWS SDK

3. amazon-ses-smtp-sample.php 저장4. 프로그램을 실행하려면 amazon-ses-smtp-sample.php와 동일한 디렉터리에서 명령 프롬프트를 열

고 php amazon-ses-smtp-sample.php를 입력합니다.5. 출력 결과를 검토합니다. 이메일이 성공적으로 전송되었으면 콘솔에 "Email sent!"가 표시됩니다. 그

렇지 않으면 오류 메시지가 표시됩니다.6. 수신자 주소의 이메일 클라이언트에 로그인합니다. 보낸 메시지가 도착해 있을 것입니다.

Configuring Your Existing Email Server or SMTP-EnabledApplication to Send Email Through Amazon SES프로그래밍 없이 Amazon SES를 통해 메시지를 전송하기 위해 메일 서버, 이메일 클라이언트 또는 이메일발송 소프트웨어 패키지를 구성할 수 있습니다.

먼저 Send an email through Amazon SES using SMTP (p. 19) 단원을 읽습니다. 그런 다음 Amazon SES로 메일을 전달하도록 메일 서버를 구성하는 방법을 보여주는 다음 주제 중 하나를 검토합니다.

• Configuring Postfix (p. 91)• Integrating Amazon SES with Sendmail (p. 94)• Integrating Amazon SES with Exim (p. 98)

Send an email through Amazon SES using an AWSSDKAmazon SES API를 사용하여 이메일을 전송하기 위해 곧바로 쿼리 인터페이스를 사용하거나 AWS SDK를사용하여 HTTP 요청 및 응답을 수집하고 구문 분석하는 등의 하위 수준 세부 정보를 처리할 수 있습니다.

AWS SDK를 사용하여 이메일을 전송하기 전에 Amazon SES를 시작하기 전에 (p. 18)의 지침을 검토합니다. 그 밖에도 이번 단원에서 자습서를 마치려면 다음 사항이 준비되어야 합니다.

• Download an AWS SDK—Download and install an AWS SDK. For more information, see AWS SDK 다운로드 (p. 63).

• Get your AWS credentials—To access Amazon SES programmatically, you need your AWS access keys.For more information, see Getting your AWS access keys (p. 63).

• Create a shared credentials file—Follow the procedures in Create a shared credentials file (p. 29) tocreate the shared credentials file.

위에서 언급한 사전 조건을 모두 충족하였다면 Send an email through Amazon SES programmatically usingan AWS SDK (p. 30) 단원을 참조하십시오.

Create a shared credentials file다음은 홈 디렉터리에서 공유 자격 증명 파일을 생성하는 방법에 대한 절차입니다. SDK 샘플 코드가 올바로실행되려면 이 파일을 반드시 생성해야 합니다.

1. 텍스트 편집기에서 새로운 파일을 생성합니다. 생성된 파일에 다음 코드를 붙여넣습니다.

[default]aws_access_key_id = YOUR_AWS_ACCESS_KEY_IDaws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY

2. 위에서 생성한 텍스트 파일에서 YOUR_AWS_ACCESS_KEY를 고유의 AWS 액세스 키 ID로,YOUR_AWS_SECRET_ACCESS_KEY를 고유의 AWS 보안 액세스 키로 대체합니다.

29

Page 38: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using an AWS SDK

3. 파일을 저장합니다. 다음 표는 운영 체제에 따라 올바른 파일 위치 및 이름을 나타낸 것입니다.

운영 체제 저장되는 파일 이름

Windows C:\Users\<yourUserName>\.aws\credentials

Linux, macOS, or Unix ~/.aws/credentials

Important

자격 증명 파일을 저장할 때 파일 확장명을 포함시키지 마십시오.

Send an email through Amazon SES programmatically using anAWS SDK귀하는 AWS 다음을 통해 이메일을 보내는 SDK Amazon SES. AWS 여러 프로그래밍 언어에 사용할 수 있습니다. 자세한 내용은 Amazon Web Services용 도구를 참조하십시오.

Note

Send an email through Amazon SES using an AWS SDK (p. 29)에 나열된 사전 조건을 아직 충족하지 않았다면 이번 단원의 자습서를 마치기 전에 사전 조건을 먼저 충족하십시오.

Amazon SES code examples (p. 391)에서 더 많은 코드 예제를 볼 수 있습니다.

이 단원의 주제:• Send an email using the .NET용 AWS SDK (p. 30)• Send an email using the AWS SDK for Java (p. 33)• Send an email using the PHP용 AWS SDK (p. 36)• Send an email using the Ruby용 AWS SDK (p. 39)• Send an email using the AWS SDK for Python (Boto) (p. 41)

Send an email using the .NET용 AWS SDK

다음 절차에서는 Visual Studio 및 .NET용 AWS SDK를 사용하여 Amazon SES를 통해 이메일을 보내는 방법을 보여줍니다.

이 솔루션은 다음 구성 요소를 사용하여 테스트되었습니다.

• Microsoft Visual Studio Community 2017, version 15.4.0.• Microsoft .NET Framework version 4.6.1.• The AWSSDK.Core package (version 3.3.19), installed using NuGet.• The AWSSDK.SimpleEmail package (version 3.3.6.1), installed using NuGet.

Note

이 시작 자습서에서는 수신 여부를 확인할 수 있도록 자신에게 이메일을 발송합니다. 추가적인 실험또는 로드 테스트는 Amazon SES 메일박스 시뮬레이터를 사용하십시오. 사서함 시뮬레이터로 전송되는 이메일은 전송 할당량이나 반송 메일 및 수신 거부 발생률에 포함되지 않습니다. 자세한 정보는 Testing email sending in Amazon SES (p. 175) 단원을 참조하십시오.

30

Page 39: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using an AWS SDK

Prerequisites

시작하기 전에 다음 작업을 수행하십시오.

• Verify your email address with Amazon SES—Before you can send an email with Amazon SES,you must verify that you own the sender's email address. If your account is still in the Amazon SESsandbox, you must also verify the recipient email address. The easiest way to verify email addressesis by using the Amazon SES console. For more information, see Verifying email addresses in AmazonSES (p. 46).

• Get your AWS credentials—You need an AWS access key ID and AWS secret access key to accessAmazon SES using an SDK. You can find your credentials by using the Security Credentials pageof the AWS Management 콘솔. For more information about credentials, see Types of Amazon SEScredentials (p. 16).

• Install Visual Studio—Visual Studio is available at https://www.visualstudio.com/.• Create a shared credentials file—For the sample code in this section to function properly, you must

create a shared credentials file. For more information, see Create a shared credentials file (p. 29).

Procedure

다음 절차에서는 .NET용 AWS SDK를 사용하여 Amazon SES를 통해 이메일을 보내는 방법을 보여줍니다.

.NET용 AWS SDK를 사용하여 이메일을 전송하려면

1. 다음 단계에 따라 새 프로젝트를 만듭니다.

a. Start Visual Studio.b. [File] 메뉴에서 [New]와 [Project]를 차례대로 선택합니다.c. [New Project] 창의 왼쪽 패널에서 [Installed]를 확장한 후 [Visual C#]을 확장합니다.d. 오른쪽 패널에서 [Console App (.NET Framework)]을 선택합니다.e. 이름에 AmazonSESSample을 입력한 다음 확인을 선택합니다.

2. NuGet을 사용해 다음 단계를 완료하여 솔루션에 Amazon SES 패키지를 포함시킵니다.

a. [Solution Explorer] 창에서 프로젝트를 마우스 오른쪽 버튼으로 클릭한 다음 [Manage NuGetPackages]를 선택합니다.

b. On 너겟: 놀라운 탭, 선택 찾아보기.c. 검색 상자에 AWSSDK.SimpleEmail를 입력합니다.d. [AWSSDK.SimpleEmail] 패키지를 선택한 다음 [Install]을 선택합니다.e. [Preview Changes] 창에서 [OK]를 선택합니다.

3. [Program.cs] 탭에서 다음 코드를 붙여넣습니다.

using Amazon;using System;using System.Collections.Generic;using Amazon.SimpleEmail;using Amazon.SimpleEmail.Model;

namespace AmazonSESSample { class Program { // Replace [email protected] with your "From" address. // This address must be verified with Amazon SES. static readonly string senderAddress = "[email protected]";

// Replace [email protected] with a "To" address. If your account

31

Page 40: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using an AWS SDK

// is still in the sandbox, this address must be verified. static readonly string receiverAddress = "[email protected]";

// The configuration set to use for this email. If you do not want to use a // configuration set, comment out the following property and the // ConfigurationSetName = configSet argument below. static readonly string configSet = "ConfigSet";

// The subject line for the email. static readonly string subject = "Amazon SES test (.NET개 AWS SDK)";

// The email body for recipients with non-HTML email clients. static readonly string textBody = "Amazon SES Test (.NET)\r\n" + "This email was sent through Amazon SES " + "using the .NET개 AWS SDK."; // The HTML body of the email. static readonly string htmlBody = @"<html><head></head><body> <h1>Amazon SES Test (.NET개 AWS SDK)</h1> <p>This email was sent with <a href='https://aws.amazon.com/ses/'>Amazon SES</a> using the <a href='https://aws.amazon.com/sdk-for-net/'> .NET개 AWS SDK</a>.</p></body></html>";

static void Main(string[] args) { // Replace USWest2 with the AWS Region you're using for Amazon SES. // Acceptable values are EUWest1, USEast1, and USWest2. using (var client = new AmazonSimpleEmailServiceClient(RegionEndpoint.USWest2)) { var sendRequest = new SendEmailRequest { Source = senderAddress, Destination = new Destination { ToAddresses = new List<string> { receiverAddress } }, Message = new Message { Subject = new Content(subject), Body = new Body { Html = new Content { Charset = "UTF-8", Data = htmlBody }, Text = new Content { Charset = "UTF-8", Data = textBody } } }, // If you are not using a configuration set, comment // or remove the following line ConfigurationSetName = configSet }; try {

32

Page 41: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using an AWS SDK

Console.WriteLine("Sending email using Amazon SES..."); var response = client.SendEmail(sendRequest); Console.WriteLine("The email was sent successfully."); } catch (Exception ex) { Console.WriteLine("The email was not sent."); Console.WriteLine("Error message: " + ex.Message);

} }

Console.Write("Press any key to continue..."); Console.ReadKey(); } }}

4. 코드 편집기에서 다음을 수행합니다.

• Replace [email protected] with the "From:" email address. This address must be verified. Formore information, see the section called “Verifying identities” (p. 46).

• Replace [email protected] with the "To:" address. If your account is still in the sandbox,this address must also be verified.

• Replace ConfigSet with the name of the configuration set to use when sending this email.• Replace USWest2 with the name of the AWS Region endpoint you use to send email using Amazon

SES. For a list of regions where Amazon SES is available, see Amazon Simple Email Service(Amazon SES) in the AWS General Reference.

완료되면 Program.cs를 저장합니다.5. 다음 단계를 완료하여 애플리케이션을 빌드 및 실행합니다.

a. [Build] 메뉴에서 [Build Solution]을 선택합니다.b. [Debug] 메뉴에서 [Start Debugging]을 선택합니다. 콘솔 창이 나타납니다.

6. 콘솔 출력을 확인합니다. 이메일이 성공적으로 전송되었으면 콘솔에 "The email was sentsuccessfully."가 표시됩니다.

7. 이메일이 성공적으로 전송되었으면 수신자 주소의 이메일 클라이언트에 로그인합니다. 보낸 메시지가도착해 있을 것입니다.

Send an email using the AWS SDK for Java

다음 절차에서는 Eclipse IDE for Java EE Developers 및 AWS Toolkit for Eclipse를 사용하여 AWS SDK 프로젝트를 생성하고 Java 코드를 수정하여 Amazon SES를 통해 이메일을 전송하는 방법을 보여줍니다.

Important

이 시작 자습서에서는 수신 여부를 확인할 수 있도록 자신에게 이메일을 발송합니다. 추가적인 실험또는 로드 테스트는 Amazon SES 메일박스 시뮬레이터를 사용하십시오. 사서함 시뮬레이터로 전송되는 이메일은 전송 할당량이나 반송 메일 및 수신 거부 발생률에 포함되지 않습니다. 자세한 정보는 Testing email sending in Amazon SES (p. 175) 단원을 참조하십시오.

Prerequisites

시작하기 전에 다음 작업을 수행하십시오.

• Verify your email address with Amazon SES—Before you can send an email with Amazon SES,you must verify that you own the sender's email address. If your account is still in the Amazon SES

33

Page 42: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using an AWS SDK

sandbox, you must also verify the recipient email address. The easiest way to verify email addressesis by using the Amazon SES console. For more information, see Verifying email addresses in AmazonSES (p. 46).

• Get your AWS credentials—You need an AWS access key ID and AWS secret access key to accessAmazon SES using an SDK. You can find your credentials by using the Security Credentials pagein the AWS Management 콘솔. For more information about credentials, see Types of Amazon SEScredentials (p. 16).

• Install Eclipse—Eclipse is available at https://www.eclipse.org/downloads. The code in this tutorial wastested using Eclipse Neon.3 (version 4.6.3), running version 1.8 of the Java Runtime Environment.

• Install the AWS Toolkit for Eclipse—Instructions for adding the AWS Toolkit for Eclipse to your Eclipseinstallation are available at https://aws.amazon.com/eclipse. The code in this tutorial was tested usingversion 2.3.1 of the AWS Toolkit for Eclipse.

• Create a shared credentials file—For the sample code in this section to function properly, you mustcreate a shared credentials file. For more information, see Create a shared credentials file (p. 29).

Procedure

다음 절차에서는 AWS SDK for Java를 사용하여 Amazon SES를 통해 이메일을 보내는 방법을 보여줍니다.

AWS SDK for Java를 사용하여 이메일을 전송하려면

1. 다음 단계를 수행하여 Eclipse에서 AWS Java 프로젝트를 생성합니다.

a. Eclipse를 시작합니다.b. [File] 메뉴에서 [New]와 [Other]를 차례대로 선택합니다. [New] 창에서 [AWS] 폴더를 확장하여

[AWS Java Project]를 선택합니다.c. [New AWS Java Project] 대화 상자에서 다음과 같이 실행합니다.

i. [Project name]에 프로젝트 이름을 입력합니다.ii. AWS SDK for Java Samples(샘플)에서 Amazon Simple Email Service JavaMail

Sample(JavaMail 샘플)을 선택합니다.iii. 완료를 선택합니다.

2. Eclipse에서 [Package Explorer] 창에서 프로젝트를 확장합니다.3. 프로젝트 아래에서 src/main/java 폴더와 com.amazon.aws.samples 폴더를 차례대로 확장한 후

AmazonSESSample.java를 두 번 클릭합니다.4. AmazonSESSample.java의 전체 내용을 다음 코드로 바꿉니다.

package com.amazonaws.samples;

import java.io.IOException;

import com.amazonaws.regions.Regions;import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder;import com.amazonaws.services.simpleemail.model.Body;import com.amazonaws.services.simpleemail.model.Content;import com.amazonaws.services.simpleemail.model.Destination;import com.amazonaws.services.simpleemail.model.Message;import com.amazonaws.services.simpleemail.model.SendEmailRequest;

public class AmazonSESSample {

// Replace [email protected] with your "From" address. // This address must be verified with Amazon SES. static final String FROM = "[email protected]";

34

Page 43: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using an AWS SDK

// Replace [email protected] with a "To" address. If your account // is still in the sandbox, this address must be verified. static final String TO = "[email protected]";

// The configuration set to use for this email. If you do not want to use a // configuration set, comment the following variable and the // .withConfigurationSetName(CONFIGSET); argument below. static final String CONFIGSET = "ConfigSet";

// The subject line for the email. static final String SUBJECT = "Amazon SES test (AWS SDK for Java)"; // The HTML body for the email. static final String HTMLBODY = "<h1>Amazon SES test (AWS SDK for Java)</h1>" + "<p>This email was sent with <a href='https://aws.amazon.com/ses/'>" + "Amazon SES</a> using the <a href='https://aws.amazon.com/sdk-for-java/'>" + "AWS SDK for Java</a>";

// The email body for recipients with non-HTML email clients. static final String TEXTBODY = "This email was sent through Amazon SES " + "using the AWS SDK for Java.";

public static void main(String[] args) throws IOException {

try { AmazonSimpleEmailService client = AmazonSimpleEmailServiceClientBuilder.standard() // Replace US_WEST_2 with the AWS Region you're using for // Amazon SES. .withRegion(Regions.US_WEST_2).build(); SendEmailRequest request = new SendEmailRequest() .withDestination( new Destination().withToAddresses(TO)) .withMessage(new Message() .withBody(new Body() .withHtml(new Content() .withCharset("UTF-8").withData(HTMLBODY)) .withText(new Content() .withCharset("UTF-8").withData(TEXTBODY))) .withSubject(new Content() .withCharset("UTF-8").withData(SUBJECT))) .withSource(FROM) // Comment or remove the next line if you are not using a // configuration set .withConfigurationSetName(CONFIGSET); client.sendEmail(request); System.out.println("Email sent!"); } catch (Exception ex) { System.out.println("The email was not sent. Error message: " + ex.getMessage()); } }}

5. AmazonSESSample.java에서 다음 값을 사용자의 값으로 대체합니다.

Important

이메일 주소는 대/소문자를 구분합니다. 주소는 사용자가 확인한 것과 정확하게 동일해야 합니다.

[email protected]—Replace with your "From" email address. You must verify thisaddress before you run this program. For more information, see Verifying identities in AmazonSES (p. 46).

35

Page 44: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using an AWS SDK

[email protected]—Replace with your "To" email address. If your account is still in thesandbox, you must verify this address before you use it. For more information, see Amazon SES 샌드박스 환경에서 나가기 (p. 69).

• (Optional) us-west-2—If you want to use Amazon SES in a region other than 미국 서부(오레곤),replace this with the region you want to use. For a list of regions where Amazon SES is available,see Amazon Simple Email Service (Amazon SES) in the AWS General Reference.

6. AmazonSESSample.java 저장7. 프로젝트를 빌드하려면 [Project]를 선택한 후 [Build Project]를 선택합니다.

Note

이 옵션이 비활성화되어 있는 경우 자동 빌드가 활성화될 수도 있습니다. 그렇다면 이 단계를건너뜁니다.

8. 프로그램을 시작하고 이메일을 전송하려면 [Run]을 선택하고 다시 [Run]을 선택합니다.9. Eclipse의 콘솔 창에서 출력을 확인합니다. 이메일이 성공적으로 전송되었으면 콘솔에 "Email

sent!"가 표시됩니다. 그렇지 않으면 오류 메시지가 표시됩니다.10. 이메일이 성공적으로 전송되었으면 수신자 주소의 이메일 클라이언트에 로그인합니다. 보낸 메시지가

도착해 있을 것입니다.

Send an email using the PHP용 AWS SDK

이 주제에서는 PHP용 AWS SDK를 사용하여 Amazon SES를 통해 이메일을 전송하는 방법을 보여줍니다.

Important

이 자습서에서는 수신 여부를 확인할 수 있도록 자신에게 이메일을 발송합니다. 추가적인 실험 또는 로드 테스트는 Amazon SES 메일박스 시뮬레이터를 사용하십시오. 사서함 시뮬레이터로 전송되는 이메일은 전송 할당량이나 반송 메일 및 수신 거부 발생률에 포함되지 않습니다. 자세한 정보는 Testing email sending in Amazon SES (p. 175) 단원을 참조하십시오.

Prerequisites

시작하기 전에 다음 작업을 수행하십시오.

• Verify your email address with Amazon SES—Before you can send an email with Amazon SES,you must verify that you own the sender's email address. If your account is still in the Amazon SESsandbox, you must also verify the recipient email address. The easiest way to verify email addressesis by using the Amazon SES console. For more information, see Verifying email addresses in AmazonSES (p. 46).

• Get your AWS credentials—You need an AWS access key ID and AWS secret access key to accessAmazon SES using an SDK. You can find your credentials by using the Security Credentials pageof the AWS Management 콘솔. For more information about credentials, see Types of Amazon SEScredentials (p. 16).

• Install PHP—PHP is available at http://php.net/downloads.php. This tutorial requires PHP version 5.5 orhigher. After you install PHP, add the path to PHP in your environment variables so that you can run PHPfrom any command prompt. The code in this tutorial was tested using PHP 7.2.7.

• Install the PHP용 AWS SDK version 3—For download and installation instructions, see the PHP용 AWSSDK documentation. The code in this tutorial was tested using version 3.64.13 of the SDK.

• Create a shared credentials file—For the sample code in this section to function properly, you mustcreate a shared credentials file. For more information, see Create a shared credentials file (p. 29).

Procedure

다음 절차에서는 PHP용 AWS SDK를 사용하여 Amazon SES를 통해 이메일을 보내는 방법을 보여줍니다.

36

Page 45: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using an AWS SDK

PHP용 AWS SDK를 사용하여 Amazon SES를 통해 이메일을 보내려면

1. 텍스트 편집기에서 이름의 파일을 생성합니다. amazon-ses-sample.php. 다음 코드를 붙여넣습니다.

<?php

// If necessary, modify the path in the require statement below to refer to the // location of your Composer autoload.php file.require 'vendor/autoload.php';

use Aws\Ses\SesClient;use Aws\Exception\AwsException;

// Create an SesClient. Change the value of the region parameter if you're // using an AWS Region other than 개개 개개(개개개). Change the value of the// profile parameter if you want to use a profile in your credentials file// other than the default.$SesClient = new SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-west-2']);

// Replace [email protected] with your "From" address.// This address must be verified with Amazon SES.$sender_email = '[email protected]';

// Replace these sample addresses with the addresses of your recipients. If// your account is still in the sandbox, these addresses must be verified.$recipient_emails = ['[email protected]','[email protected]'];

// Specify a configuration set. If you do not want to use a configuration// set, comment the following variable, and the// 'ConfigurationSetName' => $configuration_set argument below.$configuration_set = 'ConfigSet';

$subject = 'Amazon SES test (PHP개 AWS SDK)';$plaintext_body = 'This email was sent with Amazon SES using the AWS SDK for PHP.' ;$html_body = '<h1>AWS Amazon Simple Email Service Test Email</h1>'. '<p>This email was sent with <a href="https://aws.amazon.com/ses/">'. 'Amazon SES</a> using the <a href="https://aws.amazon.com/sdk-for-php/">'. 'PHP개 AWS SDK</a>.</p>';$char_set = 'UTF-8';

try { $result = $SesClient->sendEmail([ 'Destination' => [ 'ToAddresses' => $recipient_emails, ], 'ReplyToAddresses' => [$sender_email], 'Source' => $sender_email, 'Message' => [ 'Body' => [ 'Html' => [ 'Charset' => $char_set, 'Data' => $html_body, ], 'Text' => [ 'Charset' => $char_set, 'Data' => $plaintext_body, ], ],

37

Page 46: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using an AWS SDK

'Subject' => [ 'Charset' => $char_set, 'Data' => $subject, ], ], // If you aren't using a configuration set, comment or delete the // following line 'ConfigurationSetName' => $configuration_set, ]); $messageId = $result['MessageId']; echo("Email sent! Message ID: $messageId"."\n");} catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo("The email was not sent. Error message: ".$e->getAwsErrorMessage()."\n"); echo "\n";}

2. amazon-ses-sample.php에서 다음 값을 사용자의 값으로 대체합니다.

• path_to_sdk_inclusion—Replace with the path required to include the PHP용 AWS SDK in theprogram. For more information, see the PHP용 AWS SDK documentation.

[email protected]—Replace with an email address that you have verified with Amazon SES.For more information, see Verifying identities (p. 46). Email addresses in Amazon SES are case-sensitive. Make sure that the address you enter is exactly the same as the one you verified.

[email protected], [email protected]—Replace with the addresses of yourrecipients. If your account is still in the sandbox, your recipients' addresses must also be verified.For more information, see Amazon SES 샌드박스 환경에서 나가기 (p. 69). Make sure that theaddress you enter is exactly the same as the one you verified.

• (Optional) ConfigSet—If you want to use a configuration set when sending this email, replace thisvalue with the name of the configuration set. For more information about configuration sets, seeUsing Amazon SES configuration sets (p. 235).

• (Optional) us-west-2—If you want to use Amazon SES in a region other than 미국 서부(오레곤),replace this with the region you want to use. For a list of regions where Amazon SES is available,see Amazon Simple Email Service (Amazon SES) in the AWS General Reference.

3. amazon-ses-sample.php 저장4. 프로그램을 실행하려면 amazon-ses-sample.php와 동일한 디렉터리에서 명령 프롬프트를 열고 다

음 명령을 입력합니다.

$ php amazon-ses-sample.php

5. 출력 결과를 검토합니다. 이메일이 성공적으로 전송되었으면 콘솔에 "Email sent!"가 표시됩니다. 그렇지 않으면 오류 메시지가 표시됩니다.

Note

"컬 오류 60: 프로그램 실행 시 SSL 인증서 문제" 오류, 최신 CA 번들을 다운로드한 다음 PHP용 AWS SDK 문서화. 그런 다음 amazon-ses-sample.php에서 SesClient::factory 어레이에 다음 줄을 추가하고, path_of_certs를 CA 번들 다운로드 경로로 바꾼 후 프로그램을다시 실행합니다.

'http' => [ 'verify' => 'path_of_certs\ca-bundle.crt']

6. 수신자 주소의 이메일 클라이언트에 로그인합니다. 보낸 메시지가 도착해 있을 것입니다.

38

Page 47: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using an AWS SDK

Send an email using the Ruby용 AWS SDK

이 주제에서는 Ruby용 AWS SDK를 사용하여 Amazon SES를 통해 이메일을 전송하는 방법을 보여줍니다.

Important

이 자습서에서는 수신 여부를 확인할 수 있도록 자신에게 이메일을 발송합니다. 추가적인 실험 또는 로드 테스트는 Amazon SES 메일박스 시뮬레이터를 사용하십시오. 사서함 시뮬레이터로 전송되는 이메일은 전송 할당량이나 반송 메일 및 수신 거부 발생률에 포함되지 않습니다. 자세한 정보는 Testing email sending in Amazon SES (p. 175) 단원을 참조하십시오.

Prerequisites

시작하기 전에 다음 작업을 수행하십시오.

• Verify your email address with Amazon SES—Before you can send an email with Amazon SES,you must verify that you own the sender's email address. If your account is still in the Amazon SESsandbox, you must also verify the recipient email address. The easiest way to verify email addressesis by using the Amazon SES console. For more information, see Verifying email addresses in AmazonSES (p. 46).

• Get your AWS credentials—You need an AWS access key ID and AWS secret access key to accessAmazon SES using an SDK. You can find your credentials by using the Security Credentials pageof the AWS Management 콘솔. For more information about credentials, see Types of Amazon SEScredentials (p. 16).

• Install Ruby—Ruby is available at https://www.ruby-lang.org/en/downloads/. The code in this tutorial wastested using Ruby 1.9.3. After you install Ruby, add the path to Ruby in your environment variables sothat you can run Ruby from any command prompt.

• Install the Ruby용 AWS SDK—For download and installation instructions, see Installing the Ruby용AWS SDK in the Ruby용 AWS SDK Developer Guide. The sample code in this tutorial was tested usingversion 2.9.36 of the Ruby용 AWS SDK.

• Create a shared credentials file—For the sample code in this section to function properly, you mustcreate a shared credentials file. For more information, see Create a shared credentials file (p. 29).

Procedure

다음 절차에서는 Ruby용 AWS SDK를 사용하여 Amazon SES를 통해 이메일을 보내는 방법을 보여줍니다.

Ruby용 AWS SDK를 사용하여 Amazon SES를 통해 이메일을 보내려면

1. 텍스트 편집기에서 이름의 파일을 생성합니다. amazon-ses-sample.rb. 다음 코드를 파일에 붙여넣습니다.

require 'aws-sdk'

개 Replace [email protected] with your "From" address.개 This address must be verified with Amazon SES.sender = "[email protected]"

개 Replace [email protected] with a "To" address. If your account 개 is still in the sandbox, this address must be verified.recipient = "[email protected]"

개 Specify a configuration set. If you do not want to use a configuration개 set, comment the following variable and the 개 configuration_set_name: configsetname argument below. configsetname = "ConfigSet" 개 Replace us-west-2 with the AWS Region you're using for Amazon SES.

39

Page 48: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using an AWS SDK

awsregion = "us-west-2"

개 The subject line for the email.subject = "Amazon SES test (Ruby개 AWS SDK)"

개 The HTML body of the email.htmlbody = '<h1>Amazon SES test (Ruby개 AWS SDK)</h1>'\ '<p>This email was sent with <a href="https://aws.amazon.com/ses/">'\ 'Amazon SES</a> using the <a href="https://aws.amazon.com/sdk-for-ruby/">'\ 'Ruby개 AWS SDK</a>.'

개 The email body for recipients with non-HTML email clients. textbody = "This email was sent with Amazon SES using the Ruby개 AWS SDK."

개 Specify the text encoding scheme.encoding = "UTF-8"

개 Create a new SES resource and specify a regionses = Aws::SES::Client.new(region: awsregion)

개 Try to send the email.begin

개 Provide the contents of the email. resp = ses.send_email({ destination: { to_addresses: [ recipient, ], }, message: { body: { html: { charset: encoding, data: htmlbody, }, text: { charset: encoding, data: textbody, }, }, subject: { charset: encoding, data: subject, }, }, source: sender, 개 Comment or remove the following line if you are not using 개 a configuration set configuration_set_name: configsetname, }) puts "Email sent!"

개 If something goes wrong, display an error message.rescue Aws::SES::Errors::ServiceError => error puts "Email not sent. Error message: 개{error}"

end

2. amazon-ses-sample.rb에서 다음 값을 사용자의 값으로 대체합니다.

[email protected]—Replace with an email address that you have verified with Amazon SES.For more information, see Verifying identities (p. 46). Email addresses in Amazon SES are case-sensitive. Make sure that the address you enter is exactly the same as the one you verified.

40

Page 49: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using an AWS SDK

[email protected]—Replace with the address of the recipient. If your account is still in thesandbox, you must verify this address before you use it. For more information, see Amazon SES 샌드박스 환경에서 나가기 (p. 69). Make sure that the address you enter is exactly the same as theone you verified.

• (Optional) us-west-2—If you want to use Amazon SES in a region other than 미국 서부(오레곤),replace this with the region you want to use. For a list of regions where Amazon SES is available,see Amazon Simple Email Service (Amazon SES) in the AWS General Reference.

3. amazon-ses-sample.rb 저장4. 프로그램을 실행하려면 amazon-ses-sample.rb와 동일한 디렉터리에서 명령 프롬프트를 열고 ruby

amazon-ses-sample.rb를 입력합니다.5. 출력 결과를 검토합니다. 이메일이 성공적으로 전송되었으면 콘솔에 "Email sent!"가 표시됩니다. 그

렇지 않으면 오류 메시지가 표시됩니다.6. 수신자 주소의 이메일 클라이언트에 로그인합니다. 보낸 메시지가 도착해 있을 것입니다.

Send an email using the AWS SDK for Python (Boto)

이 주제에서는 AWS SDK for Python (Boto)를 사용하여 Amazon SES를 통해 이메일을 전송하는 방법을 보여줍니다.

Important

이 자습서에서는 수신 여부를 확인할 수 있도록 자신에게 이메일을 발송합니다. 추가적인 실험 또는 로드 테스트는 Amazon SES 메일박스 시뮬레이터를 사용하십시오. 사서함 시뮬레이터로 전송되는 이메일은 전송 할당량이나 반송 메일 및 수신 거부 발생률에 포함되지 않습니다. 자세한 정보는 Testing email sending in Amazon SES (p. 175) 단원을 참조하십시오.

Prerequisites

시작하기 전에 다음 작업을 수행하십시오.

• Verify your email address with Amazon SES—Before you can send an email with Amazon SES,you must verify that you own the sender's email address. If your account is still in the Amazon SESsandbox, you must also verify the recipient email address. The easiest way to verify email addressesis by using the Amazon SES console. For more information, see Verifying email addresses in AmazonSES (p. 46).

• Get your AWS credentials—You need an AWS access key ID and AWS secret access key to accessAmazon SES using an SDK. You can find your credentials by using the Security Credentials pageof the AWS Management 콘솔. For more information about credentials, see Types of Amazon SEScredentials (p. 16).

• Install Python—Python is available at https://www.python.org/downloads/. The code in this tutorial wastested using Python 2.7.6 and Python 3.6.1. After you install Python, add the path to Python in yourenvironment variables so that you can run Python from any command prompt.

• Install the AWS SDK for Python (Boto)—For download and installation instructions, see the AWS SDK forPython (Boto) documentation. The sample code in this tutorial was tested using version 1.4.4 of the SDKfor Python.

• Create a shared credentials file—For the sample code in this section to function properly, you mustcreate a shared credentials file. For more information, see Create a shared credentials file (p. 29).

Procedure

다음 절차에서는 SDK for Python를 사용하여 Amazon SES를 통해 이메일을 보내는 방법을 보여줍니다.

41

Page 50: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Send an email using an AWS SDK

SDK for Python를 사용하여 Amazon SES를 통해 이메일을 보내려면

1. 텍스트 편집기에서 이름의 파일을 생성합니다. amazon-ses-sample.py. 다음 코드를 파일에 붙여넣습니다.

import boto3from botocore.exceptions import ClientError

개 Replace [email protected] with your "From" address.개 This address must be verified with Amazon SES.SENDER = "Sender Name <[email protected]>"

개 Replace [email protected] with a "To" address. If your account 개 is still in the sandbox, this address must be verified.RECIPIENT = "[email protected]"

개 Specify a configuration set. If you do not want to use a configuration개 set, comment the following variable, and the 개 ConfigurationSetName=CONFIGURATION_SET argument below.CONFIGURATION_SET = "ConfigSet"

개 If necessary, replace us-west-2 with the AWS Region you're using for Amazon SES.AWS_REGION = "us-west-2"

개 The subject line for the email.SUBJECT = "Amazon SES Test (SDK for Python)"

개 The email body for recipients with non-HTML email clients.BODY_TEXT = ("Amazon SES Test (Python)\r\n" "This email was sent with Amazon SES using the " "AWS SDK for Python (Boto)." ) 개 The HTML body of the email.BODY_HTML = """<html><head></head><body> <h1>Amazon SES Test (SDK for Python)</h1> <p>This email was sent with <a href='https://aws.amazon.com/ses/'>Amazon SES</a> using the <a href='https://aws.amazon.com/sdk-for-python/'> AWS SDK for Python (Boto)</a>.</p></body></html> """

개 The character encoding for the email.CHARSET = "UTF-8"

개 Create a new SES resource and specify a region.client = boto3.client('ses',region_name=AWS_REGION)

개 Try to send the email.try: 개Provide the contents of the email. response = client.send_email( Destination={ 'ToAddresses': [ RECIPIENT, ], }, Message={ 'Body': { 'Html': {

42

Page 51: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Migrate to Amazon SES from another solution

'Charset': CHARSET, 'Data': BODY_HTML, }, 'Text': { 'Charset': CHARSET, 'Data': BODY_TEXT, }, }, 'Subject': { 'Charset': CHARSET, 'Data': SUBJECT, }, }, Source=SENDER, 개 If you are not using a configuration set, comment or delete the 개 following line ConfigurationSetName=CONFIGURATION_SET, )개 Display an error if something goes wrong. except ClientError as e: print(e.response['Error']['Message'])else: print("Email sent! Message ID:"), print(response['MessageId'])

2. amazon-ses-sample.py에서 다음 값을 사용자의 값으로 대체합니다.

[email protected]—Replace with an email address that you have verified with Amazon SES.For more information, see Verifying identities (p. 46). Email addresses in Amazon SES are case-sensitive. Make sure that the address you enter is exactly the same as the one you verified.

[email protected]—Replace with the address of the recipient. If your account is still in thesandbox, you must verify this address before you use it. For more information, see Amazon SES 샌드박스 환경에서 나가기 (p. 69). Make sure that the address you enter is exactly the same as theone you verified.

• (Optional) us-west-2—If you want to use Amazon SES in a region other than 미국 서부(오레곤),replace this with the region you want to use. For a list of regions where Amazon SES is available,see Amazon Simple Email Service (Amazon SES) in the AWS General Reference.

3. amazon-ses-sample.py 저장4. 프로그램을 실행하려면 amazon-ses-sample.py와 동일한 디렉터리에서 명령 프롬프트를 열고

python amazon-ses-sample.py를 입력합니다.5. 출력 결과를 검토합니다. 이메일이 성공적으로 전송되었으면 콘솔에 "Email sent!"가 표시됩니다. 그

렇지 않으면 오류 메시지가 표시됩니다.6. 수신자 주소의 이메일 클라이언트에 로그인합니다. 보낸 메시지가 도착해 있을 것입니다.

Migrate to Amazon SES from another email-sendingsolution이 주제에서는 온프레미스에서 호스팅하는 솔루션 또는 Amazon EC2 인스턴스에서 호스팅하는 솔루션에서Amazon SES로 이메일 전송 솔루션을 이동하려는 경우 수행해야 하는 단계에 대한 개요를 다룹니다.

이 단원의 주제:• Verify your domain (p. 44)• Request production access (p. 44)• Configure domain authentication systems (p. 44)• Generate your SMTP credentials (p. 44)

43

Page 52: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Migrate to Amazon SES from another solution

• Connect to an SMTP endpoint (p. 44)• Next steps (p. 44)

Verify your domainAmazon SES를 사용하여 이메일을 전송하기 전에 이메일을 보내려는 자격 증명을 확인해야 합니다.Amazon SES에서 자격 증명은 이메일 주소 또는 전체 도메인이 될 수 있습니다. 도메인을 확인하면 AmazonSES를 사용하여 해당 도메인의 어떤 주소에서든 이메일을 보낼 수 있습니다. 도메인 확인에 대한 자세한 내용은 Verifying domains in Amazon SES (p. 57) 단원을 참조하십시오.

Request production accessAmazon SES를 처음 사용하기 시작하면 계정이 샌드박스 환경에 있습니다. 계정이 샌드박스에 있으면 확인된 주소에만 이메일을 전송할 수 있습니다. 또한 일별 전송할 수 있는 메시지 수와 초당 전송할 수 있는 수에제한이 있습니다. 프로덕션 액세스 권한 요청에 대한 자세한 내용은 Amazon SES 샌드박스 환경에서 나가기 (p. 69) 단원을 참조하십시오.

Configure domain authentication systemsDKIM 및 SPF와 같은 인증 시스템을 사용하도록 도메인을 구성할 수 있습니다. 이 단계는 기술적인 선택 사항입니다. 도메인에 DKIM 또는 SPF(또는 둘 모두)를 설정하면 이메일 발송률을 개선하고 고객의신뢰도를 높일 수 있습니다. SPF 설정에 대한 자세한 내용은 Authenticating Email with SPF in AmazonSES (p. 125) 단원을 참조하십시오. DKIM 설정에 대한 자세한 내용은 Amazon SES에서 DKIM을 사용하여이메일 인증 (p. 126) 단원을 참조하십시오.

Generate your SMTP credentialsSMTP를 사용하는 애플리케이션을 통해 이메일을 보내려는 경우 SMTP 자격 증명을 생성해야 합니다.SMTP 자격 증명은 일반 AWS 자격 증명과 다릅니다. 또한 이러한 자격 증명은 각 AWS 리전에서 고유합니다. SMTP 자격 증명을 생성하는 방법에 대한 자세한 내용은 Obtaining your Amazon SES SMTPcredentials (p. 84) 단원을 참조하십시오.

Connect to an SMTP endpointpostfix 또는 sendmail과 같은 메시지 전송 에이전트를 사용하는 경우 Amazon SES SMTP 엔드포인트를 참조하도록 해당 애플리케이션의 구성을 업데이트해야 합니다. SMTP 엔드포인트의 전체 목록은 Connectingto an Amazon SES SMTP endpoint (p. 87) 단원을 참조하십시오. 이전 단계에서 생성한 SMTP 자격 증명은 특정 AWS 리전과 연결되어 있습니다. SMTP 자격 증명을 생성한 리전에 있는 SMTP 엔드포인트에 연결해야 합니다.

Next steps이제 Amazon SES를 사용하여 이메일 전송을 시작할 준비가 되었습니다. 수행할 수 있는 몇 가지 선택적 단계가 있습니다.

• You can create configuration sets, which are sets of rules that are applied to the emails that you send.For example, you can use configuration sets to specify where notifications are sent when an email isdelivered, when a recipient opens a message or clicks a link in it, when an email bounces, and whena recipient marks your email as spam. For more information, see Using Amazon SES configurationsets (p. 235).

• When you send email through Amazon SES, it's important to monitor the bounces and complaintsfor your account. Amazon SES includes a reputation dashboard that you can use to keep track of thebounces and complaints for your account. For more information, see Using the reputation dashboardto track bounce and complaint rates (p. 347). You can also create CloudWatch alarms that alert you

44

Page 53: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up email

when these rates get too high. For more information about creating CloudWatch alarms, see Creatingreputation monitoring alarms using CloudWatch (p. 359).

• Customers who send a large volume of email, or those who simply want to have full control over thereputations of their IP addresses, can lease dedicated IP addresses for an additional monthly charge. Formore information, see Using dedicated IP addresses with Amazon SES (p. 167).

Setting up email with Amazon SESAmazon Simple Email Service(Amazon SES)로 이메일을 설정하려면 다음 작업을 수행해야 합니다.

• Before you can access Amazon SES or other AWS services, you need to set up an AWS account. Formore information, see Signing up for AWS (p. 45).

• Before you send email through Amazon SES, you need to verify that you own the "From" address. Ifyour account is still in the Amazon SES sandbox, you also need to verify your "To" addresses. Youcan verify email addresses or entire domains. For more information, see Verifying identities in AmazonSES (p. 46).

다음 작업은 수행하려는 작업에 따라 선택 사항입니다.

• If you want to access Amazon SES through the Amazon SES API, whether by the Query (HTTPS)interface or indirectly through an AWS SDK, the AWS Command Line Interface or the WindowsPowerShell용 AWS 도구, you need to obtain your AWS access keys. For more information, see Gettingyour AWS access keys (p. 63).

• If you want to call the Amazon SES API without handling the low-level details of the Query interface, youcan use an AWS SDK. For more information, see AWS SDK 다운로드 (p. 63).

• If you want to access Amazon SES through its SMTP interface, you need to obtain your SMTP username and password. Your SMTP credentials are different from your AWS credentials. For moreinformation, see Getting your SMTP credentials for Amazon SES (p. 69).

• When you first sign up for Amazon SES, your account is in the Amazon SES sandbox. In the sandbox,you can send emails using the same email-sending methods as any other Amazon SES user, except thatyou can only send 200 emails per 24-hour period at a maximum rate of one email per second, and youcan only send emails to addresses you have verified. To increase your sending quotas and to send emailto unverified email addresses, see Amazon SES 샌드박스 환경에서 나가기 (p. 69).

• If you want your emails to pass Domain-based Message Authentication, Reporting and Conformance(DMARC) authentication based on Sender Policy Framework (SPF), configure your identity to send froma custom MAIL FROM domain as described in Setting up a custom MAIL FROM domain (p. 63).

Signing up for AWSAmazon SES 또는 다른 AWS 서비스를 사용하려면 먼저 AWS 계정을 만들어야 합니다.

AWS 계정을 생성하려면

1. 웹 브라우저에서 https://aws.amazon.com/ses로 이동합니다.2. AWS 계정 만들기를 선택합니다.3. 화면에 표시되는 지시 사항을 따릅니다.

Next stepsAWS 계정을 만든 후 Amazon SES 설정을 시작할 수 있습니다.

45

Page 54: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

• To start sending email with Amazon SES, you first have to verify an identity (p. 46). An identity is anemail address or domain that your email is sent from.

• To interact with Amazon SES, you need to obtain the IAM credentials (p. 63) for your account.• When you first start using Amazon SES, your account is in the Amazon SES sandbox. In the sandbox,

you have full access to the Amazon SES API and SMTP interface. However, the following restrictions arein effect:• You can only send email to the Amazon SES mailbox simulator (p. 175), and to verified email

identities (p. 46).• You can send a maximum of 200 messages per 24-hour period.• You can send a maximum of one message per second.

For information about moving out of the sandbox, see Amazon SES 샌드박스 환경에서 나가기 (p. 69).

Verifying identities in Amazon SES에서 Amazon SES, identity 은(는) 전자 메일을 보내는 데 사용하는 이메일 주소나 도메인입니다. AmazonSES를 사용하여 이메일을 보내려면 먼저 "발신", "소스", "발신자" 또는 "반환 경로" 주소로 사용하려는 각 자격 증명을 확인하여 본인 소유임을 입증해야 합니다. 계정이 여전히 Amazon SES 샌드박스 환경에 있을 경우 Amazon SES 메일박스 시뮬레이터 (p. 175)에서 제공하는 이메일 주소를 제외하고 이메일을 전송하는모든 이메일 주소도 확인해야 합니다.

자격 증명은 Amazon SES 콘솔 또는 Amazon SES API를 사용하여 확인할 수 있습니다.

Verifying email addresses in Amazon SESAmazon SES 귀하가 귀하의 identities (전자 메일을 보내는 도메인 또는 전자 메일 주소)를 사용하여 자신이 소유하고 있는지 확인하고 무단 사용을 방지합니다. 이 단원에는 이메일 주소 자격 증명 확인에 대한자세한 내용이 들어 있습니다. 도메인 자격 증명 확인에 대한 자세한 내용은 the section called “Verifyingdomains” (p. 57) 단원을 참조하십시오.

Amazon SES와 함께 사용할 이메일 주소를 확인하는 경우 다음 요소를 고려하십시오.

• You must verify each identity that you use as a "From," "Source," "Sender," or "Return-Path" address.You can, however, add a label to an email address that has already been verified without performing anyadditional verification steps (see the information later in this list).

• Email addresses are case sensitive. If you verify [email protected], you can't send email [email protected] unless you verify [email protected] as well.

• If you verify both an email address and the domain that address belongs to, the settings for the emailaddress override those of the domain. For example, if DomainKeys Identified Mail (DKIM) is enabled forthe domain example.com, but not for [email protected], emails sent from [email protected]'t DKIM signed.

• Amazon SES has endpoints in multiple AWS Regions, and the verification status of the email address isseparate for each region. If you want to send email from the same identity in more than one region, youmust verify that identity in each region. For information about using Amazon SES in multiple regions, seeRegions (p. 432).

• In each AWS Region, you can verify up to 10,000 identities (email addresses or domains, in anycombination).

• You can add labels to verified email addresses without performing additional verification steps. Toadd a label to an email address, add a plus sign (+) between the account name and the "at" sign (@),followed by a text label. For example, if you already verified [email protected], you can use [email protected] as the "From" or "Return-Path" address for your emails. You can use thisfeature to implement Variable Envelope Return Path (VERP). Then you can use VERP to detect andremove undeliverable email addresses from your mailing lists.

46

Page 55: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

• You can customize the messages that are sent to the email addresses you attempt to verify. For moreinformation, see Using custom verification email templates (p. 50).

Verifying an email addressAmazon SES 콘솔 또는 VerifyEmailIdentity API 작업을 사용하여 이메일 주소를 확인할 수 있습니다.

Verifying an email address using the Amazon SES console

이 단원의 절차를 완료하면 Amazon SES 콘솔을 사용하여 이메일 주소를 확인할 수 있습니다.

Amazon SES 콘솔을 사용하여 이메일 주소를 확인하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 다음 이미지에 표시된 대로 콘솔에서 리전 선택기를 사용하여 이메일 주소를 확인하려는 AWS 리전을선택합니다.

Note

둘 이상의 리전에서 사용할 이메일 주소를 확인하려면, 리전마다 이 단원의 절차를 반복하십시오.

3. 탐색 창의 [Identity Management] 아래에서 [Email Addresses]를 선택합니다.4. [Verify a New Email Address]를 선택합니다.5. [Verify a New Email Address] 대화 상자에서 [Email Address] 필드에 이메일 주소를 입력한 다음, [Verify

This Email Address]를 선택합니다.6. 확인하고 있는 이메일 주소의 받은 편지함을 선택합니다. 다음 제목줄과 함께 메시지를 받게 됩니다.

"Amazon Web Services - 지역의 이메일 주소 확인 요청 RegionName여기서 각 항목은 다음과 같습니다.RegionName 은(는) AWS 2단계에서 선택한 지역.

메시지의 링크를 클릭합니다.Note

확인 메시지의 링크는 메시지 전송 24시간 후에 만료됩니다. 확인 이메일을 받은 후 24시간이지나면 1–5단계를 반복하여 유효한 링크가 있는 확인 이메일을 받을 수 있습니다.

7. Amazon SES 콘솔의 자격 증명 관리 아래에서 이메일 주소를 선택합니다. 이메일 주소 목록에서, 확인하고 있는 이메일 주소를 찾습니다. 이메일 주소가 확인된 경우 [Status] 열의 값이 "verified"입니다.

Verify an email address using the Amazon SES API

VerifyEmailIdentity API 작업을 사용하여 새 이메일 자격 증명을 생성할 수 있습니다. 개별 자격 증명에 대해이 작업을 호출하는 간편한 방법은 AWS CLI를 사용하는 것입니다.

47

Page 56: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

Note

이 단원의 절차를 완료하기 전에 먼저 AWS CLI를 설치하고 구성해야 합니다. 자세한 정보는 AWSCommand Line Interface 사용 설명서를 참조하십시오.

AWS CLI를 사용하여 이메일 주소를 확인하려면

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

aws ses verify-email-identity --email-address [email protected]

이전 명령에서 교체 [email protected] 확인할 이메일 주소를 가지고 있습니다.

명령이 성공적으로 실행되면 출력을 제공하지 않고 종료됩니다.2. 확인하고 있는 이메일 주소의 받은 편지함을 선택합니다. 다음 제목줄과 함께 메시지를 받게 됩니다.

"Amazon Web Services - 지역의 이메일 주소 확인 요청 RegionName여기서 각 항목은 다음과 같습니다.RegionName 은(는) AWS 에서 이메일 주소를 확인하려고 시도하는 지역.

메시지를 연 다음 해당 메시지에서 링크를 클릭합니다.

Note

확인 메시지의 링크는 메시지 전송 24시간 후에 만료됩니다. 확인 이메일을 받은 후 24시간이지나면 1–5단계를 반복하여 유효한 링크가 있는 확인 이메일을 받을 수 있습니다.

3. Amazon SES 콘솔의 자격 증명 관리 아래에서 이메일 주소를 선택합니다. 이메일 주소 목록에서, 확인하고 있는 이메일 주소를 찾습니다. 이메일 주소가 확인된 경우 [Status] 열의 값이 "verified"입니다.

단일 작업으로 여러 개의 이메일 자격 증명을 확인하는 데 사용할 수 있는 스크립트에 대한 내용은 thesection called “Verify multiple email addresses” (p. 425) 단원을 참조하십시오.

Troubleshoot email address verification

이메일 주소 확인을 시도했지만 AWS로부터 확인 이메일을 받지 못한 경우 다음 문제 해결 단계를 수행해 보십시오.

• Check the Junk Mail folder in your email client.• Ensure that your email client isn't applying rules that automatically move certain messages to a folder

other than your inbox.• In your email client, add [email protected] to your address book or Safe Senders list. You can

also ask your system administrator to whitelist incoming email from [email protected].• With an email address that uses a different email service provider (such as a personal email address),

send a message to the address you want to verify. Ensure that the address you want to verify receivesthe message. This step is especially important if you recently set up your own domain. Occasionally, newdomains might not be correctly configured to receive incoming email.

Alternatively, try to verify an email address that you know is able to receive email, such as a personalemail address. If you receive the verification email at your personal address, it might indicate that there isan issue on the other domain.

If these tests show email isn't being received at the address you attempted to verify, consult your systemadministrator or email service provider for further assistance.

Listing email identities in Amazon SES

콘솔 또는 ListIdentities Amazon SES API 작업을 사용하여 이메일 자격 증명 목록을 표시할 수 있습니다.

48

Page 57: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

Viewing a list of email identities in Amazon SES

Amazon SES 콘솔 및 API를 사용하여 확인 절차를 통과하지 못한 이메일 주소뿐만 아니라 확인된 또는 확인보류 중인 이메일 주소 목록을 볼 수 있습니다.

확인된 이메일 주소 목록을 보려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 다음 이미지에 표시된 대로, 콘솔에서 리전 선택기를 사용하여 이메일 자격 증명을 나열하려는 AWS 리전을 선택합니다.

Note

이 절차는 선택한 AWS 리전에 있는 이메일 주소 목록만 표시합니다.3. 탐색 창의 [Identity Management] 아래에서 [Email Addresses]를 선택합니다.

이메일 주소 페이지에 확인된 이메일 주소, 확인 보류 중인 이메일 주소 및 확인 절차를 통과하지 못한이메일 주소의 목록이 표시됩니다. 추가 정보를 보려는 이메일 주소를 클릭합니다.

Viewing a list of email identities using the Amazon SES API

ListIdentities API 작업을 사용하여 상태와 상관없이 모든 이메일 자격 증명 목록을 볼 수 있습니다.GetIdentityVerificationAttributes 작업을 사용하여 주어진 자격 증명의 확인 상태를 찾을 수도 있습니다.

AWS CLI를 사용하여 자격 증명 목록을 보려면 명령줄에 aws ses list-identities 명령을 입력합니다.

ListIdentities 작업을 실행하면 확인 상태에 상관없이 Amazon SES 계정의 모든 자격 증명 목록이 반환됩니다. 하나 이상의 자격 증명의 확인 상태를 보려면 GetIdentityVerificationAttributes 작업을사용합니다. AWS CLI를 사용하여 자격 증명의 확인 상태를 확인하려면 명령줄에 다음 명령을 입력합니다.aws ses get-identity-verification-attributes --identities "[email protected]"

Replace [email protected] 의 확인 상태를 찾고자 하는 ID 이전 명령에 있습니다. 이 명령을 사용하여 단일 API 호출에서 여러 자격 증명의 확인 상태를 찾을 수도 있습니다. 예를 들어 도메인 상태를 찾으려면 example.com 이메일 주소 [email protected]다음 명령을 입력합니다. aws ses get-identity-verification-attributes --identities "example.com" "[email protected]"

Deleting an email identity in Amazon SES확인된 이메일 주소를 더 이상 사용할 필요가 없는 경우 Amazon SES 콘솔이나 DeleteIdentity API 작업을 사용하여 해당 주소를 삭제할 수 있습니다.

Warning

이 작업은 실행 취소할 수 없습니다. 단, 이전에 삭제한 자격 증명에 대해 확인 절차를 반복할 수는있습니다.

49

Page 58: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

Deleting an email identity in Amazon SES

확인된 이메일 주소를 제거하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 다음 이미지에 표시된 대로, 콘솔에서 리전 선택기를 사용하여 이메일 자격 증명을 삭제하려는 AWS 리전을 선택합니다.

Note

이 절차는 선택한 AWS 리전에 있는 이메일 주소만 삭제합니다. 둘 이상의 리전에서 확인된 이메일 주소를 삭제하려면, 리전마다 이 단원의 절차를 반복하십시오.

3. 제거할 각 이메일 주소를 선택한 후 [Remove]를 선택합니다.

Deleting an email identity using the Amazon SES API

DeleteIdentity API 작업을 사용하여 이메일 주소 및 도메인 자격 증명을 삭제할 수 있습니다.

AWS CLI를 사용하여 자격 증명을 삭제하려면 명령줄에 다음 명령을 입력합니다. aws ses delete-identity --identity "[email protected]"

Replace [email protected] 을(를) 삭제하려는 ID(으)로 이전 명령에 있습니다.

Using custom verification email templates이메일 주소 확인을 시도하면 Amazon SES가 다음 이미지에 표시된 예와 비슷한 해당 주소로 이메일을 전송합니다.

많은 Amazon SES 고객은 자체 고객을 대신하여 Amazon SES를 통해 이메일을 보내는 애플리케이션(예: 이메일 마케팅 제품군 또는 티켓 시스템)을 빌드합니다. 이러한 애플리케이션의 최종 사용자의 경우 이메일 확

50

Page 59: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

인 프로세스가 혼동스러울 수 있습니다. 확인 이메일은 애플리케이션의 브랜드가 아니라 Amazon SES 브랜드를 사용하는데 그 최종 사용자가 Amazon SES 직접 사용을 등록한 적이 없습니다.

Amazon SES 사용 사례에서 고객이 이메일 주소를 Amazon SES에 사용할 수 있는지 확인해야 하는 경우 사용자 지정 확인 이메일을 생성할 수 있습니다. 이 사용자 지정 이메일은 고객의 혼란을 줄이고 고객이 등록프로세스를 완료하는 비율을 높이는 데 도움이 될 수 있습니다.

Note

이 기능을 사용하려면 Amazon SES 계정이 샌드박스에서 나가야 합니다. 자세한 정보는 AmazonSES 샌드박스 환경에서 나가기 (p. 69) 단원을 참조하십시오.

이 단원의 주제:• Creating a custom verification email template (p. 51)• Editing a custom verification email template (p. 52)• Sending verification emails using custom templates (p. 53)• Custom verification email frequently asked questions (p. 53)

Creating a custom verification email template

사용자 지정 확인 이메일을 생성하려면 CreateCustomVerificationEmailTemplate API 작업을 사용합니다. 이 작업은 다음 입력을 사용합니다.

속성 설명

TemplateName 템플릿의 이름입니다. 지정하는 이름은 고유해야 합니다.

FromEmailAddress 확인 이메일이 전송된 이메일 주소입니다. 지정하는 주소 또는 도메인은Amazon SES 계정에 사용할 수 있는지 확인해야 합니다.

Note

FromEmailAddress 속성은 표시 이름("대화명"이라고도 함)을지원하지 않습니다.

TemplateSubject 확인 이메일의 제목 줄입니다.

TemplateContent 이메일의 본문입니다. 이메일 본문에는 특정 제한 사항이 있는 HTML이포함될 수 있습니다. 자세한 정보는 Custom verification email frequentlyasked questions (p. 53) 단원을 참조하십시오.

SuccessRedirectionURL 이메일 주소가 성공적으로 확인된 경우 사용자에게 전송되는 URL입니다.

FailureRedirectionURL 이메일 주소가 성공적으로 확인되지 않은 경우 사용자에게 전송되는 URL입니다.

AWS SDK 또는 AWS CLI를 사용하여 CreateCustomVerificationEmailTemplate 작업으로 사용자 지정 확인 이메일 템플릿을 생성할 수 있습니다. AWS SDK에 대해 자세히 알아보려면 Amazon WebServices 도구를 참조하십시오. AWS CLI에 대한 자세한 내용은 AWS 명령줄 인터페이스를 참조하십시오.

다음 단원에는 AWS CLI를 사용하여 사용자 지정 확인 이메일을 생성하는 절차가 포함되어 있습니다. 이 절차에서는 AWS CLI를 설치하고 구성한 것으로 가정합니다. AWS CLI 설치 및 구성에 대한 자세한 내용은AWS Command Line Interface 사용 설명서를 참조하십시오.

Note

To complete the procedure in this section, you must use version 1.14.6 or later of the AWSCLI. For best results, upgrade to the latest version of the AWS CLI. For more information about

51

Page 60: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

updating the AWS CLI, see Installing the AWS Command Line Interface in the AWS CommandLine Interface 사용 설명서.

1. 텍스트 편집기에서 새로운 파일을 생성합니다. 다음 콘텐츠를 편집기에 붙여 넣습니다.

{ "TemplateName": "SampleTemplate", "FromEmailAddress": "[email protected]", "TemplateSubject": "Please confirm your email address", "TemplateContent": "<html> <head></head> <body style='font-family:sans-serif;'> <h1 style='text-align:center'>Ready to start sending email with ProductName?</h1> <p>We here at Example Corp are happy to have you on board! There's just one last step to complete before you can start sending email. Just click the following link to verify your email address. Once we confirm that you're really you, we'll give you some additional information to help you get started with ProductName.</p> </body> </html>", "SuccessRedirectionURL": "https://www.example.com/verifysuccess", "FailureRedirectionURL": "https://www.example.com/verifyfailure"}

Important

앞의 예를 이해하기 쉽도록 TemplateContent 속성에는 줄 바꿈이 포함되어 있습니다. 앞의예를 텍스트 파일에 붙여 넣으면 진행하기 전에 줄 바꿈을 제거합니다.

값 교체 TemplateName, FromEmailAddress, TemplateSubject, TemplateContent,SuccessRedirectionURL, 그리고 FailureRedirectionURL 자체 가치를 가지고 있습니다.

Note

지정한 이메일 주소 FromEmailAddress 매개 변수를 확인해야 하거나 검증된 도메인에 있는주소여야 합니다. 자세한 정보는 Verifying identities in Amazon SES (p. 46) 단원을 참조하십시오.

작업을 마치면 파일 이름을 customverificationemail.json으로 저장합니다.2. 명령줄에서 다음 명령을 입력하여 사용자 정의 확인 전자 메일 템플릿을 생성합니다.

aws ses create-custom-verification-email-template --cli-input-json file://customverificationemail.json

3. 선택적으로 다음 명령을 입력하여 템플릿을 생성했음을 확인할 수 있습니다.

aws ses list-custom-verification-email-templates

Editing a custom verification email template

UpdateCustomVerificationEmailTemplate API 작업을 사용하여 사용자 지정 확인 이메일템플릿을 편집할 수 있습니다. 이 작업은 CreateCustomVerificationEmailTemplate 작업과같은 입력(즉 TemplateName, FromEmailAddress, TemplateSubject, TemplateContent,SuccessRedirectionURL 및 FailureRedirectionURL 속성)을 허용합니다. 하지만UpdateCustomVerificationEmailTemplate 작업의 경우 이 속성 중 아무것도 필요하지 않습니다. 기존 사용자 지정 확인 이메일 템플릿의 이름과 같은 TemplateName의 값을 전달하면 지정하는 속성이 원래템플릿에 있던 속성을 덮어씁니다.

52

Page 61: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

Sending verification emails using custom templates

최소 하나의 사용자 지정 확인 이메일 템플릿을 생성한 후 SendCustomVerificationEmailAPI 작업을 호출하여 고객에게 전송할 수 있습니다. AWS SDK 또는 AWS CLI를 사용하여SendCustomVerificationEmail 작업을 호출할 수 있습니다. SendCustomVerificationEmail 작업은 다음 입력을 사용합니다.

속성 설명

EmailAddress 확인 중인 이메일 주소입니다.

TemplateName 확인 중인 이메일 주소에 전송된 사용자 지정 확인 이메일 템플릿의 이름입니다.

ConfigurationSetName (선택) 확인 이메일을 보낼 때 사용하도록 설정된 구성의 이름입니다.

예를 들어 고객이 애플리케이션의 양식을 사용하여 서비스에 등록한다고 가정해 보겠습니다. 고객이 양식을작성하여 제출하면 애플리케이션이 SendCustomVerificationEmail 작업을 호출하여 고객의 이메일 주소와 사용하려는 템플릿의 이름을 전달합니다.

고객은 사용자가 생성한 사용자 지정 이메일 템플릿을 사용하는 이메일을 수신합니다. Amazon SES는 자동으로 수신자에 고유 링크와 간략한 면책 조항을 추가합니다. 다음 이미지에는 Creating a custom verificationemail template (p. 51)에서 생성된 템플릿을 사용하는 샘플 확인 이메일이 표시되어 있습니다.

Custom verification email frequently asked questions

이 단원에는 사용자 지정 확인 이메일 템플릿 기능에 대한 FAQ 답변이 포함되어 있습니다.

Q1. How many custom verification email templates can I create?

Amazon SES 계정당 최대 50개의 사용자 지정 확인 이메일 템플릿을 생성할 수 있습니다.

Q2. How do custom verification emails appear to recipients?

사용자 지정 확인 이메일에는 템플릿을 생성할 때 지정한 콘텐츠가 포함되어 있고 그 다음 수신자가 이메일주소를 확인하기 위해 클릭해야 하는 링크가 있습니다.

Q3. Can I preview the custom verification email?

사용자 지정 확인 이메일을 미리 보려면 SendCustomVerificationEmail 작업을 사용하여 사용자가 소유하는 주소에 확인 이메일을 보냅니다. 확인 링크를 클릭하지 않으면 Amazon SES는 새 자격 증명을 생성하지 않습니다. 확인 링크를 클릭하면 선택적으로 DeleteIdentity 작업을 사용하여 새로 생성된 자격 증명을 삭제할 수 있습니다.

Q4. Can I include images in my custom verification email templates?

Base64 인코딩을 사용하여 템플릿의 HTML에 이미지를 포함할 수 있습니다. 이런 방식으로 이미지를 포함하면 Amazon SES는 자동으로 첨부 문서로 변환합니다. 다음 명령 중 하나를 실행하여 명령줄에서 이미지를인코딩할 수 있습니다.

53

Page 62: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

Linux, macOS, or Unix

base64 -i imagefile.png | tr -d '\n' > output.txt

Windows

certutil -encodehex -f imagefile.png output.txt 0x40000001

imagefile.png를 인코딩할 파일의 이름으로 바꿉니다. 위 두 명령 모두 Base64 인코딩 이미지가output.txt에 저장됩니다.

템플릿의 HTML에 <img src="data:image/png;base64,base64EncodedImage"/>를 포함하여Base64 인코딩 이미지를 포함할 수 있습니다.

위 예에서 png를 인코딩 이미지의 파일 유형(예: jpg 또는 gif)으로 바꾸고 base64EncodedImage를Base64 인코딩 이미지(앞의 명령 중 하나 중 output.txt의 콘텐츠)로 바꿉니다.

Q5. Are there any limits to the content that I can include in custom verification email templates?

사용자 지정 확인 이메일 템플릿은 크기가 10MB를 초과할 수 없습니다. 또한 침해를 방지할 수 있도록HTML이 포함되는 사용자 지정 확인 이메일 템플릿은 다음 표에 나열된 태그와 속성만 사용할 수 있습니다.

HTML 태그 허용되는 속성

abbr class, id, style, title

acronym class, id, style, title

address class, id, style, title

area class, id, style, title

b class, id, style, title

bdo class, id, style, title

big class, id, style, title

blockquote cite, class, id, style, title

body class, id, style, title

br class, id, style, title

button class, id, style, title

caption class, id, style, title

center class, id, style, title

cite class, id, style, title

code class, id, style, title

col class, id, span, style, title, width

colgroup class, id, span, style, title, width

dd class, id, style, title

54

Page 63: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

HTML 태그 허용되는 속성

del class, id, style, title

dfn class, id, style, title

dir class, id, style, title

div class, id, style, title

dl class, id, style, title

dt class, id, style, title

em class, id, style, title

fieldset class, id, style, title

font class, id, style, title

form class, id, style, title

h1 class, id, style, title

h2 class, id, style, title

h3 class, id, style, title

h4 class, id, style, title

h5 class, id, style, title

h6 class, id, style, title

head class, id, style, title

hr class, id, style, title

html class, id, style, title

i class, id, style, title

img align, alt, class, height, id, src,style, title, width

input class, id, style, title

ins class, id, style, title

kbd class, id, style, title

label class, id, style, title

legend class, id, style, title

li class, id, style, title

map class, id, style, title

menu class, id, style, title

ol class, id, start, style, title, type

55

Page 64: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

HTML 태그 허용되는 속성

optgroup class, id, style, title

option class, id, style, title

p class, id, style, title

pre class, id, style, title

q cite, class, id, style, title

s class, id, style, title

samp class, id, style, title

select class, id, style, title

small class, id, style, title

span class, id, style, title

strike class, id, style, title

strong class, id, style, title

sub class, id, style, title

sup class, id, style, title

table class, id, style, summary, title,width

tbody class, id, style, title

td abbr, axis, class, colspan, id,rowspan, style, title, width

textarea class, id, style, title

tfoot class, id, style, title

th abbr, axis, class, colspan, id,rowspan, scope, style, title, width

thead class, id, style, title

tr class, id, style, title

tt class, id, style, title

u class, id, style, title

ul class, id, style, title, type

var class, id, style, title

Note

사용자 지정 확인 전자 메일 템플릿에는 주석 태그를 포함할 수 없습니다.

56

Page 65: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

Q6. How many verified email addresses can exist in my account?

Amazon SES 계정은 각 AWS 리전에서 최대 10,000개의 확인된 자격 증명이 포함될 수 있습니다. 에서Amazon SES, identities 에는 검증된 도메인 및 이메일 주소가 모두 포함됩니다.

Q7. Can I create custom verification email templates using the Amazon SES console?

현재는 Amazon SES API를 사용해야만 사용자 지정 확인 이메일을 생성, 편집 및 삭제할 수 있습니다.

Q8. Can I track open and click events that occur when customers receive custom verificationemails?

사용자 지정 확인 이메일에는 열기 또는 클릭 추적이 포함될 수 없습니다.

Q9. Can custom verification emails include custom headers?

사용자 지정 확인 이메일에는 사용자 지정 헤더가 포함될 수 없습니다.

Q10. Can I remove the text that appears at the bottom of custom verification emails?

다음 텍스트는 모든 사용자 지정 확인 이메일의 끝 부분에 자동으로 추가되고 제거할 수 없습니다.

If you did not request to verify this email address, please disregard this message. If you have any concerns,please forward this message to the following email address along with your questions or comments.

The email address 이 텍스트의 링크는 [email protected]으로, Amazon SES 팀.

Q11. Are custom verification emails DKIM-signed?

확인 이메일에 DKIM으로 서명하려면 확인 이메일 템플릿을 생성할 때 FromEmailAddress 속성에서 지정하는 이메일 주소가 DKIM 서명을 생성하도록 구성되어야 합니다. 도메인 및 이메일 주소에 대한 DKIM 설정에 대한 자세한 내용은 the section called “DKIM을 사용하여 이메일 인증” (p. 126)을 참조하십시오.

Q12. Why don't the custom verification email template API operations appear in the SDK or CLI?

SDK 또는 AWS CLI에서 사용자 지정 확인 이메일 템플릿 작업을 사용할 수 없는 경우 오래된 버전의 SDK또는 CLI를 사용하고 있는 것일 수 있습니다. 사용자 지정 확인 이메일 템플릿 작업은 다음 SDK 및 CLI에서사용할 수 있습니다.

• Version 1.14.6 or later of the AWS Command Line Interface• Version 3.3.205.0 or later of the .NET용 AWS SDK• Version 1.3.20170531.19 or later of the AWS SDK for C++• Version 1.12.43 or later of the Go용 AWS SDK• Version 1.11.245 or later of the AWS SDK for Java• Version 2.166.0 or later of the AWS SDK for JavaScript• Version 3.45.2 or later of the PHP용 AWS SDK• Version 1.5.1 or later of the AWS SDK for Python (Boto)• Version 1.5.0 or later of the aws-sdk-ses gem in the Ruby용 AWS SDK

Q13. Why do I receive 개개개개개 개개개 errors when I send custom verification emails?

ProductionAccessNotGranted 오류는 계정이 아직 Amazon SES 샌드박스에 있음을 나타냅니다. 계정이 샌드박스에서 제거된 경우에만 사용자 지정 확인 이메일을 보낼 수 있습니다. 자세한 정보는 AmazonSES 샌드박스 환경에서 나가기 (p. 69) 단원을 참조하십시오.

Verifying domains in Amazon SESAmazon SES에서는 이메일 주소 또는 도메인이 본인의 소유인지 확인하도록 하여 다른 사용자의 도용을 방지합니다. 전체 도메인을 확인하면 해당 도메인의 모든 이메일 주소를 확인하게 되므로 해당 도메인

57

Page 66: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

의 이메일 주소를 개별적으로 확인할 필요가 없습니다. 예를 들어 도메인 example.com를 확인하는 경우,[email protected], [email protected] 또는 example.com의 기타 모든 사용자로부터 이메일을 전송할수 있습니다.

Amazon SES 콘솔 또는 Amazon SES API를 사용하여 확인된 도메인을 관리할 수 있습니다. 도메인 확인과 관련된 API 작업에 대한 자세한 설명은 Amazon Simple Email Service API Reference를 참조하십시오.Amazon SES 콘솔을 사용하여 작업을 보여 주는 이 단원에서는 다음 내용을 설명합니다.

• Verifying a domain with Amazon SES (p. 58)• Listing domain identities in Amazon SES (p. 60)• Deleting a domain identity in Amazon SES (p. 61)• Amazon SES domain verification revocation (p. 61)• Amazon SES 도메인 확인 TXT 레코드 (p. 61)

다음은 도메인 확인에 대한 중요 사항입니다.

• Amazon SES has endpoints in multiple AWS regions, and domain verification applies to each AWSregion separately. You must perform the entire domain verification procedure for each region in whichyou want to send from a given domain. If you want to verify the same domain in multiple regions andyour DNS provider does not allow you to have multiple TXT records with the same name, see theworkarounds in Common domain verification problems (p. 445).

• If you verify a domain with Amazon SES, you can send from any subdomain of that domain withoutspecifically verifying the subdomain. For example, if you verify example.com, you do not need to verifya.example.com or a.b.example.com. As specified in RFC 1034, each DNS label can have up to 63characters and the whole domain name must not exceed a total length of 255 characters.

• If you verify a domain, subdomain(s), and/or email address(es) that share a root domain, the verifiedidentity settings (such as feedback notifications and Easy DKIM) apply at the most granular level youverified. That is:• Verified email address settings override verified domain settings.• Verified subdomain settings override verified domain settings, with lower-level subdomain settings

overriding higher-level subdomain settings.

For example, assume you verify [email protected], a.b.example.com, b.example.com, andexample.com. These are the verified identity settings that will be used in the following scenarios:• Emails sent from [email protected] (an address that is not specifically verified) will use the settings

for example.com.• Emails sent from [email protected] (an address that is specifically verified) will use the settings

for [email protected].• Emails sent from [email protected] (an address that is not specifically verified) will use the settings

for b.example.com.• Domain names are case-insensitive. If you verify example.com, you can send from EXAMPLE.com also.• In each AWS Region, you can verify as many as 10,000 identities (domains and email addresses, in any

combination).

Verifying a domain with Amazon SES다음 절차에서는 Amazon SES 콘솔을 사용하여 도메인을 확인하는 방법을 보여 줍니다. 이 방법 대신Amazon SES API를 사용하려면 Amazon Simple Email Service API Reference 단원을 참조하십시오.

Note

이 단원의 절차를 완료하는 대신, Easy DKIM (p. 127)을 사용할 수도 있습니다. Amazon SES가도메인의 DNS 구성에 DKIM 레코드를 추가했음을 감지하면 이 섹션의 절차를 아직 완료하지 않은경우에도 해당 도메인에서 이메일 전송을 시작할 수 있습니다.

58

Page 67: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

도메인을 확인하려면

1. Amazon SES 콘솔에서 확인된 도메인 목록으로 이동하거나 다음 지침을 따라 이동합니다.

a. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.

b. 탐색 창의 [Identity Management] 아래에서 [Domains]를 선택합니다.2. [Verify a New Domain]을 선택합니다.3. [Verify a New Domain] 대화 상자에 도메인 이름을 입력합니다.

Tip

도메인이 www.example.com, 입력 example.com 도메인 역할을 합니다. "www." 부품이 필요하지 않으며 도메인 확인 프로세스가 포함되어 있으면 성공하지 못합니다.

4. 이 도메인에 대해 DKIM 서명을 설정하려면 Generate DKIM Settings(DKIM 설정 생성)을 선택합니다.DKIM 서명에 대한 자세한 내용은 Amazon SES에서 DKIM을 사용하여 이메일 인증 (p. 126) 단원을 참조하십시오.

5. [Verify This Domain]을 선택합니다.6. 에서 새 도메인 확인 대화 상자를 사용하여 도메인 확인 레코드 세트 포함 이름, a 유형, 및 값. (이 정보

는 대화 상자를 닫은 후 도메인 이름을 선택해서도 볼 수 있습니다.)

도메인 확인을 완료하려면 표시된 [Name]과 [Value]가 포함된 TXT 레코드를 도메인의 DNS 서버에 추가합니다. Amazon SES TXT 레코드에 대한 자세한 내용과 DNS 서버에 TXT 레코드를 추가하는 방법에대한 일반 지침은 Amazon SES 도메인 확인 TXT 레코드 (p. 61) 단원을 참조하십시오. 중요 사항:

• If your DNS provider does not allow underscores in record names, you can omit _amazonses fromthe Name.

• To help you easily identify this record within your domain's DNS settings, you can optionally prefixthe Value with amazonses:

• Some DNS providers automatically append the domain name to DNS record names. To avoidduplication of the domain name, you can add a period to the end of the domain name in the DNSrecord. This indicates that the record name is fully qualified and the DNS provider need not appendan additional domain name.

59

Page 68: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

7. 확인하려는 도메인에 대해 Route 53가 DNS 서비스를 제공하는 경우 Route 53에 사용하는 것과 동일한계정으로 AWS Management 콘솔에 로그인했으면 Amazon SES가 Amazon SES 콘솔에서 즉시 DNS서버를 업데이트하는 옵션을 제공합니다.

다른 DNS 공급자를 사용하는 경우 DNS 레코드를 업데이트하는 절차는 사용하는 DNS 또는 웹 호스팅공급자에 따라 달라집니다. 다음 표에 몇몇 일반적인 공급자의 설명서 링크가 나와 있습니다. 이 목록에모든 공급자가 빠짐없이 포함된 것은 아니며, 이 목록에 포함되어 있다고 해서 어떤 회사의 제품 또는 서비스를 승인 또는 추천하는 것은 아닙니다. 공급자가 표에 없으면 Amazon SES를 통해 도메인을 사용할수도 있습니다.

DNS/호스팅 공급자 설명서 링크

GoDaddy Add a TXT record(외부 링크)

Dreamhost 사용자 지정 DNS 레코드를 추가하는 방법(외부링크)

Cloudflare Managing DNS records in CloudFlare(외부 링크)

HostGator HostGator/eNom을 통한 DNS 레코드 관리(외부링크)

Namecheap 도메인에서 TXT/SPF/DKIM/DMARC 레코드를 추가하는 방법(외부 링크)

Names.co.uk 도메인 DNS 설정 변경(외부 링크)

Wix Adding or Updating TXT Records in Your WixAccount(외부 링크)

확인이 완료되면 Amazon SES 콘솔의 도메인 상태가 "확인 보류 중"에서 "확인됨"으로 바뀌고 AmazonSES에서 이메일 알림을 받습니다.

8. 이제 Amazon SES를 사용하여 확인된 도메인의 모든 주소에서 이메일을 보낼 수 있습니다. 테스트 이메일을 보내려면 확인된 도메인 옆의 확인란을 선택한 후 [Send a Test Email]을 선택합니다.

DNS 설정이 올바르게 업데이트되지 않으면 Amazon SES에서 도메인 확인 실패 이메일을 받게 되며Domains(도메인) 탭에서 해당 도메인이 failed 상태로 표시됩니다. 이러한 상황이 발생할 경우 Commondomain verification problems (p. 445) 단원에서 문제 해결 페이지의 단계를 완료하십시오. TXT가 올바르게 작성되었는지 확인한 후 failed 상태 알림 옆의 retry(재시도) 링크를 선택하여 도메인 확인 프로세스를다시 시작하십시오.

Listing domain identities in Amazon SES

확인된 도메인을 보려면 다음과 같이 합니다.

확인된 도메인을 보려면

1. Amazon SES 콘솔에서 확인된 도메인 목록으로 이동하거나 다음 지침을 따라 이동합니다.

a. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.

b. 탐색 창의 [Identity Management] 아래에서 [Domains]를 선택합니다.2. 확인된 도메인 목록에서 하나 이상의 도메인을 확장하여 세부 정보를 볼 수 있습니다.

60

Page 69: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

Deleting a domain identity in Amazon SES확인된 도메인을 제거하려면 아래 절차를 따릅니다.

확인된 도메인을 제거하려면

1. Amazon SES 콘솔에서 확인된 도메인 목록으로 이동하거나 다음 지침을 따라 이동합니다.

a. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.

b. 탐색 창의 [Identity Management] 아래에서 [Domains]를 선택합니다.2. 제거할 각 도메인 옆의 확인란을 선택한 후 [Remove]를 선택합니다.3. 제거된 도메인에서는 더 이상 이메일을 보낼 수 없습니다.

Amazon SES domain verification revocationAmazon SES에서는 도메인 확인 상태를 주기적으로 검토하여 더 이상 유효하지 않을 경우 확인을 취소합니다. Amazon SES에서 도메인의 소유권을 확인하는 데 필요한 TXT 레코드 정보를 확인할 수 없을 경우,Amazon SES로부터 Amazon SES 도메인 확인 철회 경고 이메일을 받게 됩니다.

72시간 이내에 도메인의 DNS 서버에 TXT 레코드 정보를 복원하면 Amazon SES로부터 Amazon SES 도메인 확인 철회 취소 이메일을 받게 됩니다.

Note

다음 지침을 사용하여 Amazon SES 콘솔에서 필요한 TXT 레코드 정보를 검토할 수 있습니다. 탐색창의 [Identity Management] 아래에서 [Domains]를 선택합니다. 도메인 목록에서 해당 도메인을 선택하여 TXT 레코드 이름과 값이 포함된 도메인 확인 설정을 표시합니다.

TXT 레코드 정보를 72시간 이내에 도메인의 DNS 서버에 복원하지 않으면 Amazon SES 도메인 확인 취소이메일 Amazon SES도메인에서 검증 발신자 on the 도메인 탭에서 더 이상 보낼 수 없습니다.

확인이 철회된 도메인을 다시 확인하려면 철회된 도메인이 완전히 새 도메인인 것처럼 처음부터 확인 절차를다시 시작해야 합니다.

Amazon SES 도메인 확인 TXT 레코드도메인은 DNS 공급자를 통해 관리하는 DNS(도메인 이름 시스템) 집합과 연결되어 있습니다. TXT 레코드는도메인에 대한 추가 정보를 제공하는 DNS 레코드 유형입니다. 각 TXT 레코드는 이름과 값으로 구성됩니다.

Amazon SES 콘솔 또는 API를 사용하여 도메인 확인을 시작하면 Amazon SES에서 TXT 레코드에 사용할이름과 값을 제공합니다. 예를 들어, 도메인이 example.com이면 Amazon SES에서 생성하는 TXT 레코드 설정은 다음 예와 같습니다.

Name 유형 Value

_amazonses.example.com TXT pmBGN/7MjnfhTKUZ06Enqq1PeGUaOkw8lGhcfwefcHU=

지정된 이름과 값을 사용하여 도메인의 DNS 서버에 TXT 레코드를 추가합니다. Amazon SES에서 도메인의DNS 설정에 TXT 레코드가 있다는 것을 확인하면 Amazon SES 도메인 확인이 완료됩니다.

Note

일부 DNS에서는 DNS 레코드 이름에 사용자의 도메인 이름을 자동으로 추가합니다. 도메인 이름이중복되지 않도록 하려면 DNS 레코드의 도메인 이름 끝에 마침표(.)를 추가하거나 레코드 이름에서도메인을 생략할 수 있습니다. 자세한 내용은 DNS 공급자의 설명서를 참조하십시오.

DNS 공급자가 DNS 레코드 이름에 밑줄이 포함되지 않도록 허용하는 경우 _아마존 에서 이름. 이 경우앞의 예에서 TXT 레코드 이름은 예제.com 대신 _아마존스.예시.com. 레코드를 보다 쉽게 식별하고 관리

61

Page 70: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying identities

하기 위해 [Value]에 amazonses: 접두사를 붙일 수 있습니다. 이 경우 이전의 예에서 TXT 레코드의 값은amazonses:pmBGN/7MjnfhTKUZ06Enqq1PeGUaOkw8lGhcfwefcHU=가 됩니다.

Note

이전에는 Amazon SES에서 TXT 레코드 이름에 밑줄 없이 amazonses를 포함시키는 것을 허용했습니다. 도메인을 이미 확인했으며 TXT 레코드에 밑줄 없이 amazonses가 포함되어 있는 경우, 도메인은 계속 확인되며 따로 작업을 수행할 필요가 없습니다. 그러나 새로 확인하는 도메인마다 TXT레코드 이름의 amazonses 앞에 밑줄을 사용하거나 TXT 레코드 이름에서 _amazonses 전체를 삭제하도록 요구할 것입니다.

도메인 확인 설정을 확인하는 방법에 대한 문제 해결 정보와 지침은 Common domain verificationproblems (p. 445)에서 찾아볼 수 있습니다.

도메인의 DNS 서버에 TXT 레코드 추가

도메인의 DNS 서버에 TXT 레코드를 추가하는 절차는 DNS 서비스를 제공하는 대상에 따라 다릅니다. DNS공급자가 Amazon Route 53이거나 GoDaddy와 같은 다른 도메인 이름 등록자일 수 있습니다. 이 단원에서는Route 53에 TXT 레코드를 추가하는 절차와 다른 DNS 공급자에게 적용되는 일반 절차를 제공합니다.

Amazon Route 53의 절차

Amazon SES와 함께 사용할 새 도메인을 확인하는 과정 (p. 58)을 시작할 때 Route 53 구성에 도메인 확인 TXT 레코드를 자동으로 추가할 수 있습니다. 그러나 TXT 레코드를 자동으로 추가하는 옵션을 선택하지않을 경우에는 이 섹션의 절차를 완료해 Route 53 구성에 수동으로 TXT 레코드를 추가할 수 있습니다.

Route 53 관리형 도메인의 DNS 레코드에 TXT 레코드를 추가하려면

1. https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.2. Identity Management(자격 증명 관리)에서 Domains(도메인)를 선택합니다.3. 확인할 도메인을 선택합니다.4. [Verification] 섹션을 확장합니다. [TXT Value] 옆에 표시된 값을 복사합니다.5. https://console.aws.amazon.com/route53/에서 Route 53 콘솔을 엽니다.6. 탐색 창에서 [Hosted zones]를 선택합니다.7. TXT 레코드를 에 추가할 도메인을 선택합니다.8. 선택 레코드 생성.9. 대상 라우팅 정책, 선택 간단한 라우팅을 클릭한 다음, 다음.10. 선택 단순 레코드 정의.11. 에서 단순 레코드 정의 창에서 다음을 수행합니다.

a. 대상 레코드 이름, 입력 _amazonses.b. 대상 트래픽 값/경로, 선택 레코드 유형에 따라 IP 주소 또는 다른 값. 그런 다음 텍스트 영역에 복사

한 TXT 레코드 값을 붙여넣습니다. Amazon SES 콘솔.c. 대상 레코드 유형, 선택 티엑스티.d. 대상 TTL(초), 유형 1800.e. 선택 단순 레코드 정의.

12. 기록이 제안될 때까지 약 30분간 기다립니다. 그런 다음, 도메인 페이지의 Amazon SES 콘솔, 의 값을 확인하십시오. 상태 열 옆에 있습니다. 상태가 "확인 보류 중"이면 30분 정도 기다린 다음 새로 고침( 상태 열의 값이 "verified(확인됨)"가 될 때까지 이 과정을 반복합니다.

다른 DNS 공급자를 위한 일반 절차

DNS 구성에 TXT 레코드를 추가하는 절차는 공급자마다 다릅니다. 구체적인 단계는 DNS 공급자의 설명서를 확인하십시오. 이 섹션의 절차는 도메인의 DNS 구성에 TXT 레코드를 추가할 때 따라야 할 단계의 기본개요를 제공합니다.

62

Page 71: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Getting your AWS access keys

도메인의 DNS 서버에 TXT 레코드를 추가하려면(일반 절차)

1. DNS 공급자의 관리 콘솔로 이동하여 계정에 로그인합니다.2. 도메인의 DNS 레코드를 업데이트하는 페이지를 찾습니다. 이 페이지에는 다음 예 중 하나와 유사한 이

름이 있을 수 있습니다. DNS 레코드, DNS 영역 파일, 또는 고급 DNS. 자세한 내용은 DNS 공급자가 제공하는 설명서를 참조하십시오.

3. Amazon SES에서 제공한 이름과 값이 포함된 TXT 레코드를 추가합니다.

Important

일부 DNS 공급자(예: GoDaddy)는 DNS 레코드의 끝에 도메인 이름을 자동으로 추가합니다.도메인 이름(예: _amazonses.example.com)을 이미 포함하고 있는 레코드를 추가하면 도메인이름이 중복될 수 있습니다(예: _amazonses.example.com.example.com). 도메인 이름이 중복되지 않도록 하려면 DNS 레코드의 도메인 이름 끝에 마침표를 추가하거나 단지 레코드 이름에서 도메인을 생략합니다. 자세한 내용은 DNS 공급자가 제공하는 설명서를 참조하십시오.

4. 변경 내용을 저장합니다. DNS 레코드 업데이트가 적용되려면 최대 48시간이 걸릴 수 있지만, 대개는 이보다 훨씬 더 빨리 적용됩니다. Checking domain verification settings (p. 446)의 절차를 사용하여 TXT레코드가 올바르게 게시되었는지 확인할 수 있습니다.

Getting your AWS access keysAmazon SES에 등록한 후 Amazon SES API를 통해 Amazon SES에 액세스하려면 쿼리(HTTPS) 인터페이스를 사용하여 직접적으로 또는 AWS SDK, AWS Command Line Interface 또는 Windows PowerShell용AWS 도구 등을 통해 간접적으로 AWS 액세스 키를 받아야 합니다. AWS 액세스 키는 액세스 키 ID와 보안액세스 키로 구성되어 있습니다.

에서 사용할 수 있는 보안 키의 유형에 대한 자세한 내용은 Amazon SES, 참조: Types of Amazon SEScredentials (p. 16). 획득에 대한 정보 AWS 액세스 키, 참조 AWS 보안 자격 증명 in the AWS GeneralReference.

AWS SDK 다운로드원시 HTTP 요청 수집과 같은 하위 수준의 세부 정보를 처리하지 않고 Amazon SES API를 호출하려는 경우AWS SDK를 사용할 수 있습니다. AWS SDK는 Amazon SES 및 여러 AWS 서비스의 기능을 캡슐화하는 함수 및 데이터 형식을 제공합니다. AWS SDK를 다운로드하려면 SDK로 이동합니다.

이 안내서의 시작하기 단원에서는 다양한 프로그래밍 언어용 AWS SDK를 사용하여 이메일을 보내는 방법에 대한 예를 제공합니다. 자세한 내용은 Send an email through Amazon SES using an AWSSDK (p. 29)을 참조하십시오.

Setting up a custom MAIL FROM domain이메일을 전송하는 경우 해당 출처를 나타내는 두 개의 주소가 있습니다. 즉, 메시지 수신자에게 표시되는From 주소와 메시지가 발생한 위치를 나타내는 MAIL FROM 주소입니다. 우편 주소는 때때로 envelopesender, envelope from, bounce address, 또는 Return Path 주소. 메일 서버는 MAIL FROM 주소를 사용하여반송 메시지 및 기타 오류 알림을 반환합니다. MAIL FROM 주소는 일반적으로 수신자가 메시지의 소스 코드를 표시할 경우에만 볼 수 있습니다.

자체 도메인을 지정하지 않으면 Amazon SES는 기본값으로 보내는 메시지에 대해 MAIL FROM 도메인을 설정합니다. 이 단원에서는 사용자 지정 MAIL FROM 도메인 설정의 이점에 대해 설명하고 설정 절차를 안내합니다.

63

Page 72: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up a custom MAIL FROM domain

Why use a custom MAIL FROM domain?기본적으로 보낸 메시지는 Amazon SES 하위 도메인 사용 amazonses.com 도메인 에서 MAIL(메일)로 이동합니다. 기본 MAIL FROM 도메인은 이메일을 전송한 애플리케이션—(이 경우 Amazon SES)과 일치하므로Sender Policy Framework(SPF) 인증은 이 메시지를 성공적으로 검증합니다.

대부분의 발신자에게 이 인증 수준이면 충분하지만, 일부 발신자의 경우 MAIL FROM 도메인을 소유하고 있는 도메인으로 설정하는 것을 선호합니다. 사용자 지정 MAIL FROM 도메인을 설정하면 이메일이 Domain-based Message Authentication, Reporting and Conformance(DMARC) (p. 138)를 준수할 수 있습니다.DMARC를 통해 발신자의 도메인은 해당 도메인에서 발송된 이메일이 하나 이상의 인증 시스템에 의해 보호되고 있음을 나타낼 수 있습니다.

DMARC 검증은 Sender Policy Framework (p. 125)(SPF) 및 DomainKeys Identified Mail (p. 126)(DKIM)을 사용하는 두 가지 방법을 이용해 수행할 수 있습니다. SPF 검증을 위해서는 From 주소의 도메인이 MAILFROM 도메인과 일치해야 하므로 SPF를 통해 DMARC를 준수하는 유일한 방법은 사용자 지정 MAIL FROM을 사용하는 것입니다. 사용자의 고유한 MAIL FROM 도메인을 사용하면 SPF, DKIM 또는 두 가지를 모두 사용하여 유연하게 DMARC 검증을 수행할 수 있습니다.

Choosing a MAIL FROM domainMAIL FROM 도메인에 사용하는 하위 도메인은 다음 요구 사항을 충족해야 합니다.

• The MAIL FROM domain has to be a subdomain of the verified identity (email address or domain) thatyou send email from. For example, mail.example.com is a valid MAIL FROM domain for the domainexample.com.

• The MAIL FROM domain shouldn't be a domain that you send email from. If you have to use the MAILFROM domain in a From address, either disable email feedback forwarding (p. 249) and receiveyour bounces through Amazon SNS notifications, or ensure that your MAIL FROM domain is not thedestination for feedback forwarding. To determine the destination of email forwarding feedback, seeEmail feedback forwarding destination (p. 250).

• The MAIL FROM domain shouldn't be a domain that you use to receive email.

Configuring the MAIL FROM domain사용자 지정 MAIL FROM 도메인을 설정하는 과정에서 도메인의 DNS 구성에 레코드를 추가해야 합니다. 이메일 공급자가 사용자에게 보낸 반송 및 수신 거부 알림을 도메인에서 받을 수 있도록 MX 레코드를 게시해야 합니다. 또한 Amazon SES가 도메인에서 이메일을 보낼 권한이 부여되었음을 증명하기 위해 SPF 레코드를 게시해야 합니다.

전체 도메인 또는 개별 이메일 주소에 사용자 정의 MAIL FROM 도메인을 설정할 수 있습니다. 다음 절차는 Amazon SES 콘솔을 사용하여 사용자 지정 MAIL FROM 도메인을 구성하는 방법을 보여줍니다. 또한SetIdentityMailFromDomain API 작업을 사용하여 사용자 지정 MAIL FROM 도메인을 구성할 수도 있습니다.

Setting Up a MAIL FROM Domain for a Verified Domain

전체 도메인에 MAIL FROM 도메인을 구성할 수 있습니다. 이렇게 하면 사용자가 해당 도메인의 주소에서 발송하는 모든 메시지가 동일한 MAIL FROM 도메인을 사용합니다.

확인된 도메인이 지정된 MAIL FROM 도메인을 사용하도록 구성하려면,

1. https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.2. 탐색 창의 [Identity Management] 아래에서 [Domains]를 선택합니다.3. 도메인 목록에서 MAIL FROM 도메인의 상위 도메인이 확인되었는지 확인합니다. 도메인이 확인되지 않

으면 Verifying domains in Amazon SES (p. 57)에서 절차를 완료하여 도메인을 확인합니다. 그렇지않은 경우 해당 도메인을 선택하고 다음 단계로 진행합니다.

4. [MAIL FROM Domain]에서 [Set MAIL FROM Domain]을 선택합니다.

64

Page 73: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up a custom MAIL FROM domain

5. [Set MAIL FROM Domain] 창에서 다음을 수행합니다.

a. [MAIL FROM domain]에 MAIL FROM 도메인으로 사용할 하위 도메인을 입력합니다.b. [Behavior if MX record not found]에서 다음 옵션 중 하나를 선택합니다.

• Use region.amazonses.com as MAIL FROM – If the custom MAIL FROM domain's MX recordis not set up correctly, Amazon SES will use a subdomain of amazonses.com. The subdomainvaries based on the AWS Region in which you use Amazon SES.

• Reject message – If the custom MAIL FROM domain's MX record is not set up correctly,Amazon SES will return a MailFromDomainNotVerified error. Emails that you attempt tosend from this domain will be automatically rejected.

c. [Set MAIL FROM Domain]을 선택합니다. 도메인의 DNS 구성에 추가해야 하는 MX 및 SPF 레코드가 포함된 창이 나타납니다. 이 레코드는 다음 표에 표시된 형식을 사용합니다.

Name 유형 Value

subdomain.domain.com MX 10 피드백-smtp.region.amazonses.com

subdomain.domain.com TXT "v=spf1include:amazonses.com -all"

이전 기록에서, 교체 subdomain.domain.com 서브도메인에서 MAIL(메일)을 사용하여 region이름 AWS MAIL FROM 도메인을 확인하려는 지역(예: us-west-2, us-east-1, 또는 eu-west-1) ). TXT 레코드의 값에는 인용 부호를 포함해야 합니다.

이러한 값을 적어 둔 후 다음 단계로 진행합니다.6. 사용자 지정 MAIL FROM 도메인의 DNS 서버에 MX 레코드를 게시합니다.

Important

Amazon SES를 이용해 사용자 지정 MAIL FROM 도메인을 설정하려면 MAIL FROM 도메인의DNS 서버에 정확히 하나의 MX 레코드를 게시해야 합니다. MAIL FROM 도메인에 MX 레코드가 여러 개인 경우 Amazon SES를 사용한 사용자 지정 MAIL FROM 설정이 실패합니다.

Route 53이 MAIL FROM 도메인에 대한 DNS 서비스를 제공하고 Route 53에 사용하는 것과 동일한 계정으로 AWS Management 콘솔에 로그인한 경우 Publish Records Using Route 53(Route 53을 사용하여 레코드 게시)을 선택합니다. DNS 레코드가 도메인의 DNS 구성에 자동으로 적용됩니다.

다른 DNS 공급자를 사용하는 경우, MAIL FROM 도메인의 DNS 서버에 DNS 레코드를 수동으로 게시해야 합니다. 도메인의 DNS 서버에 DNS 레코드를 추가하는 절차는 웹 호스팅 서비스 또는 DNS 공급자에따라 다릅니다.

도메인의 DNS 레코드를 게시하는 절차는 이용하는 DNS 공급자에 따라 다릅니다. 다음 표에는 몇몇 공통 DNS 공급자의 설명서에 대한 링크가 포함되어 있습니다. 이것이 공급자의 전체 목록은 아닙니다. 공급자가 아래 목록에 없더라도 여전히 MAIL FROM 도메인을 설정할 수 있습니다. 이 목록에 포함되어 있다고 해서 어떤 회사의 제품 또는 서비스를 승인 또는 추천하는 것은 아닙니다.

DNS/호스팅 공급자 이름 설명서 링크

GoDaddy • MX: Add an MX record (external link)• TXT: Add a TXT record (external link)

DreamHost • MX: How do I change my MX records?(external link)

65

Page 74: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up a custom MAIL FROM domain

DNS/호스팅 공급자 이름 설명서 링크• TXT: How do I add custom DNS records?

(external link)

Cloudflare • MX: How do I add or edit mail or MX records? (external link)

• TXT: Managing DNS records in CloudFlare(external link)

HostGator • MX: Changing MX records - Windows (externallink)

• TXT: Manage DNS Records with HostGator/eNom (external link)

Namecheap • MX: How can I set up MX records required formail service? (external link)

• TXT: How do I add TXT/SPF/DKIM/DMARCrecords for my domain? (external link)

Names.co.uk • MX: Changing your domain's DNS settings(external link)

• TXT: Changing your domains DNS Settings(external link)

Wix • MX: Adding or Updating MX Records in YourWix Account (external link)

• TXT: Adding or Updating TXT Records in YourWix Account (external link)

레코드가 있음을 Amazon SES가 감지하면 사용자 지정 MAIL FROM 도메인이 성공적으로 설정되었음을 알리는 이메일을 받습니다. DNS 공급자에 따라 Amazon SES가 MX 레코드를 감지하기까지 최대 72시간이 지연될 수도 있습니다.

Setting Up a MAIL FROM Domain for a Verified Email Address

또한 특정 이메일 주소에 사용자 지정 MAIL FROM 도메인을 설정할 수도 있습니다. 이메일 주소에 사용자지정 MAIL FROM 도메인을 설정하려면 이메일 주소가 연결된 도메인의 DNS 레코드를 수정할 수 있어야 합니다.

Note

사용자가 소유하지 않는 도메인의 주소에 대한 사용자 지정 MAIL FROM 도메인을 설정할 수 없습니다(예: 사용자 정의 MAIL FROM 도메인만을 만들 수 없습니다. gmail.com 도메인에 필요한 DNS레코드를 추가할 수 없습니다.

확인된 이메일 주소가 지정된 MAIL FROM 도메인을 사용하도록 구성하려면,

1. https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.2. 탐색 창의 [Identity Management] 아래에서 [Email Addresses]를 선택합니다.3. 이메일 주소 목록에서 사용자 지정 MAIL FROM 도메인을 설정할 이메일 주소가 확인되었는지 검사합니

다. 이메일 주소가 확인되지 않으면 Verifying email addresses in Amazon SES (p. 46)에서 절차를 완료하여 이메일 주소를 확인합니다. 그렇지 않은 경우 해당 이메일 주소를 선택하고 다음 단계로 진행합니다.

4. [MAIL FROM Domain]에서 [Set MAIL FROM Domain]을 선택합니다.5. [Set MAIL FROM Domain] 창에서 다음을 수행합니다.

66

Page 75: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up a custom MAIL FROM domain

a. [MAIL FROM domain]에 MAIL FROM 도메인으로 사용할 하위 도메인을 입력합니다.b. [Behavior if MX record not found]에서 다음 옵션 중 하나를 선택합니다.

• Use region.amazonses.com as MAIL FROM – If the custom MAIL FROM domain's MX recordis not set up correctly, Amazon SES will use a subdomain of amazonses.com. The subdomainvaries based on the AWS Region that you use Amazon SES in.

• Reject message – If the custom MAIL FROM domain's MX record is not set up correctly,Amazon SES will return a MailFromDomainNotVerified error. Emails that you attempt tosend from this email address will be automatically rejected.

c. [Set MAIL FROM Domain]을 선택합니다. 이메일 주소가 속해 있는 도메인의 DNS 구성에 추가해야하는 MX 및 SPF 레코드가 포함된 창이 나타납니다. 이 레코드는 다음 표에 표시된 형식을 사용합니다.

Name 유형 Value

subdomain.domain.com MX 10 피드백-smtp.region.amazonses.com

subdomain.domain.com TXT "v=spf1include:amazonses.com -all"

이전 기록에서, 교체 subdomain.domain.com 서브도메인에서 MAIL(메일)을 사용하여 region이름 AWS MAIL FROM 도메인을 확인하려는 지역(예: us-west-2, us-east-1, 또는 eu-west-1) ). TXT 레코드의 값에는 인용 부호를 포함해야 합니다.

이러한 값을 적어 둔 후 다음 단계로 진행합니다.6. DNS 레코드를 사용자 지정 MAIL FROM 도메인의 DNS 서버에 게시합니다.

Important

Amazon SES를 이용해 사용자 지정 MAIL FROM 도메인을 설정하려면 MAIL FROM 도메인의DNS 서버에 정확히 하나의 MX 레코드를 게시해야 합니다. MAIL FROM 도메인에 MX 레코드가 여러 개인 경우 Amazon SES를 사용한 사용자 지정 MAIL FROM 설정이 실패합니다.

Route 53이 MAIL FROM 도메인에 대한 DNS 서비스를 제공하고 Route 53에 사용하는 것과 동일한 계정으로 AWS Management 콘솔에 로그인한 경우 Publish Records Using Route 53(Route 53을 사용하여 레코드 게시)을 선택합니다. DNS 레코드가 도메인의 DNS 구성에 자동으로 적용됩니다.

다른 DNS 공급자를 사용하는 경우, MAIL FROM 도메인의 DNS 서버에 DNS 레코드를 수동으로 게시해야 합니다. 도메인의 DNS 서버에 DNS 레코드를 추가하는 절차는 웹 호스팅 서비스 또는 DNS 공급자에따라 다릅니다.

도메인의 DNS 레코드를 게시하는 절차는 이용하는 DNS 공급자에 따라 다릅니다. 다음 표에는 몇몇 공통 DNS 공급자의 설명서에 대한 링크가 포함되어 있습니다. 이것이 공급자의 전체 목록은 아닙니다. 공급자가 아래 목록에 없더라도 여전히 MAIL FROM 도메인을 설정할 수 있습니다. 이 목록에 포함되어 있다고 해서 어떤 회사의 제품 또는 서비스를 승인 또는 추천하는 것은 아닙니다.

DNS/호스팅 공급자 이름 설명서 링크

GoDaddy • MX: Add an MX record (external link)• TXT: Add a TXT record (external link)

DreamHost • MX: How do I change my MX records?(external link)

67

Page 76: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up a custom MAIL FROM domain

DNS/호스팅 공급자 이름 설명서 링크• TXT: How do I add custom DNS records?

(external link)

Cloudflare • MX: How do I add or edit mail or MX records? (external link)

• TXT: Managing DNS records in CloudFlare(external link)

HostGator • MX: Changing MX records - Windows (externallink)

• TXT: Manage DNS Records with HostGator/eNom (external link)

Namecheap • MX: How can I set up MX records required formail service? (external link)

• TXT: How do I add TXT/SPF/DKIM/DMARCrecords for my domain? (external link)

Names.co.uk • MX: Changing your domain's DNS settings(external link)

• TXT: Changing your domains DNS Settings(external link)

Wix • MX: Adding or Updating MX Records in YourWix Account (external link)

• TXT: Adding or Updating TXT Records in YourWix Account (external link)

레코드가 있음을 Amazon SES가 감지하면 사용자 지정 MAIL FROM 도메인이 성공적으로 설정되었음을 알리는 이메일을 받습니다. DNS 공급자에 따라 Amazon SES가 MX 레코드를 감지하기까지 최대 72시간이 지연될 수도 있습니다.

MAIL FROM domain setup states with Amazon SES사용자 지정 MAIL FROM 도메인을 사용하도록 자격 증명을 구성한 후 Amazon SES가 DNS 설정에 필요한MX 레코드 감지를 시도하는 동안 설정 상태는 "대기 중"입니다. Amazon SES가 MX 레코드를 감지하는지에따라 상태가 변경됩니다. 다음 표에서는 이메일 전송 동작 및 각각의 상태에 연결된 Amazon SES 작업을 설명합니다. 상태가 변경될 때마다 Amazon SES가 사용자의 AWS 계정에 연결된 이메일 주소로 알림을 보냅니다.

상태 이메일 전송 동작 Amazon SES 작업

대기 중 사용자 지정 MAIL FROM 대체 설정 사용 Amazon SES가 72시간 동안 필요한MX 레코드 감지를시도합니다. 찾지못한 경우 상태가"Failed"로 변경됩니다.

성공 사용자 지정 MAIL FROM 도메인 사용 필요한 MX 레코드가 있는지 Amazon

68

Page 77: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up SPF records

상태 이메일 전송 동작 Amazon SES 작업SES가 지속적으로검사합니다.

일시적인 오류 사용자 지정 MAIL FROM 대체 설정 사용 Amazon SES가 72시간 동안 필요한MX 레코드 감지를시도합니다. 찾기에 실패하면 상태가"Failed"로 변경되고 찾기에 성공하면"Success"로 변경됩니다.

[Failed] 사용자 지정 MAIL FROM 대체 설정 사용 Amazon SES가더 이상 필요한MX 레코드 감지를 시도하지 않습니다. 사용자 지정 MAIL FROM도메인을 사용하려면 Configuringthe MAIL FROMdomain (p. 64)에서 설정 프로세스를다시 시작해야 합니다.

Setting up SPF records for Amazon SESSPF 레코드는 ISP에 Amazon SES가 사용자 도메인으로 메일을 보내도록 허가 받았음을 표시합니다.Amazon SES를 사용하는 경우 이메일이 수신 메일 서버의 SPF 검사만 통과하도록 할지 아니면 SPF를 기반으로 Domain-based Message Authentication, Reporting and Conformance(DMARC) 인증을 통과하는데 필요한 추가 요구사항을 준수하도록 할지에 따라 SPF 레코드의 게시 여부가 결정됩니다. 자세한 정보는Authenticating Email with SPF in Amazon SES (p. 125) 단원을 참조하십시오.

Getting your SMTP credentials for Amazon SESAmazon SES SMTP 인터페이스를 사용하려면 먼저 SMTP 사용자 이름과 암호를 만들어야 합니다. SMTP자격 증명을 가져오려면 Obtaining your Amazon SES SMTP credentials (p. 84) 단원을 참조하십시오.

Important

SMTP 사용자 이름과 암호는 AWS 액세스 키 ID 및 보안 액세스 키와 동일하지 않습니다. AWS 자격 증명을 사용하여 Amazon SES SMTP 엔드포인트에 인증하지 마십시오. 자격 증명에 대한 자세한 내용은 Types of Amazon SES credentials (p. 16)을 참조하십시오.

Amazon SES 샌드박스 환경에서 나가기도용 및 침해를 방지하고 발신자의 평판을 보호하기 위해 신규 Amazon SES 계정에 대해 특정 제한을 적용합니다.

모든 신규 계정은 Amazon SES 샌드박스로 배치됩니다. 계정이 샌드박스에 배치된 동안에는 Amazon SES의 모든 기능을 사용할 수 있습니다. 하지만 계정이 샌드박스에 있을 때는 다음과 같은 제한이 계정에 적용됩니다.

69

Page 78: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드샌드박스 환경에서 나가기

• 확인된 이메일 주소 및 도메인으로만 또는 Amazon SES 메일박스 시뮬레이터 (p. 175)로만 메일을 전송할 수 있습니다.

• 확인된 이메일 주소 및 도메인에서만 메일을 보낼 수 있습니다.

Note

이 제한은 계정이 샌드박스에 없는 경우에도 적용됩니다.• 24시간 동안 최대 200개의 메시지를 보낼 수 있습니다.• 초당 최대 1개의 메시지를 보낼 수 있습니다.

계정이 샌드박스 외부에 있는 경우 수신자의 주소 또는 도메인이 확인되었는지 여부와 상관 없이 모든 수신자에게 이메일을 보낼 수 있습니다. 하지만 "보내는 사람", "소스", "발신자" 또는 "반송 경로" 주소로 사용하는모든 ID는 계속 확인해야 합니다.

샌드박스에서 계정을 삭제해 줄 것을 요청하려면 이 단원의 절차를 수행합니다.

Note

Amazon SES를 사용하여 Amazon EC2 인스턴스에서 이메일을 보내는 경우 Amazon EC2 인스턴스의 포트 25에서 병목 현상을 제거하도록 요청해야 할 수도 있습니다. 자세한 내용은 AWS 지식 센터의 내 EC2 인스턴스에서 포트 25에 대한 제한을 제거하려면 어떻게 해야 합니까?를 참조하십시오.

귀하의 계정을 Amazon SES 샌드박스 사용 AWS Management 콘솔

1. https://console.aws.amazon.com/에서 AWS Management 콘솔에 로그인합니다.2. 탐색 창의 Email Sending(이메일 전송) 아래에서 Sending Statistics(통계 전송)를 선택합니다.3. 대상 계정 세부 정보, 선택 계정 세부 정보 편집를 참조하십시오.

70

Page 79: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드샌드박스 환경에서 나가기

4. 계정 세부 정보 모달에서 다음 계정 세부 정보를 입력합니다.

71

Page 80: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드샌드박스 환경에서 나가기

• 대상 프로덕션 액세스 활성화, 선택 예 또는 아니요. Sandbox 밖으로 이동하려면 예.• Mail Type(메일 유형)에서 전송하려는 이메일의 유형을 선택합니다. 1개 이상의 값이 해당될 경우, 전

송하려는 대부분의 이메일에 적용되는 옵션을 선택하십시오.

72

Page 81: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드샌드박스 환경에서 나가기

• Website URL(웹 사이트 URL)에서 웹 사이트의 URL을 입력합니다. 이 정보를 제공하면 보내려는 콘텐츠 유형을 지원 센터에서 쉽게 파악할 수 있습니다.

• 대상 사용 사례 설명, 사용 방법을 설명할 계획을 세웠습니다. Amazon SES 을 클릭하여 이메일을 보냅니다. 지원 센터에서 요청을 처리할 수 있도록 다음 질문에 답해 주시기 바랍니다.• 메일 발송 목록을 어떻게 작성하거나 만들 계획인가요?• 반송 메일과 수신 거부를 어떻게 처리할 계획인가요?• 수신자가 귀하가 보내는 이메일을 수신 거부하는 방법은 무엇입니까?• 이 요청에서 귀하가 지정한 송신률 또는 발신 할당량을 어떻게 선택하셨습니까?

5. 대상 추가 연락처 주소, 계정에 대한 통신문을 받고자 하는 위치를 알려주십시오. 최대 4개의 이메일 주소로 쉼표로 구분된 목록일 수 있습니다.

6. 대상 선호하는 연락처 언어에서 이 케이스에 대한 통신 수신 여부를 선택하십시오. 영어 또는 일본어.7. 완료되면 검토를 위해 제출.

Note

계정 세부 정보에 대한 검토를 제출한 후에는 검토가 완료될 때까지 세부 정보를 편집할 수 없습니다.

를 사용하여 생산 액세스 요청을 제출하는 대신 AWS Management 콘솔, 대신 다음을 사용하여 요청을 제출할 수 있습니다. AWS CLI. 을(를) 사용하여 요청 제출 AWS CLI 는 많은 수의 ID에 대한 생산 액세스를 요청하거나 설정 프로세스를 자동화하려는 경우에 유용합니다. Amazon SES.

귀하의 계정을 Amazon SES 샌드박스 사용 AWS CLI

Note

이 단원의 절차를 완료하기 전에 먼저 AWS CLI를 설치하고 구성해야 합니다. 자세한 정보는 AWSCommand Line Interface 사용 설명서를 참조하십시오.

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

aws sesv2 put-account-details \--production-access-enabled \--mail-type TRANSACTIONAL \--website-url https://example.com \--use-case-description "Use case description" \--additional-contact-email-addresses [email protected] \--contact-language EN

위의 명령에서 다음을 수행합니다.

• Replace TRANSACTIONAL 이메일의 종류와 Amazon SES. 다음 중 하나를 지정할 수 있습니다.TRANSACTIONAL 또는 PROMOTIONAL. 둘 이상의 값이 적용되는 경우 을 보낼 전자 메일의 대부분에적용되는 옵션을 지정합니다.

• Replace https://example.com 웹 사이트의 URL을 사용하여 이 정보를 제공하면 보내려는 콘텐츠 유형을 지원 센터에서 쉽게 파악할 수 있습니다.

• Replace Use case description 사용 방법에 대한 설명과 함께 Amazon SES 을 클릭하여 이메일을 보냅니다. 지원 센터에서 요청을 처리할 수 있도록 다음 질문에 답해 주시기 바랍니다.• 메일 발송 목록을 어떻게 작성하거나 만들 계획인가요?• 반송 메일과 수신 거부를 어떻게 처리할 계획인가요?• 수신자가 귀하가 보내는 이메일을 수신 거부하는 방법은 무엇입니까?• 이 요청에서 귀하가 지정한 송신률 또는 발신 할당량을 어떻게 선택하셨습니까?

• Replace [email protected] 계정에 대한 통신문을 받고자 하는 이메일 주소를 포함하는 이메일. 최대 4개의 이메일 주소로 쉼표로 구분된 목록일 수 있습니다.

73

Page 82: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드샌드박스 환경에서 나가기

• Replace EN 을(를) 사용할 수 있습니다. 다음을 지정할 수 있습니다. EN 영어 또는 JP 일본어.

Note

계정 세부 정보에 대한 검토를 제출한 후에는 검토가 완료될 때까지 세부 정보를 편집할 수 없습니다.

AWS Support 팀은 24시간 이내에 요청에 대한 초기 응답을 제공합니다.

시스템이 원치 않는 콘텐츠 또는 악성 콘텐츠를 전송하지 않도록 하기 위해 각 요청을 신중하게 고려해야 합니다. 가능한 경우 이 24시간 이내에 요청에 대한 권한을 부여합니다. 그러나 사용자의 추가 정보가 필요한경우 요청을 해결하는 데 시간이 오래 걸릴 수도 있습니다.

AWS 정책에 맞지 않는 사용 사례인 경우, 요청에 대한 권한을 부여하지 않을 수도 있습니다.

계정에 대한 샌드박스 상태 확인Amazon SES 콘솔을 사용해 계정이 아직 샌드박스 내에 있는지 확인할 수 있습니다.

계정이 샌드박스 내에 있는지 확인하려면

1. https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.2. 탐색 창의 Email Sending(이메일 전송) 아래에서 Sending Statistics(통계 전송)를 선택합니다.3. 미만 계정 세부 정보님, 계정 상태가 표시됩니다.

계정이 아직 검토 중인 경우 배너에 계정이 검토 중인 것으로 표시됩니다. 귀하의 생산 액세스 상태는 여전히 다음으로 표시됩니다. 샌드박스.

또한 배너는 샌드박스에서 이동하라는 요청이 거부되거나 실패한 경우 계정의 상태를 반영합니다.

74

Page 83: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Configuring custom open and click domains

Sandbox에서 이동하라는 요청이 승인되면 생산 액세스 상태는 다음으로 표시됩니다. 활성화됨. 이 상태는 계정이 현재 지역의 샌드박스에 더 이상 없음을 의미합니다.

또한 확인하지 못한 주소로 이메일을 보내 계정이 샌드박스 내에 있는지 여부를 확인할 수도 있습니다. 계정이 샌드박스 내에 있는 경우 대상 주소가 확인되지 않았다는 오류 메시지가 표시됩니다.

Configuring custom domains to handle open and clicktracking이벤트 게시 (p. 269) 기능을 사용하여 열기 및 클릭 이벤트를 캡쳐할 때 Amazon SES는 전송하는 이메일을 약간 변경합니다. 열기 이벤트를 캡처하기 위해 Amazon SES는 각 이메일 하단에 1 x 1픽셀 크기의 투명한 이미지를 추가합니다. 이 이미지는 각 이메일에 대해 고유한 파일 이름을 가지며 Amazon SES가 운영하는 서버에서 호스팅됩니다. 링크 클릭 이벤트를 캡처하기 위해 Amazon SES는 이메일의 링크를 AmazonSES에서 운영하는 서버에 대한 링크로 대체합니다. 이렇게 하면 수신자를 원하는 대상으로 즉시 리디렉션합니다. 일부 Amazon SES 고객은 Amazon SES가 소유하고 운영하는 도메인이 아닌 자체 도메인을 사용하여수신자에게 더 응집력 있는 경험을 제공하려고 할 수 있습니다.

확인 및 클릭 추적 이벤트를 처리하기 위해 여러 사용자 지정 도메인을 구성할 수 있습니다. 이 사용자 지정도메인은 구성 세트와 연결됩니다. 구성 세트를 사용하여 이메일을 보낼 때 해당 구성 세트가 사용자 지정 도메인을 사용하도록 구성된 경우, 해당 이메일의 링크를 확인하거나 클릭하면 해당 구성 세트에 지정된 사용자 지정 도메인이 자동으로 사용됩니다.

이 단원에는 Amazon SES에서 운영하는 열기 및 클릭 추적 서버로 사용자를 자동 리디렉션하기 위해 자체소유한 서버에 하위 도메인을 설정하는 절차가 포함되어 있습니다. 이러한 도메인을 설정하기 위해서는 두가지 단계가 필요합니다. 먼저 하위 도메인 자체를 구성한 다음 사용자 지정 도메인을 사용하도록 구성 세트를 설정합니다. 이 주제에는 이러한 두 단계를 완료하는 절차가 포함되어 있습니다.

75

Page 84: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Configuring custom open and click domains

Part 1: Setting up a domain for handling open and click linkredirects리디렉션 도메인을 설정하는 데 대한 특정 절차는 웹 호스팅 공급자(및 HTTPS 서버를 사용하는 경우 콘텐츠전송 네트워크)에 따라 다릅니다. 다음 단원의 절차는 특정 단계가 아닌 일반적인 지침을 제공합니다.

Option 1: Configuring an HTTP domainHTTP 도메인을 사용하여 링크 열기 및 클릭을 처리하려는 경우(HTTPS 도메인과 대조), 하위 도메인을 구성하는 프로세스는 간단합니다.

Note

HTTP 프로토콜을 사용하는 사용자 지정 도메인을 설정하고 HTTPS 프로토콜을 사용하는 링크가포함된 이메일을 보내는 경우, 고객은 이메일의 링크를 클릭할 때 경고 메시지를 확인하게 될 수 있습니다. HTTPS 프로토콜을 사용하는 링크가 포함된 이메일을 보내려는 경우 확인 및 클릭 추적 이벤트를 처리하기 위해 HTTPS 도메인을 사용해야 합니다.

HTTPS 하위 도메인을 사용할 계획인 경우, 대신 Option 2: Configuring an HTTPS domain (p. 77)의 절차를 따릅니다.

확인 및 클릭 링크를 처리하기 위한 HTTP 하위 도메인을 설정하려면

1. 확인 및 클릭 추적 링크에 사용할 하위 도메인을 만듭니다(아직 만들지 않은 경우). 이러한 링크를 처리하는 특별한 전용 하위 도메인을 만드는 것이 좋습니다.

2. Amazon SES에서 사용할 하위 도메인을 확인합니다. 자세한 정보는 Verifying domains in AmazonSES (p. 57) 단원을 참조하십시오.

3. 하위 도메인의 DNS 레코드를 수정합니다. DNS 레코드에 Amazon SES 추적 도메인으로 요청을 리디렉션하는 새로운 CNAME 레코드를 추가합니다. 리디렉션하는 주소는 Amazon SES를 사용하는 AWS리전에 따라 다릅니다. 다음 표에 Amazon SES를 사용할 수 있는 AWS 리전의 추적 도메인 목록이 나와있습니다.

AWS 리전. AWS 추적 도메인

미국 동부(오하이오) r.us-east-2.awstrack.me

미국 동부(버지니아 북부) r.us-east-1.awstrack.me

미국 서부(오레곤) r.us-west-2.awstrack.me

아시아 태평양(뭄바이) r.ap-south-1.awstrack.me

아시아 태평양(서울) r.ap-northeast-2.awstrack.me

아시아 태평양(싱가포르) r.ap-southeast-1.awstrack.me

아시아 태평양(시드니) r.ap-southeast-2.awstrack.me

아시아 태평양(도쿄) r.ap-northeast-1.awstrack.me

캐나다(중부) r.ca-central-1.awstrack.me

유럽(프랑크푸르트) r.eu-central-1.awstrack.me

유럽(아일랜드) r.eu-west-1.awstrack.me

유럽(런던) r.eu-west-2.awstrack.me

남아메리카(상파울루) r.sa-east-1.awstrack.me

76

Page 85: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Configuring custom open and click domains

AWS 리전. AWS 추적 도메인

AWS GovCloud (US) r.us-gov-west-1.awstrack.me

Note

웹 호스팅 공급자에 따라 하위 도메인의 DNS 레코드 변경 사항이 적용되려면 몇 분이 걸릴 수있습니다. 웹 호스팅 공급자 또는 IT 조직은 이러한 지연에 대한 추가 정보를 제공할 수 있습니다.

Option 2: Configuring an HTTPS domain

링크 클릭 추적을 위해 HTTPS 도메인을 사용할 수도 있습니다. 링크 추적을 위해 HTTPS 도메인을 설정하려면 HTTP 도메인 설정 (p. 76)에 필요한 단계 외에 몇 가지 추가 단계를 수행해야 합니다.

Note

링크 클릭 추적을 위해 HTTPS 도메인만 사용할 수 있습니다. Amazon SES는 HTTP 도메인을 통한열기 추적만 지원합니다.

클릭 처리를 위해 HTTPS 하위 도메인을 설정하려면

1. 클릭 추적 링크에 사용할 하위 도메인을 만듭니다. 이러한 링크를 처리하는 특별한 전용 하위 도메인을만드는 것이 좋습니다.

2. Amazon SES에서 사용할 하위 도메인을 확인합니다. 자세한 정보는 Verifying domains in AmazonSES (p. 57) 단원을 참조하십시오.

3. Amazon CloudFront 등의 콘텐츠 전송 네트워크(CDN)를 통해 새 계정을 만듭니다.4. 요청을 Amazon SES 추적 도메인으로 리디렉션하도록 CDN을 구성합니다. 리디렉션하는 주소는

Amazon SES를 사용하는 AWS 리전에 따라 다릅니다. 다음 표에 Amazon SES를 사용할 수 있는 AWS리전의 추적 도메인 목록이 나와 있습니다.

AWS 리전. AWS 추적 도메인

미국 동부(오하이오) r.us-east-2.awstrack.me

미국 동부(버지니아 북부) r.us-east-1.awstrack.me

미국 서부(오레곤) r.us-west-2.awstrack.me

아시아 태평양(뭄바이) r.ap-south-1.awstrack.me

아시아 태평양(서울) r.ap-northeast-2.awstrack.me

아시아 태평양(싱가포르) r.ap-southeast-1.awstrack.me

아시아 태평양(시드니) r.ap-southeast-2.awstrack.me

아시아 태평양(도쿄) r.ap-northeast-1.awstrack.me

캐나다(중부) r.ca-central-1.awstrack.me

유럽(프랑크푸르트) r.eu-central-1.awstrack.me

유럽(아일랜드) r.eu-west-1.awstrack.me

유럽(런던) r.eu-west-2.awstrack.me

77

Page 86: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Configuring custom open and click domains

AWS 리전. AWS 추적 도메인

남아메리카(상파울루) r.sa-east-1.awstrack.me

AWS GovCloud (US) r.us-gov-west-1.awstrack.me

5. Amazon CloudFront를 CDN으로 사용하는 경우 다음 절차를 완료합니다.

a. CloudFront 배포 페이지에서 해당 CDN에 대한 배포를 선택합니다.b. [Behaviors] 탭에서 기본 동작을 선택한 후 [Edit]를 선택합니다.c. [Cache Based on Selected Request Headers]에서 [All]을 선택합니다.d. [Query String Forwarding and Caching]에서 [Forward all, cache based on all]을 선택합니다.e. 배포에 대체 도메인 이름을 추가합니다. 사용하는 하위 도메인은 Amazon SES에서 확인해야 합니

다. 자세한 내용은 대체 도메인 이름 및 HTTPS 구성 in the Amazon CloudFront 개발자 안내서.

CloudFront 이외의 CDN을 사용하는 경우 비슷한 단계를 완료해야 할 수 있습니다. 자세한 내용은 CDN에 대한 설명서를 참조하십시오.

6. 사용하는 경우 Route 53 도메인에 대한 DNS 구성을 관리하려면 CloudFront 에서 별칭 레코드를 생성합니다. Route 53 고객을 CloudFront 배포(예: d111111abcdef8.cloudfront.net) ). 자세한 내용은 다음을 사용하여 레코드 생성 Amazon Route 53 콘솔 in the Amazon Route 53 개발자 안내서.

그 외의 경우에는, 해당 하위 도메인의 DNS 구성에 CDN의 주소를 나타내는 CNAME 레코드를 추가합니다.

7. 신뢰할 수 있는 인증 기관으로부터 SSL 인증서를 얻습니다. 인증서는 1단계에서 만든 하위 도메인과 3–5단계에서 구성한 CDN을 모두 포함해야 합니다. 인증서를 CDN으로 업로드합니다.

Part 2: Setting up a configuration set to refer to a custom openand click tracking domain확인 및 클릭 추적 리디렉션을 처리하도록 도메인을 구성한 후, 구성 세트에서 이벤트 대상을설정하여 사용자 지정 도메인을 참조하도록 해야 합니다. 이 단계는 Amazon SES 콘솔 또는CreateConfigurationSetTrackingOptions API 작업을 사용하여 완료할 수 있습니다. 이 단원에는Amazon SES 콘솔을 사용하여 이러한 작업을 완료하는 절차가 포함되어 있습니다. API 사용에 대한 자세한내용은 Amazon Simple Email Service API Reference의 CreateConfigurationSetTrackingOptions를 참조하십시오.

사용자 지정 추적 도메인을 참조하는 새 구성 세트 이벤트 대상을 만들려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 화면 왼쪽에 있는 탐색 모음에서 [Configuration Sets]를 클릭합니다.3. [Create Configuration Set]를 선택합니다.4. [Configuration Set Name]에서 구성 세트의 이름을 입력한 다음 [Create Configuration Set]를 선택합니

다.5. 구성 세트 목록에서, 이전 단계에서 만든 구성 세트 옆의 상자를 선택합니다. [Actions] 메뉴에서 [Edit]을

선택합니다.6. [Event Destinations] 탭의 [Add Destination]에서 이벤트 대상 유형을 선택합니다. 이 메뉴의 옵션에 대한

자세한 내용은 Step 2: Add event destination (p. 271) 단원을 참조하십시오.7. [Event types]에서 추적하려는 이벤트 유형에 따라 [Click], [Open] 또는 둘 다 선택합니다.8. [Domain]에서 [Use your own subdomain]을 선택합니다.9. [Select a verified domain]에서 확인 및 이벤트 추적에 사용할 도메인을 선택합니다. 메뉴 왼쪽의 텍스트

필드에서 선택적으로 상위 도메인의 하위 도메인을 지정할 수 있습니다.

78

Page 87: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up VPC endpoints

10. 일반적으로 하는 대로 나머지 옵션을 구성합니다. 이벤트 대상 설정에 대한 자세한 내용은 Step 2: Addevent destination (p. 271) 단원을 참조하십시오.

11. Save를 선택합니다.

Setting up VPC endpoints with Amazon SES많은 Amazon SES 고객이 내부 시스템에서 퍼블릭 인터넷에 연결하는 기능을 제한하는 기업 정책을 마련하고 있습니다. 이러한 정책은 이러한 고객이 퍼블릭 Amazon SES 엔드포인트를 사용하지 못하도록 합니다.

이러한 제한 내에서 작업하려면 Amazon Virtual Private Cloud(Amazon VPC)를 사용할 수 있습니다.Amazon VPC를 사용하면 AWS 클라우드의 격리된 영역에 있는 가상 네트워크에 AWS 리소스를 배포할 수있습니다. Amazon VPC에 대한 자세한 내용은 Amazon VPC 사용 설명서 단원을 참조하십시오.

Amazon SES를 Amazon VPC와 함께 사용하려면 먼저 조직의 VPC에서 Amazon EC2 인스턴스를 생성해야합니다. 그런 다음 이 인스턴스에 연결하고 사용하여 Amazon SES를 통해 이메일을 보낼 수 있습니다. 이 섹션에는 Amazon SES에 대한 Amazon EC2 인스턴스 구성 및 Amazon VPC 엔드포인트 생성에 대한 지침이포함되어 있습니다.

Prerequisites이 섹션의 절차를 완료하려면 먼저 다음 단계를 수행해야 합니다.

• Create a Virtual Private Cloud. For procedures, see Getting started with IPv4 for Amazon VPC.• Launch an Amazon EC2 instance in your VPC. For more information, see Launching an EC2 instance

into your default VPC.

Setting up Amazon SES in Amazon VPCAmazon SES에 사용할 VPC 엔드포인트를 설정하는 프로세스는 몇 가지 별도의 단계로 구성됩니다. 먼저VPC 엔드포인트에 사용할 Amazon EC2 인스턴스의 프라이빗 IP 주소를 식별해야 합니다. 그런 다음 인스턴스가 SMTP 포트와 통신할 수 있도록 허용하는 보안 그룹을 생성합니다. 그런 다음 Amazon SES에 대한VPC 엔드포인트를 생성합니다. 마지막으로 VPC 엔드포인트에 대한 연결을 테스트하여 올바르게 구성되었는지 확인합니다.

Step 1: Find the Private IP Address of Your Amazon EC2 InstanceAmazon SES VPC 엔드포인트를 사용하도록 Amazon EC2 인스턴스를 설정하려면 먼저 인스턴스의 프라이빗 IP를 찾아야 합니다. 이후 단계에서 이 IP 주소를 사용합니다.

Amazon EC2 인스턴스의 프라이빗 IP를 찾으려면

1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.2. 탐색 창의 인스턴스에서 인스턴스를 선택합니다.3. Amazon EC2 인스턴스 목록에서 VPC 엔드포인트에 연결하는 데 사용할 인스턴스를 선택합니다.4. 화면 하단의 세부 정보 창의 설명 탭에서 프라이빗 IP 옆에 있는 IP 주소를 복사합니다.

Step 2: Create the Security Group에서 Amazon EC2, a security group VPC의 인바운드 및 아웃바운드 통신을 제어할 수 있습니다. 이 단계에서는 Amazon EC2 인스턴스가 SMTP 엔드포인트와 통신할 수 있도록 하는 보안 그룹을 생성합니다.

보안 그룹을 생성하려면

1. Amazon EC2 콘솔의 탐색 창의 네트워크 및 보안에서 보안 그룹을 선택합니다.

79

Page 88: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up VPC endpoints

2. 보안 그룹 생성을 선택합니다.3. 기본 세부 정보에서 다음을 수행합니다.

• For Security group name, enter a unique name that identifies the security group.• For Description, enter some text that describes the purpose of the security group.• For VPC, choose the VPC that you want to use Amazon SES in.

완료되면 기본 세부 정보 섹션은 다음 이미지의 예제와 유사합니다.

4. 인바운드 규칙에서 규칙 추가를 선택합니다.5. 인바운드 규칙 1에서 다음을 수행합니다.

• For Type, choose Custom TCP.• For Port range, enter the port number that you want to use to send email. You can use any of the

following port numbers: 25, 465, 587, 2465, or 2587.• For Source type, choose Custom.• For Source, enter the private IP of your Amazon EC2 instance (that is, the address that you found

earlier).6. (선택 사항) 추가 포트에 대한 인바운드 규칙을 추가하려면 규칙 추가를 다시 선택합니다. 그런 다음 이

전 단계를 반복하여 포트를 추가합니다. 이전 단계에 나열된 포트 번호의 일부 또는 전체에 대한 규칙을생성할 수 있습니다.

7. 완료되면 보안 그룹 생성을 선택합니다.

Step 3: Create the VPC endpoint

에서 Amazon VPC, a VPC endpoint VPC를 지원하는 AWS 서비스. 이 경우 Amazon EC2 보안 그룹이Amazon SES에 연결할 수 있도록 Amazon VPC를 구성합니다.

보안 그룹을 생성하려면

1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.2. VPC(가상 사설 클라우드)에서 엔드포인트를 선택합니다.

80

Page 89: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up VPC endpoints

3. 엔드포인트 생성을 선택합니다.4. 엔드포인트 생성 페이지에서 서비스 범주에 대해 AWS 서비스를 선택합니다.5. 다음 이미지와 같이 서비스 이름에서 검색 상자를 사용하여 “이메일”을 검색합니다.

현재 AWS 리전에 대한 email-smtp 서비스를 선택합니다.6. VPC의 경우 사용하려는 VPC(가상 사설 클라우드)를 선택합니다.7. 다음 이미지와 같이 보안 그룹에 대해 앞에서 만든 보안 그룹을 선택합니다.

8. 엔드포인트 생성을 선택합니다. Amazon VPC에서 엔드포인트를 생성하는 동안 약 5분 정도 기다립니다. 엔드포인트를 사용할 준비가 되면 다음 이미지와 같이 상태 열의 값이 “사용 가능”으로 변경됩니다.

81

Page 90: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Email sending methods

Step 4: Test the connection to the VPC endpoint

VPC 엔드포인트 구성 프로세스를 완료하면 연결을 테스트하여 VPC 엔드포인트가 올바르게 구성되었는지확인해야 합니다. 대부분의 운영 체제에 포함된 명령줄 도구를 사용하여 연결을 테스트할 수 있습니다.

VPC 엔드포인트에 대한 연결을 테스트하려면

1. Amazon EC2 인스턴스에 연결합니다.

Linux 인스턴스에 연결하는 방법에 대한 자세한 내용은 다음을 참조하십시오. Linux 인스턴스에 연결 inthe Linux 인스턴스용 Amazon EC2 사용 설명서.

Windows 인스턴스에 연결하는 방법에 대한 자세한 내용은 다음을 참조하십시오. 시작하기 in theWindows 인스턴스용 Amazon EC2 사용 설명서.

2. Using the command line to send email using the Amazon SES SMTP interface (p. 101)의 절차를 완료하여 테스트 이메일을 전송합니다.

Note

Amazon SES를 통해 이메일을 보내기 전에 이메일 주소 또는 도메인을 확인해야 합니다. 자격증명 확인에 대한 자세한 내용은 Verifying identities in Amazon SES (p. 46) 단원을 참조하십시오.

Email sending methods in Amazon SESAmazon SES 콘솔, Amazon SES Simple Mail Transfer Protocol(SMTP) 인터페이스 또는 Amazon SES API를 사용하여 Amazon Simple Email Service(Amazon SES)를 통해 이메일을 보낼 수 있습니다. 일반적으로콘솔을 사용하여 테스트 이메일을 보내고 전송 활동을 관리합니다. 대용량 이메일을 보내려면 SMTP 인터페이스 또는 API를 사용합니다. Amazon SES 이메일 요금에 대한 자세한 내용은 Amazon SES 요금을 참조하십시오.

• If you want to use an SMTP-enabled software package, application, or programming language to sendemail through Amazon SES, or integrate Amazon SES with your existing mail server, use the AmazonSES SMTP interface. For more information, see Using the Amazon SES SMTP interface to sendemail (p. 83).

• If you want to call Amazon SES by using raw HTTP requests, use the Amazon SES API. For moreinformation, see Amazon SES API를 사용하여 이메일 보내기 (p. 105).

이메일을 보내기 전에 Setting up email with Amazon SES (p. 45) 단원을 참조하십시오.

82

Page 91: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

Important

여러 수신자에게 이메일을 보내는 경우(수신자는 "To", "CC" 및 "BCC" 주소) Amazon SES에 대한호출이 실패하면 전체 이메일이 거부되고 모든 수신자에게 의도한 이메일이 수신되지 않습니다. 따라서 한 번에 한 명의 수신자에게 이메일을 보내는 것이 좋습니다.

Using the Amazon SES SMTP interface to send emailAmazon SES를 통해 프로덕션 이메일을 보내려면 SMTP(Simple Mail Transfer Protocol) 인터페이스 또는Amazon SES API를 사용할 수 있습니다. Amazon SES API에 대한 자세한 내용은 Amazon SES API를 사용하여 이메일 보내기 (p. 105)를 참조하십시오. 이 단원에서는 SMTP 인터페이스에 대해 설명합니다.

Amazon SES는 인터넷에서 가장 일반적인 이메일 프로토콜인 SMTP를 사용하여 이메일을 전송합니다. 다양한 SMTP 지원 프로그래밍 언어 및 소프트웨어에서 Amazon SES SMTP 인터페이스에 연결하여 AmazonSES를 통해 이메일을 보낼 수 있습니다. 이 단원에서는 Amazon SES SMTP 자격 증명을 받는 방법, SMTP인터페이스를 사용하여 이메일을 보내는 방법, 이메일 전송에 Amazon SES를 사용하도록 몇 가지 소프트웨어 및 메일 서버를 구성하는 방법을 설명합니다.

Note

SMTP 인터페이스를 통해 Amazon SES를 사용할 때 발생할 수 있는 일반적인 문제에 대한 해결책은 Amazon SES SMTP issues (p. 452) 단원을 참조하십시오.

Amazon SES SMTP 인터페이스를 사용하여 이메일을 보내려면 다음 항목이 필요합니다.

• An AWS account. For more information, see Signing up for AWS (p. 45).• The SMTP endpoint address. For a list of Amazon SES SMTP endpoints, see Connecting to an Amazon

SES SMTP endpoint (p. 87).• The SMTP interface port number. The port number varies with the connection method. For more

information, see Connecting to an Amazon SES SMTP endpoint (p. 87).• An SMTP user name and password. SMTP credentials are unique to each AWS Region. If you plan to

use the SMTP interface to send email in multiple AWS Regions, you need a username and password foreach Region.

Important

Your SMTP user name and password aren't identical to your AWS access keys or thecredentials that you use to sign in to the Amazon SES console. For information about howto generate your SMTP user name and password, see Obtaining your Amazon SES SMTPcredentials (p. 84).

• Client software that can communicate using Transport Layer Security (TLS). For more information, seeConnecting to an Amazon SES SMTP endpoint (p. 87).

• An email address that you've verified with Amazon SES. For more information, see Verifying identities inAmazon SES (p. 46).

• Increased sending quotas, if you want to send large quantities of email. For more information, see 관리Amazon SES 할당량 보내기 (p. 140).

이제 다음을 수행하여 이메일을 보낼 수 있습니다.

• To configure SMTP-enabled software to send email through the Amazon SES SMTP interface, seeSending email through Amazon SES using software packages (p. 88).

• To program an application to send email through Amazon SES, see Sending email through Amazon SESfrom your application (p. 90).

• To configure your existing email server to send all of your outgoing mail through Amazon SES, seeIntegrating Amazon SES with your existing email server (p. 90).

83

Page 92: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

• To interact with the Amazon SES SMTP interface using the command line, which can be useful fortesting, see Test your connection to the Amazon SES SMTP interface using the command line (p. 99).

SMTP 응답 코드의 목록은 SMTP response codes returned by Amazon SES (p. 454)를 참조하십시오.

Email information to provideSMTP 인터페이스를 통해 Amazon SES에 액세스하는 경우 SMTP 클라이언트 애플리케이션이 메시지를 수집합니다. 따라서 제공해야 할 정보는 어떤 애플리케이션을 사용하는가에 따라 달라집니다. 클라이언트와 서버 간의 SMTP 교환에는 최소한 원본 주소, 대상 주소 및 메시지 데이터가 필요합니다.

SMTP 인터페이스를 사용 중이고 피드백 전달이 활성화된 상태라면 반송 메일, 수신 거부 및 전송 알림이"MAIL FROM" 주소로 전송됩니다. 사용자가 지정한 "Reply-To" 주소는 사용되지 않습니다.

Obtaining your Amazon SES SMTP credentialsAmazon SES SMTP 인터페이스에 액세스하려면 Amazon SES SMTP 사용자 이름과 암호가 필요합니다.

Amazon SES SMTP 인터페이스를 통해 이메일을 전송하는 데 사용하는 자격 증명은 각 AWS 리전마다 고유합니다. Amazon SES SMTP 인터페이스를 사용하여 둘 이상의 리전에서 이메일을 전송하는 경우, 각 리전에대해 SMTP 자격 증명 세트를 생성 (p. 84)해야 합니다.

Note

2019년 1월 10일 이전에 SMTP 자격 증명을 생성한 경우, 이전 버전의 버전을 사용하여 SMTP 자격증명을 생성했습니다. AWS 서명. 보안을 위해 이 날짜 이전에 생성한 자격 증명을 삭제하고 새 자격 증명을 사용하여 이를 대체해야 합니다. IAM 콘솔을 사용하여 이전 자격 증명을 삭제할 수 있습니다.

Important

SMTP 암호는 AWS 보안 액세스 키와 다릅니다. 자격 증명에 대한 자세한 내용은 Types of AmazonSES credentials (p. 16)을 참조하십시오.

Obtaining Amazon SES SMTP credentials using the Amazon SES console

Amazon SES 콘솔을 사용하여 SMTP 자격 증명을 생성하면 Amazon SES 콘솔은 Amazon SES를 호출하기위한 적절한 정책과 함께 IAM 사용자를 생성하고 해당 사용자와 연결된 SMTP 자격 증명을 제공합니다.

Note

IAM 사용자는 Amazon SES SMTP 자격 증명을 생성할 수 있지만 IAM을 사용하여 AmazonSES SMTP 자격 증명을 생성하기 때문에 IAM 사용자의 정책이 사용자에게 IAM 자체를 사용할 권한을 부여해야 합니다. 귀하의 IAM 정책을 실행할 수 있도록 IAM 조치: iam:ListUsers,iam:CreateUser, iam:CreateAccessKey, 그리고 iam:PutUserPolicy. 만약 여러분이Amazon SES 콘솔을 사용한 SMTP 자격 증명 및 IAM 사용자에게 이 권한이 없습니다. 계정이"iam:listusers 수행 권한이 없는" 오류가 표시됩니다.

SMTP 자격 증명을 만들려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 탐색 창에서 [SMTP Settings]을 선택합니다.3. 콘텐츠 창에서 [Create My SMTP Credentials]를 선택합니다.4. Create User for SMTP(SMTP에 대해 사용자 생성)에 해당 SMTP 사용자의 이름을 입력합니다. 또는 이

필드에 입력된 기본값을 사용할 수 있습니다. 마쳤으면 [Create]를 선택합니다.

84

Page 93: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

5. [Show User SMTP Credentials]를 선택합니다. SMTP 자격 증명이 화면에 표시됩니다. 이 자격 증명을복사하여 안전한 곳에 저장하십시오. [Download Credentials]를 선택하여 자격 증명이 포함된 파일을 다운로드할 수도 있습니다.

Important

이때가 SMTP 자격 증명을 볼 수 있는 유일한 시간입니다. 이 자격 증명을 다운로드하여 삭제되지 않을 위치에 보관하는 것이 좋습니다. 이 자격 증명을 분실한 경우 SMTP 사용자 생성 프로세스를 다시 시작해야 합니다.

6. [Close Window]를 선택합니다.

IAM 콘솔(https://console.aws.amazon.com/iam/)로 이동하여 이 절차를 사용하여 만든 기존 SMTP 자격 증명의 목록을 볼 수 있습니다. 탐색 창의 액세스 관리에서 사용자를 선택합니다. 검색 창을 사용하여 "ses-smtp-user"라는 텍스트가 포함된 모든 사용자를 찾습니다.

IAM 콘솔을 사용하여 기존 SMTP 사용자를 삭제할 수도 있습니다. 사용자 삭제에 대한 자세한 내용은 다음을 참조하십시오. https://docs.aws.amazon.com/IAM/latest/UserGuide/관리 IAM 사용자 in the IAM 시작 안내서.

SMTP 암호를 변경하려면 IAM 콘솔에서 기존 SMTP 사용자를 삭제합니다. 그런 다음 위의 절차를 완료하여새 SMTP 자격 증명 집합을 생성합니다.

Obtaining Amazon SES SMTP credentials by converting existing AWS credentials

IAM 인터페이스를 사용하여 설정한 IAM 사용자가 있는 경우 AWS 자격 증명에서 사용자의 Amazon SESSMTP 자격 증명을 만들 수 있습니다.

Important

SMTP 자격 증명을 만들 목적으로 임시 AWS 자격 증명을 사용해서는 안 됩니다. Amazon SESSMTP 인터페이스는 임시 보안 자격 증명에서 생성된 SMTP 자격 증명을 지원하지 않습니다.

IAM 사용자가 Amazon SES SMTP 인터페이스를 사용하여 이메일을 보낼 수 있도록 하려면 다음 두 단계를수행해야 합니다.

85

Page 94: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

• Derive the user's SMTP credentials from their AWS credentials using the algorithm provided in thissection. Because you are starting from AWS credentials, the SMTP username is the same as the AWSaccess key ID, so you just need to generate the SMTP password.

• Apply the following policy to the IAM user:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ses:SendRawEmail", "Resource": "*" } ]}

For more information about using Amazon SES with IAM, see Controlling access to AmazonSES (p. 373).

Note

IAM 사용자의 Amazon SES SMTP 자격 증명을 생성할 수 있지만 SMTP 자격 증명을 생성할 때 별도의 IAM 사용자를 생성하는 것이 좋습니다. 특정 용도로 사용자를 생성하는 것이 좋은 이유에 대한자세한 내용은 IAM 모범 사례를 참조하십시오.

다음 유사 코드는 AWS 보안 액세스 키를 Amazon SES SMTP 암호로 변환하는 알고리즘을 보여줍니다.

// Modify this variable to include your AWS Secret Access Keykey = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"; // Modify this variable to refer to the AWS Region that you want to use to send email.region = "us-west-2"; // The values of the following variables should always stay the same.date = "11111111";service = "ses";terminal = "aws4_request";message = "SendRawEmail";versionInBytes = 0x04;

kDate = HmacSha256(date, "AWS4" + key);kRegion = HmacSha256(region, kDate);kService = HmacSha256(service, kRegion);kTerminal = HmacSha256(terminal, kService);kMessage = HmacSha256(message, kTerminal);signatureAndVersion = Concatenate(versionInBytes, kMessage);smtpPassword = Base64(signatureAndVersion);

일부 프로그래밍 언어에는 IAM 보안 액세스 키를 SMTP 암호로 변환하는 데 사용할 수 있는 라이브러리가포함되어 있습니다. 이 섹션에는 Python을 사용하여 AWS 보안 액세스 키를 Amazon SES SMTP 암호로 변환하기 위해 사용할 수 있는 코드 예제가 포함되어 있습니다.

Python

개!/usr/bin/env python3

import hmacimport hashlib

86

Page 95: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

import base64import argparse

개 Values that are required to calculate the signature. These values should개 never change.DATE = "11111111"SERVICE = "ses"MESSAGE = "SendRawEmail"TERMINAL = "aws4_request"VERSION = 0x04

def sign(key, msg): return hmac.new(key, msg.encode('utf-8'), hashlib.sha256).digest()

def calculateKey(secretAccessKey, region): signature = sign(("AWS4" + secretAccessKey).encode('utf-8'), DATE) signature = sign(signature, region) signature = sign(signature, SERVICE) signature = sign(signature, TERMINAL) signature = sign(signature, MESSAGE) signatureAndVersion = bytes([VERSION]) + signature smtpPassword = base64.b64encode(signatureAndVersion) print(smtpPassword.decode('utf-8'))

def main(): parser = argparse.ArgumentParser(description='Convert a Secret Access Key for an IAM user to an SMTP password.') parser.add_argument('--secret', help='The Secret Access Key that you want to convert.', required=True, action="store") parser.add_argument('--region', help='The name of the AWS Region that the SMTP password will be used in.', required=True, choices=[ 'us-east-2', 개US East (Ohio) 'us-east-1', 개US East (N. Virginia) 'us-west-2', 개US West (Oregon) 'ap-south-1', 개Asia Pacific (Mumbai) 'ap-northeast-2', 개Asia Pacific (Seoul) 'ap-southeast-1', 개Asia Pacific (Singapore) 'ap-southeast-2', 개Asia Pacific (Sydney) 'ap-northeast-1', 개Asia Pacific (Tokyo) 'ca-central-1', 개Canada (Central) 'eu-central-1', 개Europe (Frankfurt) 'eu-west-1', 개Europe (Ireland) 'eu-west-2', 개Europe (London) 'sa-east-1', 개South America (Sao Paulo) 'us-gov-west-1' 개AWS GovCloud (US) ], action="store") args = parser.parse_args()

calculateKey(args.secret,args.region)

main()

Connecting to an Amazon SES SMTP endpoint이메일을 사용하여 이메일을 보내려면 Amazon SES SMTP 인터페이스를 사용하여 SMTP 끝점에 연결합니다. 전체 목록을 보려면 Amazon SES SMTP 엔드포인트, 참조 Amazon Simple Email Service 엔드포인트 및할당량 in the AWS General Reference.

87

Page 96: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

Amazon SES SMTP 엔드포인트에서는 TLS(전송 계층 보안)를 사용하여 모든 연결을 암호화해야 합니다.(TLS는 종종 이전 프로토콜인 SSL의 이름으로 참조됩니다.) Amazon SES TLS 암호화 연결을 설정하는 두가지 메커니즘을 지원합니다. STARTTLS 및 TLS 래퍼. 사용 중인 소프트웨어의 설명서를 참조하여 소프트웨어가 STARTTLS, TLS 래퍼 또는 둘 다 지원하는지 여부를 확인하십시오.

Important

Amazon Elastic Compute Cloud(Amazon EC2)는 기본적으로 포트 25를 통한 이메일 트래픽을 제한합니다. EC2에서 SMTP 엔드포인트를 통해 이메일을 전송할 때 시간 초과를 방지하려면 이메일전송 제한 제거 요청을 제출하여 제한을 제거합니다. 또는 다른 포트를 사용하여 이메일을 보내거나Amazon VPC 엔드포인트 (p. 79)를 사용할 수 있습니다.

STARTTLS

STARTTLS는 암호화되지 않은 연결을 암호화된 연결로 업그레이드하는 방법입니다. 다양한 프로토콜을 위한 여러 버전의 STARTTLS이 있으며, SMTP 버전은 RFC 3207에서 정의됩니다.

STARTTLS 연결을 설정하기 위해 SMTP 클라이언트는 포트 25, 587 또는 2587에서 Amazon SES SMTP 엔드포인트에 연결하고, EHLO 명령을 실행한 다음, 서버가 STARTTLS SMTP 확장을 지원한다고 공지할 때까지 대기합니다. 그런 다음 클라이언트는 STARTTLS 명령을 실행하여 TLS 협상을 시작합니다. 협상이 완료되면 클라이언트는 새로운 암호화된 연결을 통해 EHLO 명령을 실행하고 SMTP 세션이 정상적으로 진행됩니다.

TLS Wrapper

TLS 래퍼(SMTPS 또는 핸드셰이크 프로토콜이라고도 함)는 암호화되지 않은 연결을 먼저 설정하지 않고 암호화된 연결을 시작하는 방법입니다. TLS 래퍼에서는 Amazon SES SMTP 엔드포인트가 TLS 협상을 수행하지 않습니다. TLS를 사용하여 엔드포인트와 연결한 후 전체 대화에 걸쳐 TLS를 계속 사용하는 것이 클라이언트의 책임입니다. TLS 래퍼는 더 오래된 프로토콜이지만 많은 클라이언트가 여전히 이 프로토콜을 지원합니다.

TLS 래퍼 연결을 설정하기 위해 SMTP 클라이언트는 포트 465 또는 2465에서 Amazon SES SMTP 엔드포인트에 연결합니다. 서버가 인증서를 제공하고, 클라이언트가 EHLO 명령을 실행한 후, SMTP 세션이 정상적으로 진행됩니다.

Sending email through Amazon SES using software packagesSMTP를 통한 이메일 전송을 지원하는 수많은 상업용 및 오픈 소스 소프트웨어 패키지가 있습니다. 여기 몇가지 예가 있습니다.

• Blogging platforms• RSS aggregators• List management software• Workflow systems

Amazon SES SMTP 인터페이스를 통해 이메일을 보내도록 이러한 SMTP 지원 소프트웨어를 구성할 수 있습니다. 특정 소프트웨어 패키지에서 SMTP를 구성하는 방법에 대한 지침은 해당 소프트웨어의 설명서를 참조하십시오.

다음 절차에서는 인기 있는 문제 추적 솔루션인 JIRA에서 Amazon SES 전송을 설정하는 방법을 보여 줍니다. 이 구성을 사용하면 JIRA는 소프트웨어 문제의 상태가 변경될 때마다 이메일을 통해 사용자에게 알릴 수있습니다.

Amazon SES를 사용하여 이메일을 보내도록 JIRA를 구성하려면

1. 웹 브라우저를 사용하여 관리자 자격 증명으로 JIRA에 로그인합니다.

88

Page 97: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

2. 브라우저 창에서 [Administration]을 선택합니다.3. [System] 메뉴에서 [Mail]을 선택합니다.4. [Mail administration] 페이지에서 [Mail Servers]를 선택합니다.5. [Configure new SMTP mail server]를 선택합니다.6. [Add SMTP Mail Server] 양식에서 다음 필드에 값을 입력합니다.

a. 이름—이 서버에 대한 설명이 포함된 이름입니다.b. 발신 주소—이메일이 전송될 주소입니다. 이 주소에서 전송하려면 먼저 Amazon SES에서 이

이메일 주소를 확인해야 합니다. 확인에 대한 자세한 내용은 Verifying identities in AmazonSES (p. 46)을 참조하십시오.

c. 이메일 접두사—JIRA에서 전송 전에 각 제목 줄 앞에 추가하는 문자열입니다.d. 프로토콜—SMTP를 선택합니다.

Note

이 설정을 사용하여 Amazon SES에 연결할 수 없는 경우 [SECURE_SMTP]를 선택해 보십시오.

e. 호스트 이름—Amazon SES SMTP 엔드포인트 목록은 Connecting to an Amazon SES SMTPendpoint (p. 87) 단원을 참조하십시오. 예를 들어 미국 서부(오레곤) 리전에서 Amazon SES 엔드포인트를 사용하려는 경우 호스트 이름은 email-smtp.us-west-2.amazonaws.com이 됩니다.

f. SMTP 포트—25, 587 또는 2587(STARTTLS를 사용하여 연결하는 경우) 혹은 465 또는 2465(TLS래퍼를 사용하여 연결하는 경우)입니다.

g. TLS—이 확인란을 선택합니다.h. 사용자 이름—SMTP 사용자 이름입니다.i. 암호—SMTP 암호입니다.

TLS 래퍼에 대한 설정은 아래와 같습니다.

7. [Test Connection]을 선택합니다. wJIRA에서 Amazon SES를 통해 보내는 테스트 이메일이 성공적으로도착하면 구성이 완료됩니다.

89

Page 98: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

Sending email through Amazon SES from your application많은 프로그래밍 언어가 SMTP를 사용한 이메일 전송을 지원합니다. 이 기능은 프로그래밍 언어 자체에 기본 제공되거나 추가 기능, 플러그인 또는 라이브러리로 사용 가능할 수 있습니다. 작성하는 애플리케이션 프로그램 내에서 Amazon SES를 통해 이메일을 전송하여 이 기능을 이용할 수 있습니다.

예를 들어 C# 및 Java의 경우 시작하기 단원의 Send an email by accessing the Amazon SES SMTPinterface programmatically (p. 20)를 참조하십시오.

Integrating Amazon SES with your existing email server현재 자신의 이메일 서버를 관리하고 있는 경우 Amazon SES SMTP 엔드포인트를 사용하여 모든 발신 이메일을 Amazon SES로 보낼 수 있습니다. 기존 이메일 클라이언트와 애플리케이션을 수정할 필요는 없으며 모든 프로그램에 투명하게 Amazon SES로 전환됩니다.

여러 메일 전송 에이전트(MTA)가 SMTP 릴레이를 통한 이메일 전송을 지원합니다. 이 단원에서는 AmazonSES SMTP 인터페이스를 사용하여 이메일을 보내도록 몇 가지 인기 있는 MTA를 구성하는 방법에 대해 일반적인 지침을 제공합니다.

Amazon SES SMTP 엔드포인트에서는 TLS(전송 계층 보안)를 사용하여 모든 연결을 암호화해야 합니다.

주제• Integrating Amazon SES with Postfix (p. 90)• Integrating Amazon SES with Sendmail (p. 94)• Integrating Amazon SES with Microsoft Windows Server IIS SMTP (p. 97)• Integrating Amazon SES with Exim (p. 98)

Integrating Amazon SES with Postfix

Postfix는 광범위하게 사용되는 Sendmail Message Transfer Agent(MTA)의 대체 프로그램입니다. Postfix에대한 자세한 내용은 http://www.postfix.org를 참조하십시오. 이 주제의 절차는 Linux, macOS, or Unix에 적용됩니다.

Note

Postfix는 타사 애플리케이션이며Amazon Web Services에서 개발하거나 지원하지 않습니다. 이 단원의 절차는 정보 제공이 목적이며 사전 통지 없이 변경될 수 있습니다.

Prerequisites

이 단원의 절차를 완료하려면 다음 작업을 수행해야 합니다.

• Uninstall Sendmail, if it's already installed on your system. The procedure for completing this step variesdepending on the operating system you use.

• Install Postfix. The procedure for completing this step varies depending on the operating system you use.• Install a SASL authentication package. The procedure for completing this step varies depending on

the operating system you use. For example, if you use a RedHat-based system, you should install thecyrus-sasl-plain package. If you use a Debian- or Ubuntu-based system, you should install thelibsasl2-modules package.

• Verify an email address or domain to use for sending email. For more information, see Verifying emailaddresses in Amazon SES (p. 46).

• If your account is still in the sandbox, you can only send email to verified email addresses. For moreinformation, see Amazon SES 샌드박스 환경에서 나가기 (p. 69).

90

Page 99: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

Configuring Postfix

Postfix를 사용하여 Amazon SES를 통해 이메일을 전송하도록 메일 서버를 구성하는 다음 절차를 완료하십시오.

Postfix를 구성하려면

1. 명령줄 프롬프트에 다음 명령을 입력합니다.

sudo postconf -e "relayhost = [email-smtp.us-west-2.amazonaws.com]:587" \"smtp_sasl_auth_enable = yes" \"smtp_sasl_security_options = noanonymous" \"smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd" \"smtp_use_tls = yes" \"smtp_tls_security_level = encrypt" \"smtp_tls_note_starttls_offer = yes"

Note

사용하는 경우 Amazon SES in an AWS 이외의 지역 미국 서부(오레곤), 교체 email-smtp.us-west-2.amazonaws.com 이전 명령에서 해당 지역의 SMTP 끝점을 사용하여 명령을 실행합니다. 자세한 정보는 Regions (p. 432) 단원을 참조하십시오.

2. 텍스트 편집기에서 파일을 엽니다. /etc/postfix/master.cf. 다음 항목을 검색합니다.

-o smtp_fallback_relay=

이 항목이 있는 경우 열의 시작 부분에 개(해시) 문자를 붙여 주석을 남깁니다. 파일을 저장하고 닫습니다.

그렇지 않은 경우 이 항목이 없으면 다음 단계로 진행하십시오.3. 텍스트 편집기에서 파일을 엽니다. /etc/postfix/sasl_passwd. 파일이 아직 존재하지 않는 경우

을 생성합니다.4. 다음 열을 /etc/postfix/sasl_passwd에 추가합니다.

[email-smtp.us-west-2.amazonaws.com]:587 SMTPUSERNAME:SMTPPASSWORD

Note

Replace SMTPUSERNAME 그리고 SMTPPASSWORD SMTP 사용자 이름과 암호를 각각 사용하고 있습니다. SMTP 사용자 이름과 암호는 AWS 액세스 키 ID 및 보안 액세스 키와 동일하지 않습니다. 자격 증명에 대한 자세한 내용은 the section called “Obtaining your SMTPcredentials” (p. 84)을 참조하십시오.사용하는 경우 Amazon SES in an AWS 이외의 지역 미국 서부(오레곤), 교체 email-smtp.us-west-2.amazonaws.com 위의 예제에서는 해당 지역의 SMTP 끝점에 나와 있습니다. 자세한 정보는 Regions (p. 432) 단원을 참조하십시오.

sasl_passwd를 저장하고 닫습니다.5. 명령 프롬프트에서 다음 명령을 입력하여 SMTP 자격 증명이 포함된 해시 맵 데이터베이스 파일을 만듭

니다.

sudo postmap hash:/etc/postfix/sasl_passwd

6. (Optional) The /etc/postfix/sasl_passwd and /etc/postfix/sasl_passwd.db 이전 단계에서 생성한 파일은 암호화되지 않습니다. 이 파일에는 SMTP 자격 증명이 포함되기 때문에 액세스를 제한하기 위해 파일의 소유권 및 권한을 수정하는 것이 좋습니다. 이 파일에 대한 액세스를 제한하려면:

91

Page 100: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

a. 명령 프롬프트에서 다음 명령을 입력하여 파일의 소유권을 변경합니다.

sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

b. 명령 프롬프트에서 다음 명령을 사용하여 루트 사용자만 읽거나 쓸 수 있도록 파일 권한을 변경합니다.

sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

7. CA 인증서를 찾을 위치를 Postfix에 지정합니다(Amazon SES 서버 인증서 확인 필요). 이 단계에서 사용하는 명령은 운영 체제에 따라 다릅니다.

• If you use Amazon Linux, Red Hat Enterprise Linux, or a related distribution, type the followingcommand:

sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'

• If you use Ubuntu or a related distribution, type the following command:

sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt'

• If you use macOS, you can generate the certificate from your system keychain. To generate thecertificate, type the following command at the command line:

sudo security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain > /etc/ssl/certs/ca-bundle.crt

After you generate the certificate, type the following command:

sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'

8. Postfix 서버를 시작하려면(또는 서버가 이미 실행 중인 경우 구성 설정을 다시 로드하려면) 다음 명령을입력합니다.

sudo postfix start; sudo postfix reload

9. 명령줄에 다음을 입력하고 각 줄 이후에 Enter를 눌러 테스트 이메일을 보냅니다. [email protected] 이메일 주소 From 주소는 Amazon SES에 사용할 수 있는지 확인해야 합니다.Replace [email protected] 도착지 주소. 계정이 아직 샌드박스 환경에 있을 경우 수신자 주소도 확인해야 합니다. 마지막으로 메시지의 마지막 열에는 다른 콘텐츠가 없는 상태로 하나의 마침표(.)가포함되어 있어야 합니다.

sendmail -f [email protected] [email protected]: Sender Name <[email protected]>Subject: Amazon SES Test This message was sent using Amazon SES. .

10. 수신자 주소와 연결된 사서함을 확인합니다. 이메일이 도착하지 않으면 정크 메일 폴더를 확인합니다.그래도 이메일을 찾을 수 없으면 자세한 내용은 이메일을 전송하기 위해 사용한 시스템의 메일 로그(일반적으로 /var/log/maillog에 있음)를 확인합니다.

Advanced usage example

이 예는 구성 세트 (p. 235)를 사용하는 이메일 및 일반 텍스트와 HTML 버전의 메시지를 첨부 파일과 함께모두 보내기 위해 MIME 멀티파트 인코딩을 사용하는 이메일의 전송 방법을 보여 줍니다. 또한 클릭 이벤트

92

Page 101: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

를 분류하는 데 사용할 수 있는 링크 태그 (p. 481)도 포함되어 있습니다. 이메일의 콘텐츠는 외부 파일에지정되므로, Postfix 세션에서 수동으로 명령을 입력할 필요가 없습니다.

Postfix를 사용하여 멀티파트 MIME 이메일을 전송하려면

1. 텍스트 편집기에서 mime-email.txt라는 새로운 파일을 생성합니다.2. 텍스트 파일에서 빨간색으로 표시된 값을 계정의 해당 값으로 바꾸고 다음 콘텐츠를 붙여 넣습니다.

X-SES-CONFIGURATION-SET: ConfigSetFrom:Sender Name <[email protected]>Subject:Amazon SES TestMIME-Version: 1.0Content-Type: multipart/mixed; boundary="YWVhZDFlY2QzMGQ2N2U0YTZmODU"

--YWVhZDFlY2QzMGQ2N2U0YTZmODUContent-Type: multipart/alternative; boundary="3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ"

--3NjM0N2QwMTE4MWQ0ZTg2NTYxZQContent-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: quoted-printable

Amazon SES Test

This message was sent from Amazon SES using the SMTP interface.

For more information, see:http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html

--3NjM0N2QwMTE4MWQ0ZTg2NTYxZQContent-Type: text/html; charset=UTF-8Content-Transfer-Encoding: quoted-printable

<html> <head></head> <body> <h1>Amazon SES Test</h1> <p>This message was sent from Amazon SES using the SMTP interface.</p> <p>For more information, see <a ses:tags="samplekey0:samplevalue0;samplekey1:samplevalue1;" href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html"> Using the Amazon SES SMTP Interface to Send Email</a> in the <em>Amazon SES Developer Guide</em>.</p> </body></html>--3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ----YWVhZDFlY2QzMGQ2N2U0YTZmODUContent-Type: application/octet-streamMIME-Version: 1.0Content-Transfer-Encoding: base64Content-Disposition: attachment; filename="customers.txt"

SUQsRmlyc3ROYW1lLExhc3ROYW1lLENvdW50cnkKMzQ4LEpvaG4sU3RpbGVzLENhbmFkYQo5MjM4OSxKaWUsTGl1LENoaW5hCjczNCxTaGlybGV5LFJvZHJpZ3VleixVbml0ZWQgU3RhdGVzCjI4OTMsQW5heWEsSXllbmdhcixJbmRpYQ==--YWVhZDFlY2QzMGQ2N2U0YTZmODU--

파일을 저장하고 닫습니다.3. 명령줄 프롬프트에 다음 명령을 입력합니다. Replace [email protected] 이메일 주소를 사용하여

[email protected] 받는 사람의 이메일 주소.

sendmail -f [email protected] [email protected] < mime-email.txt

93

Page 102: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

명령이 성공적으로 실행되면 출력을 제공하지 않고 종료됩니다.4. 이메일의 받은 편지함을 확인합니다. 메시지가 전송되지 않은 경우 시스템의 메일 로그를 확인합니다.

Integrating Amazon SES with Sendmail

Sendmail은 1980년대 초반에 릴리스되었으며 이후 지속적으로 개선되었습니다. 대규모 사용자 커뮤니티를보유한 유연하고 구성 가능한 메시지 전송 에이전트(MTA)입니다. Sendmail은 2013년에 Proofpoint에서 인수했지만, Proofpoint는 Sendmail의 오픈 소스 버전을 계속 제공하고 있습니다. Proofpoint 웹사이트에서, 또는 대다수 Linx 배포판에 포함된 패키지 관리자를 통해 Sendmail의 오픈 소스 버전을 다운로드하십시오.

이 단원의 절차는 Amazon SES를 통해 이메일을 전송하도록 Sendmail을 구성하는 방법을 보여줍니다. 이절차는 Ubuntu 18.04.2 LTS를 실행하는 서버 상에서 테스트를 거쳤습니다.

Note

Sendmail는 타사 애플리케이션이며Amazon Web Services에서 개발하거나 지원하지 않습니다. 이단원의 절차는 정보 제공이 목적이며 사전 통지 없이 변경될 수 있습니다.

Prerequisites

이 단원의 절차를 완료하려면 먼저 다음 작업을 수행해야 합니다.

• Install the Sendmail package on your server.

Note

Depending on which operating system distribution you use, you might also need to install thefollowing packages: sendmail-cf, m4, and cyrus-sasl-plain.

• Verify an identity to use as your From address. For more information, see Verifying email addresses inAmazon SES (p. 46)

If your account is still in the Amazon SES sandbox, you also have to verify the addresses that you sendemail to. For more information, see Amazon SES 샌드박스 환경에서 나가기 (p. 69).

Amazon SES를 사용하여 Amazon EC2 인스턴스로부터 이메일을 전송 중인 경우에는 다음 단계도 완료해야합니다.

• If you're using Amazon SES to send email from an Amazon EC2 instance, you might need to assign anElastic IP Address to your Amazon EC2 instance in order for receiving email providers to accept youremail. For more information, see Amazon EC2 Elastic IP Addresses.

• If you're using Amazon SES to send email from an Amazon EC2 instance, you should complete theRequest to Remove Email Sending Limitations form. Requesting this change removes the restrictionsthat Amazon EC2 applies to port 25 by default.

Configuring Sendmail

Amazon SES를 사용해 이메일을 전송하도록 Sendmail을 구성하려면 이 섹션에 나온 단계를 완료하십시오.

Important

이 섹션의 절차는 미국 서부(오레곤) AWS 리전에서 Amazon SES를 사용하기를 원한다고 가정합니다. 다른 리전을 사용하려는 경우 이 절차에 있는 email-smtp.us-west-2.amazonaws.com의 모든인스턴스를 원하는 리전의 SMTP 엔드포인트로 바꾸십시오. SMTP 끝점 URL 목록을 보려면 AWS지역 Amazon SES 사용 가능한 Amazon Simple Email Service (Amazon SES) in the AWS GeneralReference.

94

Page 103: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

Sendmail을 설정하려면

1. 파일 편집기에서 파일을 엽니다. /etc/mail/authinfo. 파일이 없으면 create it.

다음 열을 /etc/mail/authinfo에 추가합니다.

AuthInfo:email-smtp.us-west-2.amazonaws.com "U:root" "I:smtpUsername" "P:smtpPassword" "M:PLAIN"

이전 예제에서 다음과 같이 변경합니다.

• Replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP endpoint thatyou want to use.

• Replace smtpUsername with your Amazon SES SMTP username.• Replace smtpPassword with your Amazon SES SMTP password.

Note

SMTP 사용자 이름과 암호는 AWS 액세스 키 ID 및 보안 액세스 키와 다릅니다. SMTP 사용자 이름 및 암호를 얻는 방법에 대한 자세한 내용은 Obtaining your Amazon SES SMTPcredentials (p. 84) 단원을 참조하십시오.

완료되면 authinfo를 저장합니다.2. 명령줄에 다음 명령을 입력하여 /etc/mail/authinfo.db 파일을 생성합니다.

sudo sh -c 'makemap hash /etc/mail/authinfo.db < /etc/mail/authinfo'

3. 명령줄에 다음 명령을 입력하여 Amazon SES SMTP 엔드포인트에 릴레이에 대한 지원을 추가합니다.

sudo sh -c 'echo "Connect:email-smtp.us-west-2.amazonaws.com RELAY" >> /etc/mail/access'

이전 명령에서 교체 email-smtp.us-west-2.amazonaws.com 의 주소를 Amazon SES 사용하려는SMTP 끝점입니다.

4. 명령줄에서 다시 생성하려면 다음 명령을 입력합니다. /etc/mail/access.db:

sudo sh -c 'makemap hash /etc/mail/access.db < /etc/mail/access'

5. 명령줄에 다음 명령을 입력하여 다음과 같이 sendmail.cf 및 sendmail.mc 파일의 백업을 생성합니다.

sudo sh -c 'cp /etc/mail/sendmail.cf /etc/mail/sendmail_cf.backup && cp /etc/mail/sendmail.mc /etc/mail/sendmail_mc.backup'

6. 다음에 다음 줄을 추가합니다. /etc/mail/sendmail.mc 파일을 MAILER() 정의.

define(`SMART_HOST', `email-smtp.us-west-2.amazonaws.com')dnldefine(`RELAY_MAILER_ARGS', `TCP $h 25')dnldefine(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnlFEATURE(`authinfo', `hash -o /etc/mail/authinfo.db')dnlMASQUERADE_AS(`example.com')dnlFEATURE(masquerade_envelope)dnlFEATURE(masquerade_entire_domain)dnl

위의 텍스트에서 다음을 수행합니다.95

Page 104: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

• Replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP endpoint thatyou want to use.

• Replace example.com with the domain that you want to use to send email.

작업을 마치고 파일을 저장합니다.

Note

Amazon EC2는 기본적으로 포트 25를 통한 통신을 제한합니다. Amazon EC2 인스턴스에서Sendmail을 사용 중인 경우 이메일 전송 제한 제거 요청을 작성해야 합니다.

7. 명령줄에서 다음 명령을 입력합니다. sendmail.cf 쓰기 가능:

sudo chmod 666 /etc/mail/sendmail.cf

8. 명령줄에서 다시 생성하려면 다음 명령을 입력합니다. sendmail.cf:

sudo sh -c 'm4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf'

Note

‘명령을 찾을 수 없음’ 및 ‘해당 파일 또는 디렉터리가 없음’ 오류가 발생하면 m4 및 sendmail-cf 패키지가 시스템에 설치되어 있는지 확인합니다.

9. 명령줄에서 다음 명령을 입력하여 사용 권한을 재설정합니다. sendmail.cf 읽기 전용:

sudo chmod 644 /etc/mail/sendmail.cf

10. 명령줄에 다음 명령을 입력하여 Sendmail을 다시 시작합니다.

sudo /etc/init.d/sendmail restart

11. 테스트 이메일을 전송하려면 다음 작업을 완료합니다.

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

/usr/sbin/sendmail -vf [email protected] [email protected]

Replace [email protected] 이메일 주소 Replace [email protected] 을(를) 다루고있습니다. 완료되면 를 누릅니다.Enter.

b. 다음과 같은 메시지 콘텐츠를 입력합니다. 을 누릅니다.Enter 각 라인의 끝에 있습니다.

From: [email protected]: [email protected]: Amazon SES test email

This is a test message sent from Amazon SES using Sendmail.

이메일 콘텐츠 입력을 마치면 Ctrl+D 을(를) 보냈습니다.12. 해당 이메일의 수신자 이메일 클라이언트를 확인합니다. 이메일을 찾을 수 없으면 스팸 메일 폴더를 확

인합니다. 그래도 이메일을 찾을 수 없는 경우, 메일 서버의 Sendmail 로그를 살펴봅니다. 로그는 종종 /var/log/mail.log 또는 /var/log/maillog.

96

Page 105: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

Integrating Amazon SES with Microsoft Windows Server IIS SMTPAmazon SES를 통해 이메일을 보내도록Microsoft Windows Server의 IIS SMTP 서버를 구성할 수 있습니다. 이 지침은 Amazon EC2 인스턴스에서 Microsoft Windows Server 2012를 사용하여 작성되었습니다.Microsoft Windows Server 2008과 Microsoft Windows Server 2008 R2에서 동일한 구성을 사용할 수 있습니다.

Note

Windows Server는 타사 애플리케이션이며Amazon Web Services에서 개발하거나 지원하지 않습니다. 이 단원의 절차는 정보 제공이 목적이며 사전 통지 없이 변경될 수 있습니다.

Microsoft Windows Server IIS SMTP 서버를 Amazon SES와 통합하려면

1. 먼저 다음 지침에 따라 Microsoft Windows Server 2012를 설정합니다.

a. Amazon EC2 관리 콘솔에서 새 Microsoft Windows Server 2012 Base Amazon EC2 인스턴스를 시작합니다.

b. 인스턴스에 연결하고 Amazon EC2 Windows 인스턴스 시작하기의 지침에 따라 원격 데스크톱을사용하여 인스턴스에 로그인합니다.

c. 서버 관리자 대시보드를 시작합니다.d. [웹 서버] 역할을 설치합니다. 반드시 [IIS 6 관리 호환성 도구]를 포함시켜야 합니다([웹 서버] 확인

란 아래 있는 옵션 선택).e. [SMTP 서버] 기능을 설치합니다.

2. 이제 다음 지침에 따라 IIS SMTP 서비스를 구성합니다.

a. 서버 관리자 대시보드로 돌아갑니다.b. [Tools] 메뉴에서 [IIS(인터넷 정보 서비스) 6.0 관리자]를 선택합니다.c. [SMTP 가상 서버 #1]을 마우스 오른쪽 버튼으로 클릭하고 [속성]을 선택합니다.d. [액세스] 탭에서 [릴레이 제한] 아래 있는 [릴레이]를 선택합니다.e. [릴레이 제한] 대화 상자에서 [추가]를 선택합니다.f. [단일 컴퓨터] 아래에서 IP 주소에 127.0.0.1을 입력합니다. 이제 이 서버에 IIS SMTP 서비스를 통해

Amazon SES로 이메일을 릴레이하기 위한 액세스를 부여했습니다.

이 절차에서는 이메일이 이 서버에서 생성된다고 가정합니다. 이메일을 생성하는 애플리케이션이별도의 서버에서 실행되는 경우 IIS SMTP에서 해당 서버에 릴레이 액세스를 부여해야 합니다.

Note

SMTP 릴레이를 프라이빗 서브넷으로 확장하려면 [릴레이 제한]에 대해 [단일 컴퓨터]127.0.0.1 및 [컴퓨터 그룹] 172.1.1.0 - 255.255.255.0(넷마스크 섹션에서)을 사용합니다.[연결]에 대해 [단일 컴퓨터] 127.0.0.1 및 [컴퓨터 그룹] 172.1.1.0 - 255.255.255.0(넷마스크 섹션에서)을 사용합니다.

3. 마지막으로, 다음 지침에 따라 Amazon SES를 통해 이메일을 보내도록 서버를 구성합니다.

a. [SMTP 가상 서버 #1 속성] 대화 상자로 돌아간 다음 [배달] 탭을 선택합니다.b. [배달] 탭에서 [아웃바운드 보안]을 선택합니다.c. [기본 인증]을 선택한 후 Amazon SES SMTP 사용자 이름과 암호를 입력합니다. Obtaining your

Amazon SES SMTP credentials (p. 84)의 절차에 따라 Amazon SES 콘솔에서 이 자격 증명을받을 수 있습니다.

Important

SMTP 사용자 이름과 암호는 AWS 액세스 키 ID 및 보안 액세스 키와 동일하지 않습니다.AWS 자격 증명을 사용하여 SMTP 엔드포인트에 대해 인증하려고 하지 마십시오. 자격 증명에 대한 자세한 내용은 Types of Amazon SES credentials (p. 16)을 참조하십시오.

d. [TLS 암호화]가 선택되어 있는지 확인합니다.

97

Page 106: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

e. [배달] 탭으로 돌아갑니다.f. [아웃바운드 연결]을 선택합니다.g. [아웃바운드 연결] 대화 상자에서 포트가 25 또는 587인지 확인합니다.h. 고급을 선택합니다.i. [스마트 호스트] 이름에 사용할 Amazon SES 엔드포인트를 입력합니다(예: email-smtp.us-

west-2.amazonaws.com). 다음에 대한 끝점 URL 목록을 보려면 AWS 지역 Amazon SES 사용 가능한 Amazon Simple Email Service (Amazon SES) in the AWS General Reference.

j. 서버 관리자 대시보드로 돌아갑니다.k. 서버 관리자 대시보드에서 [SMTP 가상 서버 #1]을 마우스 오른쪽 버튼으로 클릭한 다음 서버를 다

시 시작하여 새 구성을 적용합니다.l. 이 서버를 통해 이메일을 보냅니다. 메시지 헤더를 조사하여 Amazon SES를 통해 배달되었는지 확

인할 수 있습니다.

Integrating Amazon SES with Exim

Exim은 매우 유연하고 구성 가능한 Mail Transfer Agent(MTA)입니다. Exim에 대한 자세한 내용은 Exim 웹사이트를 참조하십시오.

Note

Exim는 타사 애플리케이션이며Amazon Web Services에서 개발하거나 지원하지 않습니다. 이 단원의 절차는 정보 제공이 목적이며 사전 통지 없이 변경될 수 있습니다.

Amazon SES를 통해 이메일을 보내도록 Exim을 구성하려면

1. 텍스트 편집기에서 파일을 엽니다. /etc/exim.conf.local. 파일이 없으면 템플릿을 복사합니다. /etc/exim4/exim4.conf.template.

2. /etc/exim.conf.local에서 다음과 같이 변경합니다.

a. routers 섹션에서 begin routers 행 뒤에 다음을 추가합니다.

send_via_ses:driver = manualroutedomains = ! +local_domainstransport = ses_smtproute_list = * email-smtp.us-west-2.amazonaws.com;

이전 코드 에서 교체 email-smtp.us-west-2.amazonaws.com 메시지를 전송하기 위해 사용할SMTP 끝점에 대해 자세한 정보는 Regions and Amazon SES (p. 432) 단원을 참조하십시오.

b. transports 섹션에서 begin transports 행 뒤에 다음을 추가합니다.

ses_smtp:driver = smtpport = 587hosts_require_auth = *hosts_require_tls = *

c. authenticators 섹션에서 begin authenticators 행 뒤에 다음을 추가합니다.

ses_login:driver = plaintextpublic_name = LOGINclient_send = : USERNAME : PASSWORD

이전 코드 에서 교체 USERNAME SMTP 사용자 이름 및 PASSWORD SMTP 암호.

98

Page 107: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

Important

SMTP 자격 증명은 AWS 액세스 키 ID 및 보안 액세스 키와 동일하지 않습니다. SMTP자격 증명을 받는 방법에 대한 자세한 내용은 Obtaining your Amazon SES SMTPcredentials (p. 84) 단원을 참조하십시오.

3. /etc/exim.conf.local 저장4. 구성 업데이트를 마치면 다음 명령을 입력하여 Exim을 다시 시작합니다.

sudo /etc/init.d/exim4 restart

Note

이 명령은 사용하는 운영 체제에 따라 다를 수 있습니다.5. 테스트 메시지를 전송하려면 명령줄에서 다음 작업을 완료합니다.

a. 다음 명령을 입력합니다.

exim -v [email protected]

이전 명령에서 교체 [email protected] 을(를) 사용하여 메시지를 로 보냅니다.b. 다음을 누르십시오.Enter 각 라인의 끝에 있습니다.

From: [email protected]: Test messageThis is a test.

.

이전 명령에서 교체 [email protected] 에서 메시지를 전송하고자 하는 주소를 가지고 있습니다.

누를 때 Enter 최종 기간 이후에는 Exim이 SMTP 서버와의 대화를 시작합니다. 메시지가 전송된 후에도 연결이 열려 있는 경우,Ctrl+D 을(를) 닫습니다.

Tip

메시지가 전송되지 않은 경우 시스템의 메일 로그에 오류가 있는지 확인합니다. Exim 메일로그는 보통 /var/log/exim4/mainlog에 있습니다.

Test your connection to the Amazon SES SMTP interface usingthe command line운영 체제의 명령줄에서 Amazon SES SMTP 인터페이스와 상호 작용할 수 있습니다. 이 단원에서 설명하는방법은 Amazon SES SMTP 엔드포인트에 대한 연결을 테스트하고, SMTP 자격 증명을 확인하고, 연결 문제를 해결하는 데 사용하기 위한 것입니다. 이러한 절차에서는 가장 일반적인 운영 체제에 포함된 도구 및 라이브러리를 사용합니다.

SMTP 연결 문제 해결에 대한 자세한 내용은 Amazon SES SMTP issues (p. 452) 단원을 참조하십시오.

Prerequisites

Amazon SES SMTP 인터페이스에 연결할 때 일련의 SMTP 자격 증명을 제공해야 합니다. 이러한 SMTP 자격 증명은 표준 AWS 자격 증명과 다릅니다. 두 유형의 자격 증명을 서로 바꿔 사용할 수 없습니다. SMTP 자

99

Page 108: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

격 증명을 받는 방법에 대한 자세한 내용은 the section called “Obtaining your SMTP credentials” (p. 84)단원을 참조하십시오.

Testing your connection to the Amazon SES SMTP interface명령줄을 사용하여 메시지를 인증하거나 보내지 않고 Amazon SES SMTP 인터페이스와의 연결을 테스트할수 있습니다. 기본적인 연결 문제를 해결하는 데 이 절차가 유용합니다.

이 단원에는 OpenSSL(대부분의 Linux, macOS 및 Unix 배포에 포함되고 Windows에서도 사용 가능함)과PowerShell의 Test-NetConnection cmdlet(대부분의 최신 Windows 버전에 포함됨)을 둘 다 사용하여 연결을 테스트하는 절차가 나와 있습니다.

Linux, macOS, or Unix

Amazon SES SMTP 인터페이스를 OpenSSL과 연결하는 두 가지 방법이 있습니다. 포트 587을 통해 명시적 SSL을 사용하거나 포트 465를 통해 암시적 SSL을 사용하는 것입니다.

명시적 SSL을 사용하여 SMTP 인터페이스에 연결하려면

• 명령줄에 다음 명령을 입력하여 Amazon SES SMTP 서버에 연결합니다.

openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-west-2.amazonaws.com:587

이전 명령에서 교체 email-smtp.us-west-2.amazonaws.com 의 URL을 Amazon SES 귀하를위한 SMTP 엔드포인트 AWS 지역. 자세한 정보는 Regions (p. 432) 단원을 참조하십시오.

연결이 성공하면 다음과 비슷한 출력이 보입니다.

depth=2 C = US, O = Amazon, CN = Amazon Root CA 1verify return:1depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazonverify return:1depth=0 CN = email-smtp.us-west-2.amazonaws.comverify return:1250 Ok

비활성 시간이 약 10초 이상 지속되면 연결이 자동으로 닫힙니다.

또는 암시적 SSL을 사용하여 포트 465를 통해 SMTP 인터페이스에 연결할 수 있습니다.

암시적 SSL을 사용하여 SMTP 인터페이스에 연결하려면

• 명령줄에 다음 명령을 입력하여 Amazon SES SMTP 서버에 연결합니다.

openssl s_client -crlf -quiet -connect email-smtp.us-west-2.amazonaws.com:465

이전 명령에서 교체 email-smtp.us-west-2.amazonaws.com 의 URL을 Amazon SES 귀하를위한 SMTP 엔드포인트 AWS 지역. 자세한 정보는 Regions (p. 432) 단원을 참조하십시오.

연결이 성공하면 다음과 비슷한 출력이 보입니다.

depth=2 C = US, O = Amazon, CN = Amazon Root CA 1verify return:1depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazonverify return:1depth=0 CN = email-smtp.us-west-2.amazonaws.comverify return:1

100

Page 109: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

220 email-smtp.amazonaws.com ESMTP SimpleEmailService-d-VCSHDP1YZ A1b2C3d4E5f6G7h8I9j0

비활성 시간이 약 10초 이상 지속되면 연결이 자동으로 닫힙니다.

PowerShell

PowerShell의 Test-NetConnection cmdlet를 사용하여 Amazon SES SMTP 서버에 연결할 수 있습니다.Note

Test-NetConnection cmdlet를 통해 컴퓨터가 Amazon SES SMTP 엔드포인트에 연결할수 있는지 여부를 확인할 수 있습니다. 하지만 컴퓨터가 SMTP 엔드포인트에 대한 암시적 또는 명시적 SSL 연결을 만들 수 있는지 여부는 테스트하지 않습니다. SSL 연결을 테스트하려면Windows용 OpenSSL을 설치하거나 Using the command line to send email using the AmazonSES SMTP interface (p. 101) 단원의 절차를 완료하여 테스트 이메일을 보낼 수 있습니다.

Test-NetConnection cmdlet를 사용하여 SMTP 인터페이스에 연결하려면

• PowerShell에 다음 명령을 입력하여 Amazon SES SMTP 서버에 연결합니다.

Test-NetConnection -Port 587 -ComputerName email-smtp.us-west-2.amazonaws.com

이전 명령에서 교체 email-smtp.us-west-2.amazonaws.com 의 URL을 Amazon SES 귀하를위한 SMTP 엔드포인트 AWS 지역 및 교체 587 포트 번호 를 사용합니다. Amazon SES의 리전 엔드포인트에 대한 자세한 내용은 Regions (p. 432) 단원을 참조하십시오.

연결이 성공하면 다음 예제와 유사한 출력이 표시됩니다.

ComputerName : email-smtp.us-west-2.amazonaws.comRemoteAddress : 198.51.100.126RemotePort : 587InterfaceAlias : EthernetSourceAddress : 203.0.113.46TcpTestSucceeded : True

Using the command line to send email using the Amazon SES SMTP interface명령줄을 사용하여 Amazon SES SMTP 인터페이스를 통해 메시지를 보낼 수도 있습니다. SMTP 자격 증명을 테스트할 때나, Amazon SES를 사용하여 보내는 메시지를 특정 수신자가 받을 수 있는지 테스트할 때 이절차가 유용합니다.

Linux, macOS, or Unix

이메일 발신자가 SMTP 서버에 연결하면 클라이언트가 표준 요청 세트를 발행하고 서버가 각 요청에 표준 응답으로 회신합니다. 이 일련의 요청 및 답변은 SMTP conversation. 귀하가 Amazon SES openssl을 사용하는 SMTP 서버는 SMTP 대화가 발생할 것으로 예상합니다.

OpenSSL을 사용하여 SMTP 인터페이스에 연결하려면 base64 인코딩을 사용하여 SMTP 자격 증명을인코딩해야 합니다. 이 단원에는 base64를 사용하여 자격 증명을 인코딩하는 절차가 나와 있습니다.

SMTP 인터페이스를 통해 명령줄에서 이메일을 보내려면

1. 명령줄에서 SMTP 사용자 이름을 인코딩하는 다음 명령을 입력하고, SMTPUsername을 SMTP 사용자 이름으로 바꿉니다.

echo -n "SMTPUsername" | openssl enc -base64

101

Page 110: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

이 명령의 출력을 기록합니다.2. 명령줄에서 SMTP 암호를 인코딩하는 다음 명령을 입력하고, SMTPPassword를 SMTP 암호로 바

꿉니다.

echo -n "SMTPPassword" | openssl enc -base64

이 명령의 출력을 기록합니다.3. 텍스트 편집기에서 새로운 파일을 생성합니다. 다음 코드를 파일에 붙여넣습니다.

EHLO example.comAUTH LOGINBase64EncodedSMTPUserNameBase64EncodedSMTPPasswordMAIL FROM: [email protected] TO: [email protected]: ConfigSetFrom: Sender Name <[email protected]>To: [email protected]: Amazon SES SMTP Test

This message was sent using the Amazon SES SMTP interface..QUIT

4. 이전 단계에서 생성한 파일을 다음과 같이 변경합니다.

• Replace example.com with your sending domain.• Replace Base64EncodedSMTPUserName with your base64-encoded SMTP user name.• Replace Base64EncodedSMTPPassword with your base64-encoded SMTP password.• Replace [email protected] with the email address you are sending from. This identity

must be verified.• Replace [email protected] with the destination email address. If your Amazon SES

account is still in the sandbox, this address must be verified.• Replace ConfigSet with the name of the configuration set (p. 235) that you want to use

when you send this email.

Note

If you don't want to use a configuration set, you can omit the entire line that begins withX-SES-CONFIGURATION-SET.

작업을 마치면 파일 이름을 input.txt으로 저장합니다.5. 명령줄에서 다음 옵션 중 하나를 선택합니다.

• To send using explicit SSL over port 587 – Enter the following command:

openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-west-2.amazonaws.com:587 < input.txt

• To send using implicit SSL over port 465 – Enter the following command:

openssl s_client -crlf -quiet -connect email-smtp.us-west-2.amazonaws.com:465 < input.txt

102

Page 111: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

Note

Replace email-smtp.us-west-2.amazonaws.com 의 URL을 Amazon SES 귀하를 위한 SMTP 엔드포인트 AWS 지역. 자세한 정보는 Regions (p. 432) 단원을 참조하십시오.

Amazon SES에서 메시지를 수락하면 다음 예제와 유사한 출력이 표시됩니다.

250 Ok 01010160d7de98d8-21e57d9a-JZho-416c-bbe1-8ebaAexample-000000

250 Ok 뒤에 나오는 숫자 및 텍스트 문자열이 이메일의 메시지 ID입니다.Note

비활성 시간이 약 10초 이상 지속되면 연결이 자동으로 닫힙니다.

PowerShell

Net.Mail.SmtpClient 클래스를 이용하면 포트 587을 통해 명시적 SSL을 사용하여 이메일을 보낼 수 있습니다.

Note

이 Net.Mail.SmtpClient 클래스는 공식적으로 사용되지 않으므로 타사 라이브러리를 사용하는 것이 좋습니다. 이 코드는 테스트 목적으로만 사용되며 프로덕션 워크로드에 사용해서는안 됩니다.

명시적 SSL을 사용하여 PowerShell을 통해 이메일을 보내려면

1. 텍스트 편집기에서 새로운 파일을 생성합니다. 다음 코드를 파일에 붙여넣습니다.

function SendEmail($Server, $Port, $Sender, $Recipient, $Subject, $Body) { $Credentials = [Net.NetworkCredential](Get-Credential)

$SMTPClient = New-Object Net.Mail.SmtpClient($Server, $Port) $SMTPClient.EnableSsl = $true $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Credentials.Username, $Credentials.Password);

try { Write-Output "Sending message..." $SMTPClient.Send($Sender, $Recipient, $Subject, $Body) Write-Output "Message successfully sent to $($Recipient)" } catch [System.Exception] { Write-Output "An error occurred:" Write-Error $_ }}

function SendTestEmail(){ $Server = "email-smtp.us-west-2.amazonaws.com" $Port = 587

$Subject = "Test email sent from Amazon SES" $Body = "This message was sent from Amazon SES using PowerShell (explicit SSL, port 587)."

$Sender = "[email protected]" $Recipient = "[email protected]"

SendEmail $Server $Port $Sender $Recipient $Subject $Body

103

Page 112: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the SMTP interface

}

SendTestEmail

작업을 마치면 파일 이름을 SendEmail.ps1으로 저장합니다.2. 이전 단계에서 생성한 파일을 다음과 같이 변경합니다.

• Replace [email protected] with the email address that you want to send the messagefrom.

• Replace [email protected] with the email address that you want to send the messageto.

• Replace email-smtp.us-west-2.amazonaws.com with the URL of the Amazon SES SMTPendpoint for your AWS Region. For more information, see Regions and Amazon SES (p. 432).

3. PowerShell에 다음 명령을 입력합니다.

.\path\to\SendEmail.ps1

이전 명령에서 교체 path\to\SendEmail.ps1 1단계에서 생성한 파일의 경로를 참조하십시오.4. 메시지가 표시되면 SMTP 사용자 이름과 암호를 입력합니다.

또는 System.Web.Mail.SmtpMail 클래스를 이용하면 포트 465를 통해 암시적 SSL을 사용하여 이메일을보낼 수 있습니다.

Note

이 System.Web.Mail.SmtpMail 클래스는 공식적으로 사용되지 않으므로 타사 라이브러리를 사용하는 것이 좋습니다. 이 코드는 테스트 목적으로만 사용되며 프로덕션 워크로드에 사용해서는 안 됩니다.

암시적 SSL을 사용하여 PowerShell을 통해 이메일을 보내려면

1. 텍스트 편집기에서 새로운 파일을 생성합니다. 다음 코드를 파일에 붙여넣습니다.

[System.Reflection.Assembly]::LoadWithPartialName("System.Web") > $null

function SendEmail($Server, $Port, $Sender, $Recipient, $Subject, $Body) { $Credentials = [Net.NetworkCredential](Get-Credential)

$mail = New-Object System.Web.Mail.MailMessage $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", $Server) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", $Port) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", $true) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", $Credentials.UserName) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", $Credentials.Password) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout", $timeout / 1000) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", 2) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1)

$mail.From = $Sender $mail.To = $Recipient $mail.Subject = $Subject $mail.Body = $Body

104

Page 113: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드API 사용

try { Write-Output "Sending message..." [System.Web.Mail.SmtpMail]::Send($mail) Write-Output "Message successfully sent to $($Recipient)" } catch [System.Exception] { Write-Output "An error occurred:" Write-Error $_ }}

function SendTestEmail(){ $Server = "email-smtp.us-west-2.amazonaws.com" $Port = 465 $Subject = "Test email sent from Amazon SES" $Body = "This message was sent from Amazon SES using PowerShell (implicit SSL, port 465)."

$Sender = "[email protected]" $Recipient = "[email protected]"

SendEmail $Server $Port $Sender $Recipient $Subject $Body}

SendTestEmail

작업을 마치면 파일 이름을 SendEmail.ps1으로 저장합니다.2. 이전 단계에서 생성한 파일을 다음과 같이 변경합니다.

• Replace [email protected] with the email address that you want to send the messagefrom.

• Replace [email protected] with the email address that you want to send the messageto.

• Replace email-smtp.us-west-2.amazonaws.com with the URL of the Amazon SES SMTPendpoint for your AWS Region. For more information, see Regions and Amazon SES (p. 432).

3. PowerShell에 다음 명령을 입력합니다.

.\path\to\SendEmail.ps1

이전 명령에서 교체 path\to\SendEmail.ps1 1단계에서 생성한 파일의 경로를 참조하십시오.4. 메시지가 표시되면 SMTP 사용자 이름과 암호를 입력합니다.

Amazon SES API를 사용하여 이메일 보내기Amazon SES를 통해 프로덕션 이메일을 보내려면 SMTP(Simple Mail Transfer Protocol) 인터페이스 또는Amazon SES API를 사용할 수 있습니다. SMTP 인터페이스에 대한 자세한 내용은 Using the Amazon SESSMTP interface to send email (p. 83) 단원을 참조하십시오. 이 단원에서는 API를 사용하여 이메일을 보내는 방법을 설명합니다.

Amazon SES API를 사용하여 이메일을 보낼 수도 있습니다. API를 사용하여 이메일을 보낼 때 메시지 내용을 지정하면 Amazon SES에서 MIME 이메일을 수집합니다. 또는 이메일을 직접 수집하여 메시지 내용을 완전히 제어할 수 있습니다. API에 대한 자세한 내용은 Amazon Simple Email Service API Reference 단원을참조하십시오. Amazon SES를 사용할 수 있는 AWS 리전의 엔드포인트 URL 목록을 보려면 AWS GeneralReference에서 Amazon Simple Email Service 엔드포인트 및 할당량을 참조하십시오.

다음과 같은 방식으로 API를 호출할 수 있습니다.

105

Page 114: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드API 사용

• 직접 HTTPS 요청 만들기 — 이는 가장 고급 방법이며, 요청의 인증 및 서명을 수동으로 처리한 다음요청을 수동으로 구성해야 합니다. 요청을 만드는 방법에 대한 자세한 내용은 Using the Amazon SESAPI (p. 383) 단원을 참조하십시오.

• AWS SDK 사용—AWS SDK를 사용하면 Amazon SES를 포함하여 여러 AWS 서비스의 API에 쉽게 액세스할 수 있습니다. SDK를 사용할 경우 인증, 요청 서명, 재시도 로직, 오류 처리 및 기타 하위 수준 기능이알아서 처리되므로 고객을 만족시킬 애플리케이션 구축에 집중할 수 있습니다.

• 명령줄 인터페이스 사용—AWS Command Line Interface는 Amazon SES용 명령줄 도구입니다. 또한PowerShell 환경에서 스크립팅하는 사용자를 위해 Windows PowerShell용 AWS 도구도 제공합니다.

Amazon SES API에 직접 액세스하든 또는 AWS SDK, AWS Command Line Interface 또는 WindowsPowerShell용 AWS 도구를 통해 간접적으로 액세스하든 상관없이 Amazon SES API는 사용자가 이메일 메시지 작성을 어느 정도 제어하고자 하는지에 따라 두 가지 이메일 전송 방법을 제공합니다.

• 서식 있음—Amazon SES에서 적절하게 서식이 지정된 이메일 메시지를 작성하고 전송합니다. 사용자는"발신:" 및 "수신:" 주소, 제목, 메시지 본문만 제공하면 됩니다. 나머지는 모두 Amazon SES에서 자동으로처리됩니다. 자세한 내용은 Sending formatted email using the Amazon SES API (p. 106) 단원을 참조하십시오.

• 원시—이메일 헤더와 MIME 형식을 직접 지정하여 이메일 메시지를 수동으로 작성하고 전송합니다. 이메일 서식을 직접 설정하는 데 익숙한 경우 원시 인터페이스를 사용하면 메시지 작성을 더 세부적으로 제어할 수 있습니다. 자세한 내용은 Sending raw email using the Amazon SES API (p. 106)를 참조하십시오.

이 단원의 주제:• Sending formatted email using the Amazon SES API (p. 106)• Sending raw email using the Amazon SES API (p. 106)

Sending formatted email using the Amazon SES APIAWS Management 콘솔을 사용하거나 직접 애플리케이션을 통해 또는 AWS SDK, AWS Command LineInterface 또는 Windows PowerShell용 AWS 도구를 통해 간접적으로 Amazon SES API를 호출하여 서식이지정된 이메일을 보낼 수 있습니다.

The Amazon SES API는 SendEmail 포맷된 이메일 을(를) 구성하고 전송할 수 있습니다. SendEmail 시작:주소, 주소: 주소, 메시지 제목 및 메시지 본문—텍스트, HTML 또는 둘 다 SendEmail에 대한 전체 설명을보려면 Amazon Simple Email Service API Reference로 이동하십시오.

Note

이메일 주소 문자열은 7비트 ASCII여야 합니다. 주소의 도메인 부분에 유니코드 문자가 포함된 이메일 주소와 메시지를 주고 받으려면 퓨니코드를 사용하여 도메인을 인코딩해야 합니다. 자세한 내용은 RFC 3492를 참조하십시오.

AWS SDK for Java 또는 .NET용 AWS SDK를 사용하여 서식이 지정된 메시지를 작성하는 방법의 예제는각각 Send an email using the AWS SDK for Java (p. 33) 또는 Send an email using the .NET용 AWSSDK (p. 30)를 참조하십시오.

SendEmail을 여러 번 호출할 때 이메일 전송 속도를 향상하는 방법에 대한 팁은 Increasing throughput withAmazon SES (p. 451)를 참조하십시오.

Sending raw email using the Amazon SES APIAmazon SES SendRawEmail 작업을 사용하여 수신자에게 세부적으로 사용자 지정된 메시지를 보낼 수 있습니다.

이 단원에는 Amazon SES API를 사용하여 원시 이메일을 작성하고 보내는 절차가 나와 있습니다.

106

Page 115: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드API 사용

About email header fieldsSMTP(Simple Mail Transfer Protocol)는 이메일 봉투와 몇 가지 해당 파라미터를 정의하여 이메일 메시지를 전송하는 방법을 지정하지만, 메시지 콘텐츠에는 관련되지 않습니다. 그 대신, 인터넷 메시지 형식(RFC5322)이 메시지 작성 방법을 정의합니다.

인터넷 메시지 형식 지정을 사용할 경우 모든 이메일 메시지는 헤더와 본문으로 구성됩니다. 헤더는 메시지 메타데이터로 구성되며, 본문에는 메시지 자체가 포함됩니다. 이메일 헤더와 본문에 대한 자세한 내용은Email format and Amazon SES (p. 13) 단원을 참조하십시오.

Using MIMESMTP 프로토콜은 원래 7비트 ASCII 문자만 포함된 이메일 메시지를 전송하기 위해 설계되었습니다. 이 사양으로 인해 비 ASCII 텍스트 인코딩(예: 유니코드), 바이너리 콘텐츠 또는 첨부 파일에는 SMTP가 부족합니다. MIME(Multipurpose Internet Mail Extensions) 표준은 SMTP를 사용하여 다른 많은 종류의 콘텐츠를 전송할 수 있도록 하기 위해 개발되었습니다.

MIME 표준은 메시지 본문을 여러 부분으로 분류한 다음 각 부분에 수행할 작업을 지정하는 방식으로 작동합니다. 예를 들어, 이메일 메시지 본문의 한 부분은 일반 텍스트이고 다른 한 부분은 HTML일 수 있습니다. 또한 MIME는 이메일 메시지에 하나 이상의 첨부 파일이 포함될 수 있도록 허용합니다. 메시지 수신자는 이메일 클라이언트에서 첨부 파일을 보거나 첨부 파일을 저장할 수 있습니다.

메시지 헤더와 콘텐츠는 빈 줄로 분리됩니다. 이메일의 각 부분은 각 부분의 시작과 종료를 나타내는 문자열인 경계로 분리됩니다.

다음 예제의 여러 부분으로 구성된 메시지에는 텍스트 부분과 HTML 부분이 포함되어 있습니다. 또한 첨부파일도 포함되어 있습니다.

From: "Sender Name" <[email protected]>To: [email protected]: Customer service contact infoContent-Type: multipart/mixed; boundary="a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a"

--a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1aContent-Type: multipart/alternative; boundary="sub_a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a"

--sub_a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1aContent-Type: text/plain; charset=iso-8859-1Content-Transfer-Encoding: quoted-printable

Please see the attached file for a list of customers to contact.

--sub_a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1aContent-Type: text/html; charset=iso-8859-1Content-Transfer-Encoding: quoted-printable

<html><head></head><body><h1>Hello!</h1><p>Please see the attached file for a list of customers to contact.</p></body></html>

--sub_a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a--

--a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1aContent-Type: text/plain; name="customers.txt"Content-Description: customers.txtContent-Disposition: attachment;filename="customers.txt"; creation-date="Sat, 05 Aug 2017 19:35:36 GMT";

107

Page 116: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드API 사용

Content-Transfer-Encoding: base64

SUQsRmlyc3ROYW1lLExhc3ROYW1lLENvdW50cnkKMzQ4LEpvaG4sU3RpbGVzLENhbmFkYQo5MjM4OSxKaWUsTGl1LENoaW5hCjczNCxTaGlybGV5LFJvZHJpZ3VleixVbml0ZWQgU3RhdGVzCjI4OTMsQW5heWEsSXllbmdhcixJbmRpYQ==

--a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a--

이 메시지의 콘텐츠 유형은 multipart/mixed로, 이는 메시지에 여러 부분(이 예제에서는 본문과 첨부 파일)이 있고 수신 클라이언트가 각 부분을 개별적으로 처리해야 함을 나타냅니다. 본문 섹션 내에서 중첩된 두번째 부분은 multipart/alternative 콘텐츠 유형을 사용합니다. 이 콘텐츠 유형은 각 부분에 동일한 콘텐츠의 대체 버전이 포함되어 있음을 나타냅니다(이 경우에는 텍스트 버전과 HTML 버전). 수신자의 이메일클라이언트가 HTML 콘텐츠를 표시할 수 있으면 메시지 본문의 HTML 버전이 표시됩니다. 수신자의 이메일클라이언트가 HTML 콘텐츠를 표시할 수 없으면 메시지 본문의 일반 텍스트 버전이 표시됩니다. 두 메시지버전에는 첨부 파일도 포함됩니다(이 경우 일부 고객 이름이 포함된 짧은 텍스트 파일).

이 예제에서처럼 다른 부분 내에 MIME 부분을 중첩하는 경우, 중첩된 부분은 상위 부분의 boundary 파라미터와 다른 boundary 파라미터를 사용해야 합니다. 이러한 경계는 고유한 문자열이어야 합니다. MIME 부분간에 경계를 정의하려면 하이픈 두 개(--) 뒤에 경계 문자열을 입력합니다 MIME 부분의 마지막에는 경계 문자열의 시작과 끝 모두에 하이픈 두 개를 넣습니다.

MIME Encoding

이전 시스템과의 호환성을 유지하기 위해 Amazon SES는 RFC 2821에 정의된 대로 SMTP의 7비트 ASCII제한을 준수합니다. 비 ASCII 문자가 포함된 콘텐츠를 보내려면 해당 문자를 7비트 ASCII 문자를 사용하는형식으로 인코딩해야 합니다.

Email addresses

메시지 봉투에서 사용되는 이메일 주소를 인코딩하려면 퓨니코드 인코딩을 사용하십시오.

예를 들어,#[email protected]의 로컬 부분에 Puncode 인코딩을 사용합니다(@ 기호의 전 부분). 결과적으로 암호화된 주소는 다음과 같습니다. [email protected].

Note

이 규칙은 메시지 헤더가 아닌 메시지 봉투에 지정하는 이메일 주소에만 적용됩니다. 귀하가SendRawEmail API, 사용자가 지정한 주소인 Source 그리고 Destinations 매개 변수는 각각봉투와 수신자를 정의합니다.

퓨니코드 인코딩에 대한 자세한 내용은 RFC 3492를 참조하십시오.

Email headers

메시지 헤더를 인코딩하려면 MIME 인코딩된 단어 구문을 사용하십시오. MIME 인코딩된 단어 구문에는 다음 형식이 사용됩니다.

=?charset?encoding?encoded-text?=

The value of encoding 이(가) Q 또는 B. 인코딩의 값이 Q, 그 값은 encoded-text Q-인코딩을 사용해야 합니다. 인코딩의 값이 B이면 encoded-text 값은 base64 인코딩을 사용해야 합니다.

예를 들어, 문자열을 사용하여 연꽃 연말연시 연주자 이메일 제목에 다음 인코딩을 사용할 수 있습니다.

• Q-encoding

=?utf-8?Q?=D0=AF=D0=BA_=D1=82=D0=B8_=D0=BF=D0=BE=D0=B6=D0=B8=D0=B2=D0=B0=D1=94=D1=88=3F?=

• Base64 encoding

=?utf-8?B?0K/QuiDRgtC4INC/0L7QttC40LLQsNGU0Yg/?=

108

Page 117: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드API 사용

Q 인코딩에 대한 자세한 내용은 RFC 2047을 참조하십시오. base64 인코딩에 대한 자세한 내용은 RFC2045를 참조하십시오.

Message body

메시지의 본문을 인코딩하려면 QP(Quoted-Printable) 인코딩 또는 base64 인코딩을 사용할 수 있습니다. 그런 다음,Content-Transfer-Encoding 헤더 - 사용자가 사용한 인코딩 스키마를 나타냅니다.

예를 들어 메시지의 본문에 다음 텍스트가 포함되어 있다고 가정해보십시오.

१९७२ मे रे टॉमलंिसन ने पहला ई-मेल संेदश भेजा | रे टॉमलंिसन ने ही स्रव्परथम @ चि्नह का चयन किया और इ्नही को ईेमल काआवि्षकारक माना जाता है

base64 인코딩을 사용하여 이 텍스트를 인코딩하려면 먼저 다음 헤더를 지정하십시오.

Content-Transfer-Encoding: base64

그 다음, 이메일의 본문 섹션에 base64로 인코딩된 텍스트를 포함시키십시오.

4KWn4KWv4KWt4KWoIOCkruClhyDgpLDgpYcg4KSf4KWJ4KSu4KSy4KS/4KSC4KS44KSoIOCkqOClhyDgpKrgpLngpLLgpL4g4KSILeCkruClh+CksiDgpLjgpILgpKbgpYfgpLYg4KSt4KWH4KSc4KS+IHwg4KSw4KWHIOCkn+ClieCkruCksuCkv+CkguCkuOCkqCDgpKjgpYcg4KS54KWAIOCkuOCksOCljeCkteCkquCljeCksOCkpeCkriBAIOCkmuCkv+CkqOCljeCkuSDgpJXgpL4g4KSa4KSv4KSoIOCkleCkv+Ckr+CkviDgpJTgpLAg4KSH4KSo4KWN4KS54KWAIOCkleCliyDgpIjgpK7gpYfgpLIg4KSV4KS+IOCkhuCkteCkv+Ckt+CljeCkleCkvuCksOCklSDgpK7gpL7gpKjgpL4g4KSc4KS+4KSk4KS+IOCkueCliAo=

Note

경우에 따라 Amazon SES를 사용하여 전송하는 메시지에 8비트 Content-Transfer-Encoding을 사용할 수 있습니다. 그러나 Amazon SES가 메시지를 변경해야 하는 경우(예: 열기 및클릭 추적 (p. 479)을 사용하는 경우) 8비트로 인코딩된 콘텐츠가 수신자의 받은 편지함에 도착할때 올바르게 표시되지 않을 수 있습니다. 이러한 이유로 7비트 ASCII가 아닌 콘텐츠는 항상 인코딩해야 합니다.

File attachments

이메일에 파일을 첨부하려면 base64 인코딩을 사용하여 첨부 파일을 인코딩해야 합니다. 첨부 파일은 일반적으로 다음 헤더를 포함하는 전용 MIME 메시지 부분에 배치됩니다.

• Content-Type: The file type of the attachment. The following are examples of common MIME Content-Type declarations:• Plain text file: Content-Type: text/plain; name="sample.txt"• Microsoft Word Document: Content-Type: application/msword; name="document.docx"• JPG image: Content-Type: image/jpeg; name="photo.jpeg"

• Content-Disposition: Specifies how the recipient's email client should handle the content. Forattachments, this value is Content-Disposition: attachment.

• Content-Transfer-Encoding: The scheme that was used to encode the attachment. For file attachments,this value is almost always base64.

Amazon SES는 가장 일반적인 파일 유형을 허용합니다. Amazon SES에서 허용하지 않는 파일 유형 목록은Unsupported attachment types (p. 486) 단원을 참조하십시오.

Sending raw email using the Amazon SES APIAmazon SES API는 사용자가 지정하는 형식으로 이메일 메시지를 작성하고 전송할 수 있는SendRawEmail 작업을 제공합니다. SendRawEmail에 대한 전체 설명을 보려면 Amazon Simple EmailService API Reference를 참조하십시오.

109

Page 118: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드API 사용

Note

SendRawEmail을 여러 번 호출할 때 이메일 전송 속도를 향상하는 방법에 대한 팁은 Increasingthroughput with Amazon SES (p. 451)를 참조하십시오.

메시지 본문에는 적절한 헤더 필드 및 메시지 본문 인코딩과 함께 적절하게 서식 설정된 원시 이메일 메시지가 포함되어야 합니다. 애플리케이션 내에서 원시 메시지를 수동으로 작성할 수 있지만, 기존 메일 라이브러리를 사용하여 작성하면 훨씬 더 간편합니다.

Java

다음 코드 예제는 JavaMail 라이브러리와 AWS SDK for Java를 사용하여 원시 이메일을 작성하고 전송하는 방법을 보여줍니다.

package com.amazonaws.samples;

import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.PrintStream;import java.nio.ByteBuffer;import java.util.Properties;

// JavaMail libraries. Download the JavaMail API // from https://javaee.github.io/javamail/import javax.activation.DataHandler;import javax.activation.DataSource;import javax.activation.FileDataSource;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Session;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;

// AWS SDK libraries. Download the AWS SDK for Java // from https://aws.amazon.com/sdk-for-javaimport com.amazonaws.regions.Regions;import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder;import com.amazonaws.services.simpleemail.model.RawMessage;import com.amazonaws.services.simpleemail.model.SendRawEmailRequest;

public class AmazonSESSample {

// Replace [email protected] with your "From" address. // This address must be verified with Amazon SES. private static String SENDER = "Sender Name <[email protected]>";

// Replace [email protected] with a "To" address. If your account // is still in the sandbox, this address must be verified. private static String RECIPIENT = "[email protected]";

// Specify a configuration set. If you do not want to use a configuration // set, comment the following variable, and the // ConfigurationSetName=CONFIGURATION_SET argument below. private static String CONFIGURATION_SET = "ConfigSet";

// The subject line for the email. private static String SUBJECT = "Customer service contact info";

// The full path to the file that will be attached to the email. // If you're using Windows, escape backslashes as shown in this variable.

110

Page 119: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드API 사용

private static String ATTACHMENT = "C:\\Users\\sender\\customers-to-contact.xlsx";

// The email body for recipients with non-HTML email clients. private static String BODY_TEXT = "Hello,\r\n" + "Please see the attached file for a list " + "of customers to contact.";

// The HTML body of the email. private static String BODY_HTML = "<html>" + "<head></head>" + "<body>" + "<h1>Hello!</h1>" + "<p>Please see the attached file for a " + "list of customers to contact.</p>" + "</body>" + "</html>";

public static void main(String[] args) throws AddressException, MessagingException, IOException { Session session = Session.getDefaultInstance(new Properties()); // Create a new MimeMessage object. MimeMessage message = new MimeMessage(session); // Add subject, from and to lines. message.setSubject(SUBJECT, "UTF-8"); message.setFrom(new InternetAddress(SENDER)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(RECIPIENT));

// Create a multipart/alternative child container. MimeMultipart msg_body = new MimeMultipart("alternative"); // Create a wrapper for the HTML and text parts. MimeBodyPart wrap = new MimeBodyPart(); // Define the text part. MimeBodyPart textPart = new MimeBodyPart(); textPart.setContent(BODY_TEXT, "text/plain; charset=UTF-8"); // Define the HTML part. MimeBodyPart htmlPart = new MimeBodyPart(); htmlPart.setContent(BODY_HTML,"text/html; charset=UTF-8"); // Add the text and HTML parts to the child container. msg_body.addBodyPart(textPart); msg_body.addBodyPart(htmlPart); // Add the child container to the wrapper object. wrap.setContent(msg_body); // Create a multipart/mixed parent container. MimeMultipart msg = new MimeMultipart("mixed"); // Add the parent container to the message. message.setContent(msg); // Add the multipart/alternative part to the message. msg.addBodyPart(wrap); // Define the attachment MimeBodyPart att = new MimeBodyPart(); DataSource fds = new FileDataSource(ATTACHMENT); att.setDataHandler(new DataHandler(fds)); att.setFileName(fds.getName());

111

Page 120: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드API 사용

// Add the attachment to the message. msg.addBodyPart(att);

// Try to send the email. try { System.out.println("Attempting to send an email through Amazon SES " +"using the AWS SDK for Java...");

// Instantiate an Amazon SES client, which will make the service // call with the supplied AWS credentials. AmazonSimpleEmailService client = AmazonSimpleEmailServiceClientBuilder.standard() // Replace US_WEST_2 with the AWS Region you're using for // Amazon SES. .withRegion(Regions.US_WEST_2).build(); // Print the raw email content on the console PrintStream out = System.out; message.writeTo(out);

// Send the email. ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); message.writeTo(outputStream); RawMessage rawMessage = new RawMessage(ByteBuffer.wrap(outputStream.toByteArray()));

SendRawEmailRequest rawEmailRequest = new SendRawEmailRequest(rawMessage) .withConfigurationSetName(CONFIGURATION_SET); client.sendRawEmail(rawEmailRequest); System.out.println("Email sent!"); // Display an error if something goes wrong. } catch (Exception ex) { System.out.println("Email Failed"); System.err.println("Error message: " + ex.getMessage()); ex.printStackTrace(); } }}

Python

다음 코드 예제는 Python email.mime 패키지와 AWS SDK for Python (Boto)을 사용하여 원시 이메일을작성하고 전송하는 방법을 보여줍니다.

import osimport boto3from botocore.exceptions import ClientErrorfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.application import MIMEApplication

개 Replace [email protected] with your "From" address.개 This address must be verified with Amazon SES.SENDER = "Sender Name <[email protected]>"

개 Replace [email protected] with a "To" address. If your account 개 is still in the sandbox, this address must be verified.RECIPIENT = "[email protected]"

개 Specify a configuration set. If you do not want to use a configuration개 set, comment the following variable, and the 개 ConfigurationSetName=CONFIGURATION_SET argument below.

112

Page 121: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드API 사용

CONFIGURATION_SET = "ConfigSet"

개 If necessary, replace us-west-2 with the AWS Region you're using for Amazon SES.AWS_REGION = "us-west-2"

개 The subject line for the email.SUBJECT = "Customer service contact info"

개 The full path to the file that will be attached to the email.ATTACHMENT = "path/to/customers-to-contact.xlsx"

개 The email body for recipients with non-HTML email clients.BODY_TEXT = "Hello,\r\nPlease see the attached file for a list of customers to contact."

개 The HTML body of the email.BODY_HTML = """\<html><head></head><body><h1>Hello!</h1><p>Please see the attached file for a list of customers to contact.</p></body></html>"""

개 The character encoding for the email.CHARSET = "utf-8"

개 Create a new SES resource and specify a region.client = boto3.client('ses',region_name=AWS_REGION)

개 Create a multipart/mixed parent container.msg = MIMEMultipart('mixed')개 Add subject, from and to lines.msg['Subject'] = SUBJECT msg['From'] = SENDER msg['To'] = RECIPIENT

개 Create a multipart/alternative child container.msg_body = MIMEMultipart('alternative')

개 Encode the text and HTML content and set the character encoding. This step is개 necessary if you're sending a message with characters outside the ASCII range.textpart = MIMEText(BODY_TEXT.encode(CHARSET), 'plain', CHARSET)htmlpart = MIMEText(BODY_HTML.encode(CHARSET), 'html', CHARSET)

개 Add the text and HTML parts to the child container.msg_body.attach(textpart)msg_body.attach(htmlpart)

개 Define the attachment part and encode it using MIMEApplication.att = MIMEApplication(open(ATTACHMENT, 'rb').read())

개 Add a header to tell the email client to treat this part as an attachment,개 and to give the attachment a name.att.add_header('Content-Disposition','attachment',filename=os.path.basename(ATTACHMENT))

개 Attach the multipart/alternative child container to the multipart/mixed개 parent container.msg.attach(msg_body)

개 Add the attachment to the parent container.msg.attach(att)개print(msg)

113

Page 122: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending personalized email

try: 개Provide the contents of the email. response = client.send_raw_email( Source=SENDER, Destinations=[ RECIPIENT ], RawMessage={ 'Data':msg.as_string(), }, ConfigurationSetName=CONFIGURATION_SET )개 Display an error if something goes wrong. except ClientError as e: print(e.response['Error']['Message'])else: print("Email sent! Message ID:"), print(response['MessageId'])

Sending personalized email using the Amazon SESAPI귀하는 크레아트플레이트 전자 메일 템플릿을 만드는 API 작업. 이러한 템플릿에는 제목 줄과 이메일 본문의텍스트 및 HTML 부분이 포함됩니다. 제목과 본문 섹션에는 각 수신자에 대해 맞춤화된 고유 값이 포함될 수도 있습니다.

이러한 기능을 사용할 때 몇 가지 제한 및 기타 고려 사항이 있습니다.

• You can create up to 10,000 email templates per Amazon SES account.• Each template can be up to 500KB in size, including both the text and HTML parts.• You can include an unlimited number of replacement variables in each template.• You can send email to up to 50 destinations in each call to the SendBulkTemplatedEmail operation.

A destination includes a list of recipients, as well as CC and BCC recipients. Note that the numberof destinations you can contact in a single call to the API may be limited by your account's maximumsending rate. For more information, see 관리 Amazon SES 할당량 보내기 (p. 140).

이 단원에는 이메일 템플릿을 만들고 맞춤형 이메일을 보내는 절차가 포함되어 있습니다.

Note

이 섹션의 절차에서는 이미 AWS CLI. AWS CLI 설치 및 구성에 대한 자세한 내용은 AWSCommand Line Interface 사용 설명서를 참조하십시오.

Part 1: Set up rendering failure event notifications잘못된 맞춤형 콘텐츠가 포함된 이메일을 전송하는 경우 Amazon SES에서 메시지를 허용할 수는 있지만 전달할 수 없게 됩니다. 따라서 맞춤형 이메일을 전송하려면 Amazon SNS를 통해 렌더링 오류 이벤트 알림을전송하도록 Amazon SES를 구성해야 합니다. 렌더링 오류 이벤트 알림을 수신할 때 어떤 메시지에 잘못된콘텐츠가 있는지 식별하고, 문제를 해결한 다음 메시지를 다시 전송할 수 있습니다.

이 단원의 절차는 선택 사항이지만 강력히 권장됩니다.

렌더링 오류 이벤트 알림을 구성하려면

1. Amazon SNS 주제를 만듭니다. 절차는 주제 생성 in the Amazon Simple Notification Service 개발자 안내서.

114

Page 123: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending personalized email

2. Amazon SNS 주제를 구독합니다. 예를 들어 렌더링 오류 알림을 이메일로 수신하고자 하는 경우 이메일엔드포인트(이메일 주소)를 주제에 구독시킵니다.

절차는 주제 구독 in the Amazon Simple Notification Service 개발자 안내서.3. the section called “Set up an Amazon SNS destination” (p. 276)의 절차를 완료하여 구성 세트를 설정

해 렌더링 오류 이벤트를 Amazon SNS 주제에 게시합니다.

Part 2: Create an email template이 섹션에서는 createtemplate API 작업을 사용하여 개인화 특성을 가진 새 전자 메일 템플릿을 만듭니다.

이 절차는 AWS CLI를 이미 설치하여 구성한 상태를 전제로 설명합니다. AWS CLI 설치 및 구성에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서를 참조하십시오.

템플릿을 생성하려면

1. 텍스트 편집기에서 새로운 파일을 생성합니다. 다음 코드를 파일에 붙여넣습니다.

{ "Template": { "TemplateName": "MyTemplate", "SubjectPart": "Greetings, {{name}}!", "HtmlPart": "<h1>Hello {{name}},</h1><p>Your favorite animal is {{favoriteanimal}}.</p>", "TextPart": "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}." }}

이 코드는 다음 속성을 포함하고 있습니다.

• TemplateName – The name of the template. When you send the email, you refer to this name.• SubjectPart – The subject line of the email. This property may contain replacement tags. These

tags use the following format: {{tagname}}. When you send the email, you can specify a value fortagname for each destination.

The preceding example includes two tags: {{name}} and {{favoriteanimal}}.• HtmlPart – The HTML body of the email. This property may contain replacement tags.• TextPart – The text body of the email. Recipients whose email clients don't display HTML email see

this version of the email. This property may contain replacement tags.2. 위의 예를 필요에 맞게 사용자 지정한 다음 파일을 mytemplate.json으로 저장합니다.3. 명령줄에서 다음 명령을 입력하여 새 템플릿을 만듭니다. CreateTemplate API 작업:

aws ses create-template --cli-input-json file://mytemplate.json

Part 3: Sending the personalized email이메일 템플릿을 만든 후 이를 사용하여 이메일을 보낼 수 있습니다. 템플릿을 사용하여 팔레트를 전송하는 데 사용할 수 있는 두 가지 API 작업이 있습니다. SendTemplatedEmail, 그리고 SendBulkTemplatedEmail. SendTemplatedEmail 운영은 단일 대상(동일한 이메일을 수신할 "To," "CC" 및 "BCC" 수신자 모음)으로 사용자 지정 이메일을 보내는 데 유용합니다.SendBulkTemplatedEmail 작업은 Amazon SES API에 대한 단일 호출로 여러 대상에 고유의 이메일을보내는 데 유용합니다. 이 단원에서는 AWS CLI를 사용하여 이 두 작업으로 이메일을 보내는 방법의 예제를제공합니다.

115

Page 124: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending personalized email

Sending templated email to a single destinationSendTemplatedEmail 작업을 사용하여 단일 대상으로 이메일을 전송할 수 있습니다. Destination 객체의 모든 수신자는 동일한 이메일을 수신합니다.

단일 대상으로 템플릿 이메일을 전송하려면

1. 텍스트 편집기에서 새로운 파일을 생성합니다. 다음 코드를 파일에 붙여넣습니다.

{ "Source":"Mary Major <[email protected]>", "Template": "MyTemplate", "ConfigurationSetName": "ConfigSet", "Destination": { "ToAddresses": [ "[email protected]" ] }, "TemplateData": "{ \"name\":\"Alejandro\", \"favoriteanimal\": \"alligator\" }"}

이 코드는 다음 속성을 포함하고 있습니다.

• Source – The email address of the sender.• Template – The name of the template to apply to the email.• ConfigurationSetName – The name of the configuration set to use when sending the email.

Note

We recommend that you use a configuration set that is configured to publish RenderingFailure events to Amazon SNS. For more information, see the section called “Part 1: Set upnotifications” (p. 114).

• Destination – The recipient addresses. You can include multiple "To," "CC," and "BCC" addresses.When you use the SendTemplatedEmail operation, all recipients receive the same email.

• TemplateData – An escaped JSON string that contains key-value pairs. The keys correspond to thevariables in the template (for example, {{name}}). The values represent the content that replacesthe variables in the email.

2. 코드의 값을 변경하여 위 요구 사항을 충족시킨 다음 myemail.json 파일로 저장합니다.3. 명령줄에 다음 명령을 입력하여 이메일을 보냅니다.

aws ses send-templated-email --cli-input-json file://myemail.json

Sending templated email to multiple destinationsSendBulkTemplatedEmail 작업을 사용하여 단일 API 호출로 여러 대상에 이메일을 전송할 수 있습니다.Amazon SES는 각 Destination 객체의 수신자에게 고유한 이메일을 전송합니다.

여러 대상에 템플릿 이메일을 전송하려면

1. 텍스트 편집기에서 새로운 파일을 생성합니다. 다음 코드를 파일에 붙여넣습니다.

{ "Source":"Mary Major <[email protected]>", "Template":"MyTemplate", "ConfigurationSetName": "ConfigSet", "Destinations":[ { "Destination":{

116

Page 125: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending personalized email

"ToAddresses":[ "[email protected]" ] }, "ReplacementTemplateData":"{ \"name\":\"Anaya\", \"favoriteanimal\":\"angelfish\" }" }, { "Destination":{ "ToAddresses":[ "[email protected]" ] }, "ReplacementTemplateData":"{ \"name\":\"Liu\", \"favoriteanimal\":\"lion\" }" }, { "Destination":{ "ToAddresses":[ "[email protected]" ] }, "ReplacementTemplateData":"{ \"name\":\"Shirley\", \"favoriteanimal\":\"shark\" }" }, { "Destination":{ "ToAddresses":[ "[email protected]" ] }, "ReplacementTemplateData":"{}" } ], "DefaultTemplateData":"{ \"name\":\"friend\", \"favoriteanimal\":\"unknown\" }"}

이 코드는 다음 속성을 포함하고 있습니다.

• Source – The email address of the sender.• Template – The name of the template to apply to the email.• ConfigurationSetName – The name of the configuration set to use when sending the email.

Note

We recommend that you use a configuration set that is configured to publish RenderingFailure events to Amazon SNS. For more information, see the section called “Part 1: Set upnotifications” (p. 114).

• Destinations – An array that contains one or more Destinations.• Destination – The recipient addresses. You can include multiple "To," "CC," and "BCC" addresses.

When you use the SendBulkTemplatedEmail operation, all recipients within the sameDestination object receive the same email.

• ReplacementTemplateData – A JSON object that contains key-value pairs. The keys correspondto the variables in the template (for example, {{name}}). The values represent the content thatreplaces the variables in the email.

• DefaultTemplateData – A JSON object that contains key-value pairs. The keys correspond tothe variables in the template (for example, {{name}}). The values represent the content thatreplaces the variables in the email. This object contains fallback data. If a Destination objectcontains an empty JSON object in the ReplacementTemplateData property, the values in theDefaultTemplateData property are used.

2. 코드의 값을 변경하여 위 요구 사항을 충족시킨 다음 mybulkemail.json 파일로 저장합니다.

117

Page 126: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending personalized email

3. 명령줄에 다음 명령을 입력하여 대량 이메일을 보냅니다.

aws ses send-bulk-templated-email --cli-input-json file://mybulkemail.json

Advanced email personalizationAmazon SES의 템플릿 기능은 핸들 잡기 템플릿 시스템을 기반으로 합니다. 핸들 잡기를 사용하여 중첩 속성, 어레이 반복, 기본 조건문 및 인라인 부분과 같은 고급 기능이 포함되는 템플릿을 생성할 수 있습니다. 이단원에서는 이러한 기능의 예를 제공합니다.

핸들 잡기에는 이 섹션에 설명되어 있는 기능 외의 추가 기능이 포함됩니다. 자세한 내용은 내장 헬멧 에서handlebarsjs.com.

주제• Parsing nested attributes (p. 118)• Iterating through lists (p. 119)• Using basic conditional statements (p. 120)• Creating inline partials (p. 122)

Parsing nested attributes핸들 잡기에는 복잡한 고객 데이터를 쉽게 구성할 수 있는 중첩 경로 지원이 포함되고 이메일 템플릿의 그 데이터를 참조합니다.

예를 들어 수신자 데이터를 여러 일반 범주로 조직할 수 있습니다. 각 범주 내에 세부 정보를 포함할 수 있습니다. 다음 코드 예에는 단일 수신자에 대한 이 구조의 예가 나옵니다.

{ "meta":{ "userId":"51806220607" }, "contact":{ "firstName":"Anaya", "lastName":"Iyengar", "city":"Bengaluru", "country":"India", "postalCode":"560052" }, "subscription":[ { "interest":"Sports" }, { "interest":"Travel" }, { "interest":"Cooking" } ]}

이메일 템플릿에서 상위 속성의 이름 뒤에 마침표(.)와 값을 포함할 속성의 이름을 제공하여 중첩 속성을 참조할 수 있습니다. 예를 들어 앞의 예에 표시된 데이터 구조를 사용하고 이메일 템플릿에 각 수신자의 이름을포함하려는 경우 이메일 템플릿에 Hello {{contact.firstName}}! 텍스트를 포함합니다.

핸들 잡기는 여러 수준 깊이로 중첩된 경로를 구문 분석할 수 있기 때문에 유연하게 템플릿 데이터를 구성할수 있습니다.

118

Page 127: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending personalized email

Iterating through lists

each 보조 도구 함수는 어레이로 항목을 살펴봅니다. 다음 코드는 each 헬퍼 함수를 사용하여 항목화된 각수신자의 관심사 목록을 생성하는 이메일 템플릿의 예입니다.

{ "Template": { "TemplateName": "Preferences", "SubjectPart": "Subscription Preferences for {{contact.firstName}} {{contact.lastName}}", "HtmlPart": "<h1>Your Preferences</h1> <p>You have indicated that you are interested in receiving information about the following subjects:</p> <ul> {{개each subscription}} <li>{{interest}}</li> {{/each}} </ul> <p>You can change these settings at any time by visiting the <a href=https://www.example.com/prefererences/i.aspx?id={{meta.userId}}> Preference Center</a>.</p>", "TextPart": "Your Preferences\n\nYou have indicated that you are interested in receiving information about the following subjects:\n {{개each subscription}} - {{interest}}\n {{/each}} \nYou can change these settings at any time by visiting the Preference Center at https://www.example.com/prefererences/i.aspx?id={{meta.userId}}" }}

Important

앞의 코드 예에는 예를 이해하기 쉽도록 HtmlPart 및 TextPart 속성의 값에 줄 바꿈이 포함되어있습니다. 템플릿의 JSON 파일에는 이러한 값 내에 줄바꿈이 포함될 수 없습니다. 이 예를 복사하여 자체 JSON 파일에 붙여 넣으면 진행하기 전에 HtmlPart 및 TextPart 섹션에서 줄 바꿈 및 추가 공백을 제거합니다.

템플릿을 생성한 후 SendTemplatedEmail 또는 SendBulkTemplatedEmail 작업을 사용하여 수신자에게 이 템플릿으로 이메일을 보낼 수 있습니다. 각 수신자가 Interests 객체에 최소 하나의 값이 있는 한 항목화된 관심사 목록이 포함되는 이메일을 수신합니다. 다음 예는 앞의 템플릿을 사용하여 여러 수신자에게이메일을 보내는 데 사용할 수 있는 JSON 템플릿을 보여 줍니다.

{ "Source":"Sender Name <[email protected]>", "Template":"Preferences", "Destinations":[ { "Destination":{ "ToAddresses":[ "[email protected]" ] }, "ReplacementTemplateData":"{\"meta\":{\"userId\":\"51806220607\"},\"contact\":{\"firstName\":\"Anaya\",\"lastName\":\"Iyengar\"},\"subscription\":[{\"interest\":\"Sports\"},{\"interest\":\"Travel\"},{\"interest\":\"Cooking\"}]}" }, { "Destination":{ "ToAddresses":[

119

Page 128: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending personalized email

"[email protected]" ] }, "ReplacementTemplateData":"{\"meta\":{\"userId\":\"1981624758263\"},\"contact\":{\"firstName\":\"Shirley\",\"lastName\":\"Rodriguez\"},\"subscription\":[{\"interest\":\"Technology\"},{\"interest\":\"Politics\"}]}" } ], "DefaultTemplateData":"{\"meta\":{\"userId\":\"\"},\"contact\":{\"firstName\":\"Friend\",\"lastName\":\"\"},\"subscription\":[]}"}

SendBulkTemplatedEmail 작업을 사용하여 앞의 예에 나열된 수신자에게 이메일을 보내면 다음 이미지에 표시된 예와 같은 메시지를 수신합니다.

Using basic conditional statements

이 단원은 이전 단원에서 설명한 예를 기반으로 합니다. 이전 단원의 예는 each 보조 도구를 사용하여 관심사 목록을 살펴봅니다. 하지만 관심사가 지정되지 않은 수신자는 빈 목록이 포함된 이메일을 수신합니다.{{if}} 보조 도구를 사용하면 특정 속성이 템플릿 데이터에 있는 경우 이메일의 형식을 다르게 할 수 있습니다. 다음 코드는 Subscription 어레이에 값이 포함되는 경우 {{if}} 보조 도구를 사용하여 앞 단원의글머리표 목록을 표시합니다. 어레이가 비어 있으면 다른 텍스트 블록이 표시됩니다.

{ "Template": { "TemplateName": "Preferences2", "SubjectPart": "Subscription Preferences for {{contact.firstName}} {{contact.lastName}}", "HtmlPart": "<h1>Your Preferences</h1> <p>Dear {{contact.firstName}},</p> {{개if subscription}} <p>You have indicated that you are interested in receiving information about the following subjects:</p> <ul> {{개each subscription}} <li>{{interest}}</li> {{/each}} </ul> <p>You can change these settings at any time by visiting the <a href=https://www.example.com/prefererences/i.aspx?id={{meta.userId}}> Preference Center</a>.</p> {{else}} <p>Please update your subscription preferences by visiting the <a href=https://www.example.com/prefererences/i.aspx?id={{meta.userId}}> Preference Center</a>. {{/if}}", "TextPart": "Your Preferences\n\nDear {{contact.firstName}},\n\n {{개if subscription}} You have indicated that you are interested in receiving

120

Page 129: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending personalized email

information about the following subjects:\n {{개each subscription}} - {{interest}}\n {{/each}} \nYou can change these settings at any time by visiting the Preference Center at https://www.example.com/prefererences/i.aspx?id={{meta.userId}}. {{else}} Please update your subscription preferences by visiting the Preference Center at https://www.example.com/prefererences/i.aspx?id={{meta.userId}}. {{/if}}" }}

Important

앞의 코드 예에는 예를 이해하기 쉽도록 HtmlPart 및 TextPart 속성의 값에 줄 바꿈이 포함되어있습니다. 템플릿의 JSON 파일에는 이러한 값 내에 줄바꿈이 포함될 수 없습니다. 이 예를 복사하여 자체 JSON 파일에 붙여 넣으면 진행하기 전에 HtmlPart 및 TextPart 섹션에서 줄 바꿈 및 추가 공백을 제거합니다.

다음 예는 앞의 템플릿을 사용하여 여러 수신자에게 이메일을 보내는 데 사용할 수 있는 JSON 템플릿을 보여 줍니다.

{ "Source":"Sender Name <[email protected]>", "Template":"Preferences2", "Destinations":[ { "Destination":{ "ToAddresses":[ "[email protected]" ] }, "ReplacementTemplateData":"{\"meta\":{\"userId\":\"51806220607\"},\"contact\":{\"firstName\":\"Anaya\",\"lastName\":\"Iyengar\"},\"subscription\":[{\"interest\":\"Sports\"},{\"interest\":\"Cooking\"}]}" }, { "Destination":{ "ToAddresses":[ "[email protected]" ] }, "ReplacementTemplateData":"{\"meta\":{\"userId\":\"1981624758263\"},\"contact\":{\"firstName\":\"Shirley\",\"lastName\":\"Rodriguez\"}}" } ], "DefaultTemplateData":"{\"meta\":{\"userId\":\"\"},\"contact\":{\"firstName\":\"Friend\",\"lastName\":\"\"},\"subscription\":[]}"}

이 예에서는 템플릿 데이터에 관심사 목록이 포함된 수신자가 이전 섹션에 표시된 예와 같은 이메일을 수신합니다. 하지만 템플릿 데이터에 관심사가 포함되지 않은 수신자는 다음 이미지에 표시된 예와 같은 이메일을 수신합니다.

121

Page 130: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending personalized email

Creating inline partials

인라인 부분을 사용하여 반복된 문자열이 포함된 템플릿을 간소화할 수 있습니다. 예를 들어 사용 가능한 경우 템플릿의 첫 부분에 다음 코드를 추가하여 수신자의 이름 및 사용 가능한 경우 성이 포함된 인라인 부분을만들 수 있습니다.

{{개* inline \"fullName\"}}{{firstName}}{{개if lastName}} {{lastName}}{{/if}}{{/inline}}\n

Note

줄바꿈 문서(\n)는 템플릿의 콘텐츠에서 {{inline}} 블록을 분리하는 데 필요합니다. 줄바꿈은최종 출력에 렌더링되지 않습니다.

생성한 후 fullName 부분적, 다음 예제에서와 같이 더 큰(>) 기호가 있는 부분을 앞선 부분에 표시하여 템플릿의 어디에나 포함할 수 있습니다. {{> fullName}}. 인라인 파티션은 이메일 부분 간에 전송되지 않습니다. 예를 들어 이메일의 HTML과 텍스트 버전 모두에 동일한 인라인 부분을 사용하려는 경우 HtmlPart 및TextPart 섹션 모두에서 정의해야 합니다.

어레이를 통해 살펴보는 경우 인라인 부분을 사용할 수도 있습니다. 다음 코드를 사용하여 fullName 인라인 부분을 사용한 템플릿을 생성할 수 있습니다. 이 예에서는 인라인 부분이 수신자의 이름과 다른 이름의 어레이 모두에 적용됩니다.

{ "Template": { "TemplateName": "Preferences3", "SubjectPart": "{{firstName}}'s Subscription Preferences", "HtmlPart": "{{개* inline \"fullName\"}} {{firstName}}{{개if lastName}} {{lastName}}{{/if}} {{/inline~}}\n <h1>Hello {{> fullName}}!</h1> <p>You have listed the following people as your friends:</p> <ul> {{개each friends}} <li>{{> fullName}}</li> {{/each}}</ul>", "TextPart": "{{개* inline \"fullName\"}} {{firstName}}{{개if lastName}} {{lastName}}{{/if}} {{/inline~}}\n Hello {{> fullName}}! You have listed the following people as your friends:\n {{개each friends}} - {{> fullName}}\n {{/each}}" }}

Important

앞의 코드 예에는 예를 이해하기 쉽도록 HtmlPart 및 TextPart 속성의 값에 줄 바꿈이 포함되어있습니다. 템플릿의 JSON 파일에는 이러한 값 내에 줄바꿈이 포함될 수 없습니다. 이 예를 복사하여 자체 JSON 파일에 붙여 넣으면 진행하기 전에 이 섹션들에서 줄 바꿈 및 추가 공백을 제거합니다.

Managing email templates뿐만 아니라 전자 메일 템플릿 만들기 (p. 114)를 사용하여 Amazon SES 기존 템플릿을 업데이트하거나 삭제하거나, 기존 템플릿을 모두 나열하거나, 템플릿 내용을 보려면 API를 선택합니다.

122

Page 131: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending personalized email

이 섹션에는 AWS CLI 관련 작업을 수행하려면 Amazon SES 템플릿.

Note

이 섹션의 절차에서는 이미 AWS CLI. AWS CLI 설치 및 구성에 대한 자세한 내용은 AWSCommand Line Interface 사용 설명서를 참조하십시오.

Viewing a list of email templates

귀하는 listtemplates 작업 Amazon SES API를 사용하여 모든 기존 이메일 템플릿 목록을 볼 수 있습니다.

이메일 템플릿 목록을 보려면

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

aws ses list-templates

기존 이메일 템플릿이 있는 경우 Amazon SES &t=<B>current&t=;의 &t=<B>Account&t=;는 다음 예와유사한 응답을 반환합니다.

{ "TemplatesMetadata": [ { "Name": "SpecialOffers", "CreatedTimestamp": "2020-08-05T16:04:12.640Z" }, { "Name": "NewsAndUpdates", "CreatedTimestamp": "2019-10-03T20:03:34.574Z" } ]}

템플릿을 생성하지 않은 경우 명령이 TemplatesMetadata 개체가 없습니다.

Viewing the contents of a specific email template

귀하는 gettemplate 작업 Amazon SES 특정 이메일 템플릿의 내용을 보려면 API를 참조하십시오.

이메일 템플릿의 내용을 보려면

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

aws ses get-template --template-name MyTemplate

이전 명령에서 교체 MyTemplate 템플릿을 클릭합니다.

제공한 템플릿 이름이 Amazon SES 이 명령은 다음 예와 유사한 응답을 반환합니다.

{ "Template": { "TemplateName": "TestMessage", "SubjectPart": "Amazon SES Test Message", "TextPart": "Hello! This is the text part of the message.", "HtmlPart": "<html>\n<body>\n<h2>Hello!</h2>\n<p>This is the HTML part of the message.</p></body>\n</html>" }

123

Page 132: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending personalized email

}

제공한 템플릿 이름이 Amazon SES 이 명령을 통해 TemplateDoesNotExist 오류.

Deleting an email template

귀하는 삭제판 작업 Amazon SES 특정 이메일 템플릿을 삭제할 API.

이메일 템플릿을 삭제하려면

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

aws ses delete-template --template-name MyTemplate

이전 명령에서 교체 MyTemplate 을(를) 삭제할 템플릿의 이름을 지정합니다.

이 명령은 출력을 제공하지 않습니다. 템플릿을 사용하여 템플릿을 삭제했는지 확인할 수 있습니다.gettemplate (p. 123) 작업.

Updating an email template

귀하는 업데이트 플레이트 작업 Amazon SES 기존 이메일 템플릿을 업데이트하는 API. 예를 들어, 이메일템플릿의 제목 행을 변경하거나 메시지 자체의 본체를 수정해야 하는 경우 이 작업이 도움이 됩니다.

이메일 템플릿을 업데이트하려면

1. 사용 GetTemplate 명령줄에 다음 명령을 입력하여 기존 템플릿을 검색하는 명령입니다.

aws ses get-template --template-name MyTemplate

이전 명령에서 교체 MyTemplate 을(를) 업데이트할 템플릿의 이름을 입력합니다.

제공한 템플릿 이름이 Amazon SES 이 명령은 다음 예와 유사한 응답을 반환합니다.

{ "Template": { "TemplateName": "TestMessage", "SubjectPart": "Amazon SES Test Message", "TextPart": "Hello! This is the text part of the message.", "HtmlPart": "<html>\n<body>\n<h2>Hello!</h2>\n<p>This is the HTML part of the message.</p></body>\n</html>" }}

2. 텍스트 편집기에서 새로운 파일을 생성합니다. 이전 명령의 출력을 파일에 붙여넣습니다.3. 필요에 따라 템플릿을 수정합니다. 생략한 모든 행이 템플릿에서 제거됩니다. 예를 들어, SubjectPart

템플릿을 사용하여 TextPart and HtmlPart 속성.

작업을 마치면 파일 이름을 update_template.json으로 저장합니다.4. 명령줄에 다음 명령을 입력합니다.

aws ses update-template --cli-input-json file://path/to/update_template.json

이전 명령에서 교체 path/to/update_template.json 클라우드로 전환하는update_template.json 이전 단계에서 만든 파일입니다.

124

Page 133: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Email authentication methods

템플릿이 성공적으로 업데이트되면 이 명령이 출력되지 않습니다. 템플릿을 사용하여 템플릿을 업데이트했는지 확인할 수 있습니다. gettemplate (p. 123) 작업.

지정한 템플릿이 없는 경우 이 명령은 TemplateDoesNotExist 오류. 템플릿에 TextPart 또는HtmlPart (또는 둘 다) 이 명령은 InvalidParameterValue 오류.

Authenticating your email in Amazon SESAmazon Simple Email Service(Amazon SES)는 Simple Mail Transfer Protocol(SMTP)을 사용하여 이메일을보냅니다. SMTP는 자체적으로 인증을 제공하지 않으므로, 스패머가 실제 오리진을 숨기고 다른 사용자가오리진인 것처럼 위장하여 이메일 메시지를 보낼 수 있습니다. 스패머는 이메일 헤더를 위조하고 IP 주소를스푸핑하여 수신자가 수신하는 이메일 메시지가 진본이라고 믿도록 유도할 수 있습니다.

이메일 트래픽을 전달하는 ISP는 대부분 이메일이 합법적인지 여부를 평가하기 위한 조치를 취합니다. 이렇게 하면 isps가 취하는 조치 중 하나는 이메일이 authenticated. 인증은 발신자가 에서 보내는 계정의 소유자인지 확인해야 합니다. 경우에 따라 ISP는 인증되지 않은 이메일의 전달을 거부합니다. 최적의 발송률을 실현하려면 이메일을 인증할 것을 권장합니다.

다음 단원에서는 ISP가 사용하는 두 가지 인증 메커니즘인 Sender Policy Framework(SPF)와 DomainKeysIdentified Mail(DKIM)을 설명하고 Amazon SES에서 이러한 표준을 사용하는 방법에 대한 지침을 제공합니다.

• To learn about SPF, which provides a way to trace an email message back to the system from which itwas sent, see Authenticating Email with SPF in Amazon SES (p. 125).

• To learn about DKIM, a standard that allows you to sign your email messages to show ISPs that yourmessages are legitimate and have not been modified in transit, see Amazon SES에서 DKIM을 사용하여이메일 인증 (p. 126).

• To learn how to comply with Domain-based Message Authentication, Reporting and Conformance(DMARC), which relies on SPF and DKIM, see Amazon SES를 사용하여 DMARC 준수 (p. 138).

Authenticating Email with SPF in Amazon SESSender Policy Framework (SPF)는 이메일 스푸핑을 방지하기 위해 설계된 이메일 검증 표준입니다. 도메인소유자는 SPF를 사용하여 도메인에서 이메일을 전송하는 데 허용된 서버를 이메일 공급자에게 알립니다.SPF는 RFC 7208에 정의되어 있습니다.

SPF를 설정하려면 도메인에 대한 DNS 구성에 TXT 레코드를 게시합니다. 이 레코드에는 도메인에서 전자메일을 보낼 수 있는 서버 목록이 포함되어 있습니다. 이메일 공급자가 해당 도메인으로부터 메시지를 받으면 이메일이 인증된 서버에서 전송되었는지 확인하기 위해 도메인의 DNS 레코드를 검사합니다.

다음을 통해 이메일을 보낼 때 Amazon SES님께서 보내주신 메시지는 기본적으로 SPF 확인을 통과합니다.Amazon SES 각 메시지의 하위 도메인인 메일(MAIL FROM) 도메인에 대해 amazonses.com, 그리고 메시지전송 메일 서버가 이 도메인과 일치합니다.

선택 사항으로, 자체의 SPF 레코드를 게시할 수 있습니다. SPF 레코드를 게시하면 이메일은 Domain-basedMessage Authentication, Reporting and Conformance(DMARC))를 준수할 수 있습니다. 자세한 정보는DMARC 준수 (p. 138) 단원을 참조하십시오.

Adding an SPF RecordSPF 레코드를 게시하려면 도메인에 대한 DNS 구성에 새 TXT 레코드를 추가해야 합니다. DNS 레코드를 업데이트하는 절차는 사용하는 DNS 또는 웹 호스팅 공급자에 따라 다릅니다.

125

Page 134: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DKIM을 사용하여 이메일 인증

다음 표에 몇몇 일반적인 공급자의 설명서 링크가 나와 있습니다. 이 목록에 모든 공급자가 빠짐없이 포함된것은 아니며, 이 목록에 포함되어 있다고 해서 어떤 회사의 제품 또는 서비스를 승인 또는 추천하는 것은 아닙니다. 해당 공급자가 이 표에 나와 있지 않더라도 여전히 SPF 레코드를 게시할 수 있습니다.

DNS/호스팅 공급자 설명서 링크

Amazon Route 53 Amazon Route 53 콘솔을 사용하여 레코드 생성

GoDaddy SPF 레코드 추가(외부 링크)

Dreamhost SPF 레코드를 추가하는 방법(외부 링크)

Cloudflare Managing DNS records in CloudFlare(외부 링크)

HostGator SPF 레코드(외부 링크)

Namecheap 도메인에서 TXT/SPF/DKIM/DMARC 레코드를 추가하는 방법(외부 링크)

Names.co.uk 도메인 DNS 설정 변경(외부 링크)

Wix Wix 계정에서 SPF 레코드 추가 또는 업데이트(외부링크)

기존 SPF 레코드가 없는 경우, 다음 값의 TXT 레코드를 게시합니다. 레코드의 이름은 DNS 서비스에 따라공백이거나 @일 수 있습니다.

"v=spf1 include:amazonses.com ~all"

SPF 레코드는 여러 include 설명을 포함할 수 있습니다. 도메인에 이미 SPF 레코드가 있는 경우 다음 형식을 사용하여 Amazon SES에 대한 include 설명을 추가할 수 있습니다.

"v=spf1 include:example.com include:amazonses.com ~all"

Amazon SES에서 DKIM을 사용하여 이메일 인증DomainKeys Identified Mail(DKIM)은 발신자가 암호화 키를 사용하여 이메일 메시지에 서명할 수 있도록 해주는 표준입니다. 그러면 이메일 공급자는 이러한 서명을 사용하여 메시지가 전송 중에 타인에 의해 수정되지 않았는지 확인합니다.

DKIM을 사용하여 전송되는 이메일 메시지는 DKIM-Signature 헤더 필드를 포함합니다. 이 필드에는 메시지에 대한 암호화 방식으로 서명된 표시가 들어갑니다. 메시지를 수신하는 공급자는 발신자의 DNS 레코드에게시되는 퍼블릭 키를 사용하여 서명을 디코딩할 수 있습니다. 그러면 이메일 공급자는 이 정보를 사용하여메시지가 진본인지 확인합니다.

DKIM 서명은 선택 사항입니다. DKIM 준수 이메일 공급자에서 배달 가능성을 개선하기 위해 DKIM 서명을사용하여 이메일을 서명할 수 있습니다. Amazon SES는 DKIM 서명을 사용하여 메시지를 서명하는 세 가지의 옵션을 제공합니다.

• Amazon SES가 자격 증명에서 보내는 모든 메시지에 DKIM 서명을 자동으로 추가하도록 발신 자격 증명(예: 도메인 또는 이메일 주소)을 설정하려면 Amazon SES에서의 Easy DKIM (p. 127) 단원을 참조하십시오.

• DKIM 인증에 자체 퍼블릭-프라이빗 키 페어를 사용하려면 Amazon SES에 자체 DKIM 인증 토큰 제공 (p. 134) 단원을 참조하십시오.

• SendRawEmail API를 사용하여 전송하는 이메일에 자체 DKIM 서명을 추가하려면 Amazon SES에서 수동으로 DKIM 서명 (p. 137) 단원을 참조하십시오.

126

Page 135: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DKIM을 사용하여 이메일 인증

Amazon SES에서의 Easy DKIM자격 증명에 대해 Easy DKIM을 설정하면 Amazon SES는 사용자가 해당 자격 증명에서 보내는 모든 이메일에 1024비트 DKIM 키를 자동으로 추가합니다. Amazon SES 콘솔을 사용하거나 API를 사용하여 Easy DKIM을 구성할 수 있습니다.

Note

Easy DKIM을 설정하려면 도메인의 DNS 설정을 수정해야 합니다. Route 53을 DNS 공급자로 사용하는 경우 Amazon SES가 해당 레코드를 자동으로 생성할 수 있습니다. 다른 DNS 공급자를 사용하는 경우 해당 공급자의 설명서에서 도메인의 DNS 설정 변경에 대해 자세히 알아보십시오.

Easy DKIM을 성공적으로 구성하면 Verifying a domain with Amazon SES (p. 58)에서 절차를 완료하지않았더라도 DKIM이 활성화된 도메인에서 이메일 전송을 시작할 수 있습니다.

Easy DKIM 고려 사항

Easy DKIM을 사용하여 이메일을 인증할 때 다음 규칙이 적용됩니다.

• "From" 주소에 사용하는 도메인에 대해서만 Easy DKIM을 설정하면 됩니다. "Return-Path" 또는 "Reply-to"주소에 사용하는 도메인에 대해서는 Easy DKIM을 사용하지 않아도 됩니다.

• Amazon SES는 여러 AWS 리전에서 사용할 수 있습니다. 둘 이상의 AWS 리전을 사용하여 이메일을 보내는 경우 모든 이메일이 DKIM 서명되도록 각 모든 리전에서 Easy DKIM 설정 프로세스를 완료해야 합니다.

• 특정 하위 도메인에 대해 Easy DKIM을 설정하지 않는 한, 도메인을 확인할 때 Easy DKIM 설정이 해당 도메인의 모든 하위 도메인에도 적용됩니다.

• 상위 도메인, 하위 도메인 및 이메일 주소에 대해 Easy DKIM을 설정하는 경우 Amazon SES는 다음 방식으로 Easy DKIM 설정을 적용합니다.• 하위 도메인의 DKIM 설정은 상위 도메인의 설정을 재정의합니다.• 이메일 주소의 DKIM 설정은 하위 도메인(해당되는 경우) 및 상위 도메인의 설정을 재정의합니다.

이 주제는 다음 단원을 포함하고 있습니다.• 도메인에 대해 Easy DKIM 설정 (p. 127)• 이메일 주소에 대해 Easy DKIM 설정 (p. 129)• Easy DKIM 관리 (p. 130)

도메인에 대해 Easy DKIM 설정

이 섹션의 절차에서는 도메인에 대해 Easy DKIM을 설정하는 방법을 보여 줍니다. 도메인에 대해 Easy DKIM을 설정하면 도메인을 확인하는 절차 (p. 57)를 완료하지 않은 경우에도 해당 도메인에서 이메일 발송을시작할 수 있습니다.

도메인에 대해 Easy DKIM을 설정하려면

1. https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.2. 탐색 창의 [Identity Management] 아래에서 [Domains]를 선택합니다.3. 도메인 목록에서 Easy DKIM을 설정하려는 도메인을 선택합니다.

Note

도메인에 대한 확인 프로세스를 아직 시작하지 않은 경우 Verifying a domain with AmazonSES (p. 58)에서 절차를 참조하십시오.

4. DKIM 아래에서 DKIM 설정 생성을 선택합니다.5. 다음 섹션에 표시되는 세 CNAME 레코드를 복사합니다. 또는 Download Record Set as CSV(레코드 세

트를 CSV로 다운로드)를 선택하여 레코드 사본을 컴퓨터에 저장할 수도 있습니다.

127

Page 136: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DKIM을 사용하여 이메일 인증

다음 이미지는 DKIM 섹션의 예를 보여 줍니다.

6. 도메인의 DNS 구성에 CNAME 레코드를 추가합니다. 도메인의 DNS 레코드를 업데이트하려면:

• Route 53을 DNS 공급자로 사용하는 경우 – Amazon SES를 사용하여 이메일을 보낼 때 사용한 것과동일한 계정에 있는 Route 53을 사용하는 경우 Route 53 사용을 선택하여 도메인의 DNS 설정을 자동으로 업데이트합니다. 그렇지 않은 경우 Amazon Route 53 개발자 안내서의 레코드 편집에 표시된 절차를 완료합니다.

• 다른 DNS 공급자를 사용하는 경우 – 공급자마다 DNS 레코드를 업데이트하는 절차가 다릅니다. 다음표에 몇몇 일반적인 공급자의 설명서 링크가 나와 있습니다. 이 목록에 모든 공급자가 빠짐없이 포함된 것은 아니며, 이 목록에 포함되어 있다고 해서 어떤 회사의 제품 또는 서비스를 승인 또는 추천하는것은 아닙니다. 공급자가 표에 없으면 Amazon SES를 통해 도메인을 사용할 수도 있습니다.

DNS/호스팅 공급자 설명서 링크

GoDaddy CNAME 레코드 추가(외부 링크)

Dreamhost 사용자 지정 DNS 레코드를 추가하는 방법(외부링크)

Cloudflare CNAME 레코드를 추가하는 방법(외부 링크)

128

Page 137: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DKIM을 사용하여 이메일 인증

DNS/호스팅 공급자 설명서 링크

HostGator HostGator/eNom을 통한 DNS 레코드 관리(외부링크)

Namecheap 도메인에서 TXT/SPF/DKIM/DMARC 레코드를추가하는 방법(외부 링크)

Names.co.uk 도메인 DNS 설정 변경(외부 링크)

Wix Wix 계정에서 CNAME 레코드 추가 또는 업데이트(외부 링크)

Note

소수의 DNS 공급자는 레코드 이름에 밑줄(_)을 포함하는 것을 허용하지 않습니다. 그러나DKIM 레코드 이름에서 밑줄은 필수입니다. DNS 공급자가 레코드 이름에 밑줄을 입력하는것을 허용하지 않는 경우 해당 공급자의 고객 지원 팀에 문의하십시오.

• DNS 공급자가 누군지 잘 모르는 경우 – 자세한 내용은 시스템 관리자에게 문의하십시오.

Amazon SES는 보통 72시간 내에 DNS 구성 변경을 감지합니다.

이메일 주소에 대해 Easy DKIM 설정

이 단원의 절차에서는 Amazon SES로 이미 확인한 특정 이메일 주소에 대해 Easy DKIM을 설정하는 방법을보여 줍니다. 이미 소유한 도메인에 속하는 이메일 주소에 대해서만 Easy DKIM을 구성할 수 있습니다. 이메일 주소에 대해 Easy DKIM을 설정하려면 도메인의 DNS 설정을 변경해야 하기 때문입니다.

Important

소유하지 않은 도메인의 이메일 주소에 대해서는 Easy DKIM을 설정할 수 없습니다. 예를 들어gmail.com 또는 hotmail.com 주소에 대해 Easy DKIM을 설정할 수 없습니다.

이메일 주소가 속하는 도메인에 대해 Easy DKIM을 이미 설정한 경우 해당 이메일 주소에 대해 Easy DKIM을설정할 필요가 없습니다. 도메인에 대해 Easy DKIM을 설정하면 Amazon SES가 해당 도메인의 모든 주소에서 보내는 모든 이메일을 자동으로 인증합니다. 특정 이메일 주소의 Easy DKIM 설정은 해당 이메일이 속한도메인의 설정을 자동으로 재정의합니다.

이메일 주소에 대해 Easy DKIM을 설정하려면

1. https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.2. 탐색 창의 [Identity Management] 아래에서 [Email Addresses]를 선택합니다.3. 이메일 주소 목록에서 Easy DKIM을 설정하려는 주소를 선택합니다.4. DKIM 아래에서 DKIM 설정 생성을 선택합니다.5. 다음 섹션에 표시되는 세 CNAME 레코드를 복사합니다. 또는 Download Record Set as CSV(레코드 세

트를 CSV로 다운로드)를 선택하여 레코드 사본을 컴퓨터에 저장할 수도 있습니다.6. 도메인의 DNS 구성에 CNAME 레코드를 추가합니다. 도메인의 DNS 레코드를 업데이트하려면:

• Route 53을 DNS 공급자로 사용하는 경우 – Amazon Route 53 개발자 안내서의 레코드 편집에 표시된 절차를 완료합니다.

• 다른 DNS 공급자를 사용하는 경우 – 공급자마다 DNS 레코드를 업데이트하는 절차가 다릅니다. 자세한 내용은 DNS 공급자가 제공하는 설명서를 참조하십시오.

129

Page 138: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DKIM을 사용하여 이메일 인증

Note

소수의 DNS 공급자는 레코드 이름에 밑줄(_)을 포함하는 것을 허용하지 않습니다. 그러나DKIM 레코드 이름에서 밑줄은 필수입니다. DNS 공급자가 레코드 이름에 밑줄을 입력하는것을 허용하지 않는 경우 해당 공급자의 고객 지원 팀에 문의하십시오.

• DNS 공급자가 누군지 잘 모르는 경우 – 자세한 내용은 시스템 관리자에게 문의하십시오.

Amazon SES는 보통 72시간 내에 DNS 구성 변경을 감지합니다.

Easy DKIM 관리

자격 증명의 Easy DKIM 설정을 관리하는 방법에는 두 가지가 있습니다. 웹 기반 Amazon SES 콘솔을 사용하거나 Amazon SES API를 사용하는 것입니다. 이러한 방법 중 하나를 사용하여 자격 증명의 DKIM 레코드를 얻거나, 자격 증명에 대해 Easy DKIM을 활성화 또는 비활성화할 수 있습니다.

자격 증명의 Easy DKIM 레코드 얻기

Amazon SES 콘솔을 사용하여 언제든 도메인 또는 이메일 주소의 Easy DKIM 레코드를 얻을 수 있습니다.

콘솔을 사용하여 자격 증명의 Easy DKIM 레코드를 얻으려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 탐색 창의 Identity Management(자격 증명 관리) 아래에서 Easy DKIM 레코드를 얻으려는 자격 증명 유형을 선택합니다.

3. 자격 증명 목록에서 Easy DKIM 레코드를 얻으려는 자격 증명을 선택합니다.4. DKIM 섹션에서 세 CNAME 레코드를 복사합니다. 다음 이미지는 DKIM 섹션의 예를 보여 줍니다.

130

Page 139: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DKIM을 사용하여 이메일 인증

Amazon SES API를 사용하여 자격 증명의 CNAME 레코드를 얻을 수도 있습니다. API와 상호 작용하는 일반적인 방법은 AWS CLI를 사용하는 것입니다.

AWS CLI를 사용하여 자격 증명의 Easy DKIM 레코드를 얻으려면

1. 명령줄 프롬프트에 다음 명령을 입력합니다.

aws ses get-identity-dkim-attributes --identities "example.com"

앞의 예에서 example.com을 Easy DKIM 레코드를 얻으려는 자격 증명으로 바꿉니다. 이메일 주소 또는 도메인을 지정할 수 있습니다.

2. 다음 예와 같이 이 명령의 출력에는 DkimTokens 섹션이 포함됩니다.

{ "DkimAttributes": { "example.com": { "DkimEnabled": true, "DkimVerificationStatus": "Success", "DkimTokens": [ "hirjd4exampled5477y22yd23ettobi", "v3rnz522czcl46quexamplek3efo5o6x",

131

Page 140: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DKIM을 사용하여 이메일 인증

"y4examplexbhyhnsjcmtvzotfvqjmdqoj" ] } }}

토큰을 사용하여 도메인의 DNS 설정에 추가하는 CNAME 레코드를 생성할 수 있습니다. CNAME 레코드를 생성하려면 다음 템플릿을 사용합니다.

token1._domainkey.example.com CNAME token1.dkim.amazonses.comtoken2._domainkey.example.com CNAME token2.dkim.amazonses.comtoken3._domainkey.example.com CNAME token3.dkim.amazonses.com

token1의 각 인스턴스를 aws ses get-identity-dkim-attributes 명령을 실행할 때 받은 목록의첫 번째 토큰으로 바꾸고, token2의 모든 인스턴스를 목록의 두 번째 토큰으로 바꾸고, token3의 모든인스턴스를 목록의 세 번째 토큰으로 바꿉니다.

예를 들어 앞의 예에 나온 토큰에 이 템플릿을 적용하면 다음 레코드가 생성됩니다.

hirjd4exampled5477y22yd23ettobi._domainkey.example.com CNAME hirjd4exampled5477y22yd23ettobi.dkim.amazonses.comv3rnz522czcl46quexamplek3efo5o6x._domainkey.example.com CNAME v3rnz522czcl46quexamplek3efo5o6x.dkim.amazonses.comy4examplexbhyhnsjcmtvzotfvqjmdqoj._domainkey.example.com CNAME y4examplexbhyhnsjcmtvzotfvqjmdqoj.dkim.amazonses.com

자격 증명에 대해 Easy DKIM 비활성화

Amazon SES 콘솔을 사용하여 자격 증명의 DKIM 인증을 빠르게 비활성화할 수 있습니다.

자격 증명에 대해 Easy DKIM을 비활성화하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 탐색 창의 Identity Management(자격 증명 관리) 아래에서 Easy DKIM을 비활성화하려는 자격 증명 유형을 선택합니다.

3. 자격 증명 목록에서 Easy DKIM을 비활성화하려는 자격 증명을 선택합니다.4. 다음 이미지와 같이 DKIM 섹션에서 DKIM: enabled(DKIM: 활성화) 옆에 있는 disable(비활성화)을 선택

합니다.

132

Page 141: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DKIM을 사용하여 이메일 인증

Amazon SES API를 사용하여 자격 증명에 대해 Easy DKIM을 비활성화할 수도 있습니다. API와 상호 작용하는 일반적인 방법은 AWS CLI를 사용하는 것입니다.

AWS CLI를 사용하여 자격 증명에 대해 Easy DKIM을 비활성화하려면

• 명령줄 프롬프트에 다음 명령을 입력합니다.

aws ses set-identity-dkim-enabled --identity example.com --no-dkim-enabled

앞의 예에서 example.com을 Easy DKIM을 비활성화하려는 자격 증명으로 바꿉니다. 이메일 주소 또는 도메인을 지정할 수 있습니다.

자격 증명에 대해 Easy DKIM 활성화

이전에 자격 증명에 대해 Easy DKIM을 비활성화한 경우 Amazon SES 콘솔을 사용하여 다시 활성화할 수 있습니다.

자격 증명에 대해 Easy DKIM을 활성화하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 탐색 창의 Identity Management(자격 증명 관리) 아래에서 Easy DKIM을 활성화하려는 자격 증명 유형을 선택합니다.

3. 자격 증명 목록에서 Easy DKIM을 활성화하려는 자격 증명을 선택합니다.4. 다음 이미지와 같이 DKIM 섹션에서 DKIM: disabled(DKIM: 비활성화) 옆에 있는 enable(활성화)을 선택

합니다.

Amazon SES API를 사용하여 자격 증명에 대해 Easy DKIM을 활성화할 수도 있습니다. API와 상호 작용하는 일반적인 방법은 AWS CLI를 사용하는 것입니다.

AWS CLI를 사용하여 자격 증명에 대해 Easy DKIM을 활성화하려면

• 명령줄 프롬프트에 다음 명령을 입력합니다.

aws ses set-identity-dkim-enabled --identity example.com --dkim-enabled

앞의 예에서 example.com을 Easy DKIM을 활성화하려는 자격 증명으로 바꿉니다. 이메일 주소 또는도메인을 지정할 수 있습니다.

133

Page 142: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DKIM을 사용하여 이메일 인증

Amazon SES에 자체 DKIM 인증 토큰 제공Easy DKIM (p. 127)을 사용하는 대신 자체 퍼블릭-프라이빗 키 페어를 사용하여 DKIM 인증을 구성할 수있습니다. 이 과정을 BYODKIM(Bring Your Own DKIM)이라고 합니다.

BYODKIM을 사용하면 세 개의 개별 DNS 레코드를 게시해야 하는 Easy DKIM과 달리 단일 DNS 레코드를사용하여 도메인에 대한 DKIM 인증을 구성할 수 있습니다. 또한 BYODKIM을 사용하면 도메인의 DKIM 키를원하는 만큼 자주 교체할 수 있습니다.

이 단원의 주제:• 1단계: 키 페어 생성 (p. 134)• 2단계: 도메인의 DNS 구성에 퍼블릭 키 추가 (p. 134)• 3단계: BYODKIM을 사용하도록 도메인 구성 (p. 135)

1단계: 키 페어 생성BYODKIM 기능을 사용하려면 먼저 키 페어를 생성해야 합니다.

생성하는 프라이빗 키는 1024비트 RSA 인코딩을 사용해야 합니다. 프라이빗 키는 PKCS #1 형식이어야 합니다.

이 단원에서는 대부분의 Linux, macOS, or Unix 운영 체제에 기본 제공되는 openssl 명령을 사용하여 키 페어를 생성하는 방법을 보여줍니다.

Note

Windows 컴퓨터를 사용하는 경우 타사 애플리케이션을 사용하여 RSA 키 페어를 생성할 수 있습니다. 타사 애플리케이션을 사용하는 경우 PKCS #1 형식으로 1024비트 RSA 키 페어를 생성할 수 있어야 합니다.

Linux, macOS, or Unix 명령줄에서 키 페어를 생성하려면

1. 명령줄에 다음 명령을 입력하여 프라이빗 키를 생성합니다.

openssl genrsa -f4 -out private.key 1024

2. 명령줄에 다음 명령을 입력하여 퍼블릭 키를 생성합니다.

openssl rsa -in private.key -outform PEM -pubout -out public.key

2단계: 도메인의 DNS 구성에 퍼블릭 키 추가키 페어를 생성했으면 이제 도메인의 DNS 구성에 퍼블릭 키를 TXT 레코드로 추가해야 합니다.

도메인의 DNS 구성에 퍼블릭 키를 추가하려면

1. DNS 또는 호스팅 공급자의 관리 콘솔에 로그인합니다.2. 도메인의 DNS 구성에 새로운 텍스트 레코드를 추가합니다. 레코드는 다음 형식을 사용해야 합니다.

이름 유형 값

selector._domainkey.example.comTXT p=yourPublicKey

이전 예제에서 다음과 같이 변경합니다.

134

Page 143: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DKIM을 사용하여 이메일 인증

• selector를 키를 식별하는 고유 이름으로 바꿉니다.• example.com을 도메인으로 바꿉니다.• yourPublicKey를 이전에 생성한 퍼블릭 키로 바꿉니다.

Note

생성된 퍼블릭 키의 첫 번째 줄(-----BEGIN PUBLIC KEY-----)과 마지막 줄(-----ENDPUBLIC KEY-----)을 삭제해야 합니다. 또한 생성된 퍼블릭 키에서 줄 바꿈을 제거해야 합니다. 결과 값은 공백이나 줄 바꿈이 없는 문자열입니다.

공급자마다 DNS 레코드를 업데이트하는 절차가 다릅니다. 다음 표에 몇몇 일반적인 공급자의 설명서링크가 나와 있습니다. 이 목록에 모든 공급자가 빠짐없이 포함된 것은 아니며, 이 목록에 포함되어 있다고 해서 어떤 회사의 제품 또는 서비스를 승인 또는 추천하는 것은 아닙니다.

DNS/호스팅 공급자 설명서 링크

Amazon Route 53 Amazon Route 53 개발자 안내서에서 레코드 편집

GoDaddy Add a TXT record(외부 링크)

Dreamhost 사용자 지정 DNS 레코드를 추가하는 방법(외부링크)

Cloudflare Managing DNS records in CloudFlare(외부 링크)

HostGator HostGator/eNom을 통한 DNS 레코드 관리(외부링크)

Namecheap 도메인에서 TXT/SPF/DKIM/DMARC 레코드를 추가하는 방법(외부 링크)

Names.co.uk 도메인 DNS 설정 변경(외부 링크)

Wix Adding or Updating TXT Records in Your WixAccount(외부 링크)

3단계: BYODKIM을 사용하도록 도메인 구성

새 도메인(즉, 현재 Amazon SES를 통해 이메일을 보내는 데 사용하지 않는 도메인)과 기존 도메인(즉,Amazon SES에서 사용하도록 이미 설정한 도메인) 모두에 대해 BYODKIM을 설정할 수 있습니다. 새 도메인을 설정하려면 Amazon SES API의 CreateEmailIdentity 작업을 사용합니다. 기존 도메인을 구성하려면 PutEmailIdentityDkimSigningAttributes 작업을 사용합니다.

이 단원에서는 AWS CLI를 사용하여 새 도메인과 기존 도메인을 설정하는 절차에 대해 설명합니다. 이 단원의 절차를 완료하기 전에 먼저 AWS CLI를 설치하고 구성해야 합니다. 자세한 정보는 AWS Command LineInterface 사용 설명서를 참조하십시오.

옵션 1: BYODKIM을 사용하는 새 도메인 자격 증명 생성

이 단원에서는 BYODKIM을 사용하는 새 도메인 자격 증명을 생성하는 절차에 대해 설명합니다. 새 도메인자격 증명은 이전에 Amazon SES를 사용하여 이메일을 보내도록 설정하지 않은 도메인입니다.

BYODKIM을 사용하도록 기존 도메인을 구성하려면 대신 옵션 2: 기존 도메인 자격 증명 구성 (p. 136) 절차를 완료하십시오.

135

Page 144: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DKIM을 사용하여 이메일 인증

자격 증명을 생성하려면

1. 텍스트 편집기에서 다음 코드를 붙여 넣습니다.

{ "EmailIdentity":"example.com", "DkimSigningAttributes":{ "DomainSigningPrivateKey":"privateKey", "DomainSigningSelector":"selector" }}

이전 예제에서 다음과 같이 변경합니다.

• example.com을 생성하려는 도메인으로 바꿉니다.• privateKey를 해당 프라이빗 키로 바꿉니다.• selector를 도메인에 대한 DNS 구성에서 TXT 레코드를 생성할 때 지정한 고유 선택기로 바꿉니다.

작업을 마치면 파일 이름을 create-identity.json으로 저장합니다.2. 명령줄에 다음 명령을 입력합니다.

aws sesv2 create-email-identity --cli-input-json file://path/to/create-identity.json

앞의 명령에서 path/to/create-identity.json을 이전 단계에서 생성한 파일의 전체 경로로 바꿉니다.

옵션 2: 기존 도메인 자격 증명 구성

이 단원에서는 BYODKIM을 사용하도록 기존 도메인 자격 증명을 업데이트하는 절차에 대해 설명합니다. 기존 도메인 자격 증명은 Amazon SES를 사용하여 이메일을 보내도록 이미 설정한 도메인입니다.

도메인 자격 증명을 업데이트하려면

1. 텍스트 편집기에서 다음 코드를 붙여 넣습니다.

{ "SigningAttributes":{ "DomainSigningPrivateKey":"privateKey", "DomainSigningSelector":"selector" }, "SigningAttributesOrigin":"EXTERNAL"}

이전 예제에서 다음과 같이 변경합니다.

• privateKey를 해당 프라이빗 키로 바꿉니다.• selector를 도메인에 대한 DNS 구성에서 TXT 레코드를 생성할 때 지정한 고유 선택기로 바꿉니다.

작업을 마치면 파일 이름을 update-identity.json으로 저장합니다.2. 명령줄에 다음 명령을 입력합니다.

aws sesv2 put-email-identity-dkim-signing-attributes --email-identity example.com --cli-input-json file://path/to/update-identity.json

136

Page 145: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DKIM을 사용하여 이메일 인증

위의 명령에서 다음과 같이 변경하십시오.

• path/to/update-identity.json을 이전 단계에서 생성한 파일의 전체 경로로 바꿉니다.• example.com을 업데이트하려는 도메인으로 바꿉니다.

BYODKIM을 사용하는 도메인의 DKIM 상태 확인

BYODKIM을 사용하도록 도메인을 구성한 후 GetEmailIdentity 작업을 사용하여 DKIM이 제대로 구성되었는지 확인할 수 있습니다.

도메인의 DKIM 상태를 확인하려면

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

aws sesv2 get-email-identity --email-identity example.com

앞의 명령에서 example.com을 해당 도메인으로 바꿉니다.

이 명령은 다음 예제와 유사한 섹션이 포함된 JSON 객체를 반환합니다.

{ ... "DkimAttributes": { "SigningAttributesOrigin": "EXTERNAL", "SigningEnabled": true, "Status": "SUCCESS", "Tokens": [ ] }, ...}

다음 사항이 모두 true일 경우 BYODKIM이 도메인에 대해 올바르게 구성된 것입니다.

• SigningAttributesOrigin 속성의 값이 EXTERNAL입니다.• SigningEnabled의 값이 true입니다.• Status의 값이 SUCCESS입니다.

Amazon SES에서 수동으로 DKIM 서명Easy DKIM을 사용하는 대신에 메시지에 DKIM 서명을 수동으로 추가한 후 Amazon SES를 사용하여 해당메시지를 보낼 수도 있습니다. 메시지에 수동으로 서명하기로 선택한 경우 먼저 DKIM 서명을 생성해야 합니다. 메시지와 DKIM 서명을 생성한 후 SendRawEmail API를 사용하여 보낼 수 있습니다.

이메일에 수동으로 서명하기로 결정한 경우 다음 요소를 고려하십시오.

• Amazon SES를 사용하여 보내는 모든 메시지에는 amazonses.com의 서명 도메인을 참조하는 DKIM 헤더가 포함됩니다(즉 d=amazonses.com 문자열 포함). 메시지에 수동으로 서명하는 경우 메시지에 각각 도메인용과 amazonses.com용의 DKIM 헤더 2개가 포함되어야 합니다.

• Amazon SES는 메시지에 수동으로 추가하는 DKIM 서명의 유효성을 검사하지 않습니다. 메시지의 DKIM서명에 오류가 있는 경우 이메일 공급자가 거부할 수 있습니다.

• 메시지에 서명할 때 1,024비트 이상의 비트 길이를 사용해야 합니다.• Message-ID, Date, Return-Path, Bounces-To 필드에 서명하지 마십시오.

137

Page 146: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DMARC 준수

Note

Amazon SES SMTP 인터페이스를 사용하여 이메일 클라이언트로 이메일을 보내는 경우 클라이언트가 메시지에 대한 DKIM 서명을 자동으로 수행할 수 있습니다. 일부 클라이언트는 이러한 필드 중 일부에 서명할 수 있습니다. 기본적으로 서명되는 필드를 보려면 해당 이메일 클라이언트의설명서를 참조하십시오.

Amazon SES를 사용하여 DMARC 준수Domain-based Message Authentication, Reporting and Conformance(DMARC)는 Sender PolicyFramework(SPF)와 DomainKeys Identified Mail(DKIM)을 사용해 이메일 스푸핑을 찾아내는 이메일 인증 프로토콜입니다. DMARC를 준수하려면 SPF 또는 DKIM 또는 둘 다를 통해 메시지를 인증해야 합니다.

이 주제에는 보내는 이메일이 SPF와 DKIM을 모두 준수하도록 Amazon SES를 구성하는 데 도움이 되는 정보가 나와 있습니다. 이러한 인증 시스템 중 하나를 준수하면 이메일이 DMARC를 준수하게 됩니다. DMARC인증 기준에 관한 정보는 http://www.dmarc.org를 참조하십시오.

도메인의 DMARC 정책 설정DMARC를 설정하려면 도메인의 DNS 설정을 수정해야 합니다. 도메인의 DNS 설정에는 도메인의 DMARC설정을 지정하는 TXT 레코드가 포함되어 있어야 합니다. DNS 구성에 TXT 레코드를 추가하는 절차는 사용하는 DNS 또는 호스팅 공급자에 따라 다릅니다. Route 53을 사용하는 경우 Amazon Route 53 개발자 안내서의 레코드 작업을 참조하십시오. 다른 공급자를 사용하는 경우 해당 공급자에 대한 DNS 구성 설명서를 참조하십시오.

생성하는 TXT 레코드의 이름은 _dmarc.example.com이어야 합니다. 여기서 example.com은 사용자 도메인입니다. TXT 레코드의 값에는 사용자 도메인에 적용되는 DMARC 정책이 포함됩니다. 다음은 DMARC정책이 포함된 TXT 레코드의 예제입니다.

이름 유형 값

_dmarc.example.com TXT "v=DMARC1;p=quarantine;pct=25;rua=mailto:[email protected]"

일반 언어에서 이 정책은 이메일 공급자에게 다음 작업을 수행하도록 지시합니다.

• SPF 또는 DKIM 인증을 통과하지 않은 example.com의 "발신" 도메인을 사용한 모든 이메일을 검색합니다.

• 인증에 실패한 이메일의 25%를 스팸 폴더로 전송하여 격리합니다(p=none를 사용하여 아무 것도 수행하지 않거나 p=reject를 사용하여 메시지를 완전히 거부할 수도 있습니다).

• 다이제스트(즉, 각 이벤트에 대한 개별 보고서를 보내지 않고 특정 기간 동안 데이터를 집계한 보고서)에서인증에 실패한 모든 이메일에 대한 보고서를 보냅니다. 이메일 공급자는 일반적으로 하루에 한 번씩 이러한 집계 보고서를 전송하지만 이러한 정책은 공급자마다 다릅니다.

도메인에 대한 DMARC를 구성하는 방법에 대해 자세히 알아보려면 DMARC 웹 사이트의 개요를 참조하십시오.

DMARC 시스템의 전체 사양을 보려면 IETF 웹 사이트의 RFC 7489를 참조하십시오. 이 문서의 단원 6.3에는 도메인에 대한 DMARC 정책을 구성하는 데 사용할 수 있는 전체 태그 목록이 포함되어 있습니다.

SPF를 통해 DMARC 준수이메일이 SPF를 기반으로 DMARC를 준수하도록 하려면 다음 두 조건을 충족해야 합니다.

• 이메일이 SPF 검사를 통과해야 합니다.

138

Page 147: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DMARC 준수

• 이메일 헤더의 From 주소에 있는 도메인이 발신 메일 서버가 수신 메일 서버에 지정하는 MAIL FROM 도메인과 일치해야 합니다. SPF에 대한 도메인의 DMARC 정책이 strict alignment를 지정한 경우 From 도메인과 MAIL FROM 도메인이 정확히 일치해야 합니다. SPF에 대한 도메인의 DMARC 정책이 relaxedalignment를 지정한 경우 MAIL FROM 도메인이 From 헤더에 있는 도메인의 하위 도메인이어도 무방합니다.

이러한 요구 사항을 준수하려면 다음 단계를 완료합니다.

• the section called “Setting up a custom MAIL FROM domain” (p. 63)의 절차를 완료하여 사용자 지정MAIL FROM 도메인을 설정합니다.

• 보내는 도메인이 SPF에 대해 relaxed 정책을 사용하는지 확인합니다. 도메인의 정책 일치를 변경하지 않은 경우 기본적으로 relaxed 정책을 사용합니다.

Note

example.com을 해당 도메인으로 바꾸고 명령줄에 다음 명령을 입력하여 SPF에 대한 도메인의DMARC 일치를 확인할 수 있습니다.

nslookup -type=TXT _dmarc.example.com

이 명령의 출력에 있는 Non-authoritative answer 아래에서 v=DMARC1로 시작하는 레코드를 찾습니다. 이 레코드에 문자열 aspf=r이 포함되었거나 aspf 문자열이 없는 경우, 도메인이 SPF에대해 relaxed alignment를 사용하는 것입니다. 레코드에 문자열 aspf=s가 포함된 경우, 도메인이SPF에 대해 strict alignment를 사용하는 것입니다. 시스템 관리자는 도메인의 DNS 구성에 있는DMARC TXT 레코드에서 이 태그를 제거해야 합니다.또한 dmarcian 웹 사이트의 DMARC Inspector 또는 Proofpoint 웹 사이트의 DMARC Check 도구와 같은 웹 기반 DMARC 조회 도구를 사용하여 도메인의 SPF 정책 일치를 확인할 수 있습니다.

DKIM을 통해 DMARC 준수이메일이 DKIM을 기반으로 DMARC를 준수하도록 하려면 다음 두 조건을 충족해야 합니다.

• 메시지에 유효한 DKIM 서명이 있어야 합니다.• 이메일 헤더의 From 주소가 DKIM 서명의 d= 도메인과 일치해야 합니다. 도메인의 DMARC 정책이 DKIM

에 대해 strict alignment를 지정한 경우 이러한 도메인이 정확히 일치해야 합니다. 도메인의 DMARC 정책이 DKIM에 대해 relaxed alignment를 지정한 경우 d= 도메인이 From 도메인의 하위 도메인이어도 무방합니다.

이러한 요구 사항을 준수하려면 다음 단계를 완료합니다.

• the section called “Easy DKIM” (p. 127)의 절차를 완료하여 Easy DKIM을 설정합니다. Easy DKIM을 사용하면 Amazon SES가 이메일에 자동으로 서명합니다.

Note

Easy DKIM을 사용하는 대신에 메시지에 수동으로 서명 (p. 137)할 수도 있습니다. 그러나 이 경우 사용자가 작성한 DKIM 서명을 Amazon SES가 확인하지 않으므로 매우 주의해야 합니다. 이러한 이유로 Easy DKIM을 사용하는 것이 좋습니다.

• 보내는 도메인이 DKIM에 대해 relaxed 정책을 사용하는지 확인합니다. 도메인의 정책 일치를 변경하지 않은 경우 기본적으로 relaxed 정책을 사용합니다.

Note

example.com을 해당 도메인으로 바꾸고 명령줄에 다음 명령을 입력하여 DKIM에 대한 도메인의 DMARC 일치를 확인할 수 있습니다.

139

Page 148: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드발신 할당량 관리

nslookup -type=TXT _dmarc.example.com

이 명령의 출력에 있는 Non-authoritative answer 아래에서 v=DMARC1로 시작하는 레코드를 찾습니다. 이 레코드에 문자열 adkim=r이 포함되었거나 adkim 문자열이 없는 경우, 도메인이 DKIM에 대해 relaxed alignment를 사용하는 것입니다. 레코드에 문자열 adkim=s가 포함된 경우, 도메인이 DKIM에 대해 strict alignment를 사용하는 것입니다. 시스템 관리자는 도메인의 DNS 구성에있는 DMARC TXT 레코드에서 이 태그를 제거해야 합니다.또한 dmarcian 웹 사이트의 DMARC Inspector 또는 Proofpoint 웹 사이트의 DMARC Check 도구와 같은 웹 기반 DMARC 조회 도구를 사용하여 도메인의 DKIM 정책 일치를 확인할 수 있습니다.

관리 Amazon SES 할당량 보내기Amazon SES 계정에는 보낼 수 있는 이메일 메시지 수와 속도를 규제하는 몇 가지 발신 할당량이 적용됩니다. 발신 할당량은 Amazon SES와 이메일 공급자 간에 신뢰 관계를 유지하는 데 도움이 되기 때문에 모든Amazon SES 고객에게 유용합니다. 발신 할당량을 이용하여 전송 활동을 점차적으로 늘리고 이메일 전송 볼륨 또는 속도의 갑작스러운 증가로 인해 이메일 공급자가 이메일을 차단할 가능성을 줄일 수 있습니다.

다음 할당량은 Amazon SES를 통해 이메일을 보낼 때 적용됩니다.

• 최대 일일 전송—24시간 동안 보낼 수 있는 최대 이메일 수입니다. 이 할당량은 롤링 기간을 반영하여 계산됩니다. 이메일 전송을 시도할 때마다 Amazon SES에서 지난 24시간 내에 보낸 이메일 수를 확인합니다.지난 24시간 동안 보낸 이메일의 총 수가 이 일일 최대치보다 낮으면 전송 요청이 수락되고 이메일이 전송됩니다.

메시지 전송이 계정의 일일 최대치를 초과하면 Amazon SES 호출이 거부됩니다.• 최대 전송 속도 - Amazon SES에서 계정에 초당 수락할 수 있는 최대 이메일 수입니다. 잠깐 동안 이 할당

량을 초과할 수 있지만 장기적으로는 초과할 수 없습니다.Note

Amazon SES에서 메시지를 수락하는 속도는 계정의 최대 전송 속도보다 느릴 수 있습니다.

AWS 리전마다 Amazon SES 발신 할당량이 서로 다릅니다. 여러 AWS 리전에서 Amazon SES를 사용하는것에 대한 자세한 내용은 Regions and Amazon SES (p. 432) 단원을 참조하십시오.

계정이 Amazon SES 샌드박스에 있는 경우 24시간 동안 메시지 200개만 보낼 수 있으며 최대 전송 속도는초당 메시지 한 개입니다. 샌드박스에서 계정을 제거하도록 요청을 제출할 때 할당량을 동시에 늘리도록 요청할 수도 있습니다. 샌드박스에서 계정을 제거하는 방법에 대한 자세한 내용은 Amazon SES 샌드박스 환경에서 나가기 (p. 69) 단원을 참조하십시오.

계정이 샌드박스에서 제거되면 AWS 지원 센터에서 새로운 사례를 만들어 언제든지 추가 할당량 증가를 요청할 수 있습니다. 자세한 정보는 더 많은 Amazon SES 할당량 보내기 (p. 142) 단원을 참조하십시오.

Note

발신 할당량은 메시지 수가 아닌 수신자 수를 기준으로 합니다. 예를 들어, 수신자가 10명인 이메일은 할당량 계산에서 10개로 간주됩니다. 그러나 호출이 실패하면 전체 이메일이 거부되기 때문에SendEmail API 작업을 한 번 호출하여 여러 수신자에게 이메일을 보내지 않는 것이 좋습니다. 따라서 모든 수신자에 대해 한 번씩 SendEmail을 호출하는 것이 좋습니다.

• 발신 할당량을 늘리려면 더 많은 Amazon SES 할당량 보내기 (p. 142) 단원을 참조하십시오.• 발신 할당량에 도달하는 경우 애플리케이션에서 받는 오류에 대한 자세한 내용은 사용자의 쿼터 전송과 관

련된 오류 Amazon SES 계정 (p. 144) 단원을 참조하십시오.• Amazon SES 콘솔 또는 Amazon SES API를 사용하여 발신 할당량을 모니터링하려면 모니터링 Amazon

SES 할당량 보내기 (p. 141) 단원을 참조하십시오.

140

Page 149: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드발송 할당량 모니터링

모니터링 Amazon SES 할당량 보내기Amazon SES 콘솔 또는 Amazon SES API를 사용하여 AWS SDK, AWS Command Line Interface 또는Windows PowerShell용 AWS 도구를 통해 직접 또는 간접적으로 쿼리(HTTPS) 인터페이스를 호출함으로써발신 할당량을 모니터링할 수 있습니다.

Important

발신 할당량에 근접하지 않았는지 전송 통계를 자주 확인하는 것이 좋습니다. 발신 할당량에 근접한 경우 발신 할당량을 높이는 방법에 대한 자세한 내용은 더 많은 Amazon SES 할당량 보내기 (p. 142) 단원을 참조하십시오. 발신 할당량에 도달할 때까지 기다렸다가 발신 할당량을 높이지마십시오.

를 사용하여 발송 할당량 모니터링 Amazon SES 콘솔다음 절차에서는 Amazon SES 콘솔을 사용하여 발신 할당량을 보는 방법을 보여 줍니다.

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 탐색 창에서 [Sending Statistics]를 선택합니다. 발신 할당량이 Your Amazon SES SendingLimits(Amazon SES 발신 한도) 아래에 표시됩니다.

3. 표시 내용을 업데이트하려면 [Refresh]를 선택합니다.

를 사용하여 발송 할당량 모니터링 Amazon SES 주성분Amazon SES API는 발신 할당량을 반환하는 GetSendQuota 작업을 제공합니다. GetSendQuota 작업을호출하면 다음과 같은 정보를 받습니다.

• 지난 24시간 동안 전송한 이메일 수• 앞으로 24시간 동안 발신 할당량• 최대 전송 속도

Note

GetSendQuota에 대한 설명을 보려면 Amazon Simple Email Service API Reference를 참조하십시오.

141

Page 150: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드전송 할당량 높이기

더 많은 Amazon SES 할당량 보내기계정이 샌드박스 외부에 있을 때 고품질 프로덕션 이메일을 전송하는 경우, 계정의 발신 할당량이 자동으로증가할 수 있습니다. 실제로 이러한 할당량을 높여야 할 필요가 생기기 전에 이 할당량은 자동으로 증가하는경우가 많습니다.

송신률을 자동으로 높이려면 다음과 같은 문들이 모두 true여야 합니다.

• 수신자가 수신하려는 고품질의 콘텐츠를 전송합니다. – 수신자가 원하고 기대하는 콘텐츠를 전송하십시오. 이메일을 열지 않은 고객들을 대상으로 이메일 전송을 중지하십시오.

• 실제 프로덕션 콘텐츠를 전송합니다. – 가짜 이메일 주소로 테스트 메시지를 전송하면 반송 메일 및 수신거부 발생률에 부정적인 영향을 미칠 수 있습니다. 또한 내부 수신자들에게만 메시지를 전송하면 고객이받고 싶은 콘텐츠를 보내고 있는지 판단하기가 어렵습니다. 그러나 내부 수신자가 아닌 수신자에게 프로덕션 메시지를 전송하면 이메일 발송 사례를 정확하게 평가할 수 있습니다.

• 현재 할당량에 가까운 수준으로 전송합니다. – 자동으로 할당량을 높이려면 일일 이메일 볼륨이 할당량을초과하지 않고 주기적으로 계정의 일일 최대 할당량에 근접해야 합니다.

• 반송 메일 및 수신 거부 발생률이 낮습니다. – 수신 중인 반송 메일 및 수신 거부의 건수를 최소화하십시오.반송 메일 및 수신 거부의 건수가 많을 경우, 발신 할당량에 부정적인 영향을 미칠 수 있습니다.

현재 발신 할당량이 필요한 수준에 미치지 못하고 있으며 이 할당량이 자동으로 증가하지 않았다면 할당량증가를 요청할 수 있습니다. 발신 할당량 증가의 요청에 관한 자세한 내용은 Amazon SES 발신 할당량 증가를 위한 사례 열기 (p. 142) 단원을 참조하십시오.

Amazon SES 발신 할당량 증가를 위한 사례 열기Amazon SES에 발신 할당량 증가를 신청하려면 다음 단계를 완료하여 지원 센터에서 사례를 여십시오.

발신 할당량 증가를 요청하려면

1. https://console.aws.amazon.com/에서 AWS Management 콘솔에 로그인합니다.2. 지원 메뉴에서 다음 이미지와 같이 지원 센터를 선택합니다.

142

Page 151: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드전송 할당량 높이기

3. My support cases(내 지원 사례) 탭에서 Create case(사례 생성)를 선택합니다.4. Create case(사례 생성)에서 Service limit increase(서비스 제한 증가)를 선택합니다.5. Case classification(사례 분류)에서 다음 섹션을 작성합니다.

• Limit type(제한 유형)에서는 SES Service Limits(SES 서비스 제한)를 선택합니다.• Mail Type(메일 유형)에서 전송하려는 이메일의 유형을 선택합니다. 1개 이상의 값이 해당될 경우, 전

송하려는 대부분의 이메일에 적용되는 옵션을 선택하십시오.• Website URL(웹 사이트 URL)에서 웹 사이트의 URL을 입력합니다. 이 정보를 제공하면 보내려는 콘

텐츠 유형을 지원 센터에서 쉽게 파악할 수 있습니다.• My email sending complies with the AWS Service Terms and AUP(내 이메일 전송은 AWS 서비스 약

관 및 AUP를 준수함)에서 해당 사용 사례에 적용되는 옵션을 선택합니다.• I only send to recipients who have specifically requested my mail(내 메일을 요청한 수신자에게만 보

내기)에서 해당 사용 사례에 적용되는 옵션을 선택합니다.• I have a process to handle bounces and complaints(반송 메일 및 수신 거부를 처리할 프로세스가 있

습니다)에서 해당 사용 사례에 적용되는 옵션을 선택합니다.6. 요청에서 다음 섹션을 작성합니다.

• 리전에서 해당 요청이 적용되는 AWS 리전을 선택합니다.• 한도에서 요청하려는 할당량 증가의 유형을 선택합니다. 다음 옵션 중에서 선택할 수 있습니다.

• Desired Maximum Send Quota(원하는 최대 전송 할당량) – 선택된 리전의 계정에서 24시간 단위로전송할 수 있는 이메일의 수를 늘리라는 요청을 할 경우, 이 옵션을 선택하십시오.

Desired Maximum Send Rate(원하는 최대 송신률) – 선택된 리전의 계정에서 초당 전송할 수 있는이메일의 수를 늘리라는 요청을 할 경우, 이 옵션을 선택하십시오.

• New limit value(새 한도 값)에 늘리려는 할당량을 입력합니다. 필요하다고 생각되는 양만 요청하십시오. 귀하가 요청한 양만큼 받는다는 보장은 없다는 점을 기억하십시오.

Note

발신 할당량 증가 및 송신률 증가를 모두 요청하거나 다른 AWS 리전에서 발신 할당량 증가를요청하려면 Add another request(다른 요청 추가)를 선택하십시오. 그런 다음, 이 단계를 반복합니다.

7. Case Description(사례 설명)의 Use case description(사용 사례 설명)에서 Amazon SES를 사용해 이메일을 어떻게 전송할 계획인지 설명합니다. 지원 센터에서 요청을 처리할 수 있도록 다음 질문에 응답하십시오.

• 메일 발송 목록을 어떻게 작성하거나 만들 계획인가요?• 반송 메일과 수신 거부를 어떻게 처리할 계획인가요?• 수신자가 귀하가 보내는 이메일을 수신 거부하는 방법은 무엇입니까?• 이 요청에서 귀하가 지정한 새 송신률 또는 발신 할당량을 어떻게 선택하셨습니까?

사례를 평가할 때 고려해야 할 추가 정보가 있는 경우, 이 섹션에도 해당 정보를 제공하십시오.8. Contact options(연락처 옵션)의 Preferred contact language(기본 연락처 언어)에서 이 사례에 대한 통신

을 영어 또는 일본어로 수신할지 여부를 선택합니다.9. 마쳤으면 제출을 선택합니다.

AWS Support 팀은 24시간 이내에 요청에 대한 초기 응답을 제공합니다.

시스템이 원치 않는 콘텐츠 또는 악성 콘텐츠를 전송하지 않도록 하기 위해 각 요청을 신중하게 고려해야 합니다. 가능한 경우 이 24시간 이내에 요청에 대한 권한을 부여합니다. 그러나 사용자의 추가 정보가 필요한경우 요청을 해결하는 데 시간이 오래 걸릴 수도 있습니다.

143

Page 152: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드할당량 오류 전송

AWS 정책에 맞지 않는 사용 사례인 경우, 요청에 대한 권한을 부여하지 않을 수도 있습니다.

사용자의 쿼터 전송과 관련된 오류 Amazon SES 계정일일 발신 할당량(24시간 기준으로 전송할 수 있는 최대 이메일 수) 또는 최대 송신률(초당 보낼 수 있는 최대 메시지 수)에 도달한 후에 이메일을 보내려고 하면 Amazon SES가 메시지를 거부하고 재전송을 시도하지 않습니다. Amazon SES는 문제를 설명하는 오류 메시지도 제공합니다. Amazon SES가 이 오류 메시지를생성하는 방법은 이메일을 보내려 할 때 사용한 방법에 따라 달라집니다. 이 주제에는 Amazon SES API 및SMTP 인터페이스를 통해 수신하는 메시지에 대한 정보가 포함됩니다.

최대 송신률에 도달할 때 사용할 수 있는 기술은 AWS 메시징 및 타게팅 블로그의 "조절 – 최대 송신률 초과"오류를 처리하는 방법을 참조하십시오.

로 전송 한도 도달 Amazon SES 주성분Amazon SES API(또는 AWS SDK)를 사용하여 이메일을 보내려 하지만 이미 계정의 발신 한도를 초과했다면 API가 ThrottlingException 오류를 생성합니다. 오류 메시지에는 다음 중 하나의 메시지가 포함되어있습니다.

• Daily message quota exceeded

• Maximum sending rate exceeded

조절 오류가 발생한 경우 애플리케이션을 프로그래밍하고 최대 10분간 기다렸다가 전송 요청을 다시 시도하십시오.

SMTP로 전송 제한 도달Amazon SES SMTP 인터페이스를 사용하여 이메일을 보내려 하지만 이미 계정의 발신 한도를 초과했다면SMTP 클라이언트가 다음 오류 중 하나를 표시할 수 있습니다.

• 454 Throttling failure: Maximum sending rate exceeded

• 454 Throttling failure: Daily message quota exceeded

SMTP 클라이언트마다 이러한 오류를 다르게 처리합니다.

Using sending authorization with Amazon SES구성할 수 있습니다. Amazon SES 사용자가 소유한 주소 또는 도메인(사용자가 소유하는 identities) 스스로Amazon SES 계정. 이 기능은 sending authorization을(를) 통해 언제든지 권한을 변경하거나 취소할 수 있도록 ID를 통제할 수 있습니다. 예를 들어 자영업자가 전송 권한 부여 기능을 사용하여 타사(예: 이메일 마케팅회사)에게 사용자가 소유하고 있는 도메인에서 마케팅 이메일을 발송하도록 허용할 수 있습니다.

누군가가 귀하를 대신하여 발송 권한을 부여하도록 승인하려면 identity owner. ID 소유자인 경우 다음 섹션을 읽으시기 바랍니다.

• 전송 권한 부여의 개요 (p. 145)• 전송 권한 부여 정책 (p. 147)• 전송 권한 부여 정책 예제 (p. 151)• 자격 증명 소유자 작업 (p. 156)

다른 사람을 대신하여 발송 허가를 받은 경우, delegate sender. 위임받은 사람인 경우 다음 섹션을 읽으시기바랍니다.

144

Page 153: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드전송 권한 부여의 개요

• 전송 권한 부여의 개요 (p. 145)• 위임 발신자 작업 (p. 161)

Note

IAM 정책을 사용하여 Amazon SES에 대한 액세스를 제어할 수도 있습니다. IAM 정책은 개별 IAM사용자가 수행할 수 있는 작업을 제한하지만 전송 권한 부여 정책은 확인된 개별 자격 증명을 사용할 수 있는 방법을 제한합니다. 또한 전송 권한 부여 정책만 교차 계정 액세스 권한을 부여할 수 있습니다. Amazon SES에서 IAM 정책을 사용하는 방법에 대한 자세한 내용은 Controlling access toAmazon SES (p. 373) 단원을 참조하십시오.

Amazon SES 전송 권한 부여의 개요이 주제에서는 전송 권한 부여 프로세스의 개요를 살펴보고 어떻게 발신 할당량, 알림과 같은 Amazon SES의 이메일 전송 기능을 전송 권한 부여와 함께 사용하는지 설명합니다.

이 단원에서는 다음 용어를 사용합니다.

• 자격 증명 – Amazon SES 사용자가 이메일을 보내기 위해 사용하는 이메일 주소 또는 도메인입니다.• 자격 증명 소유자 – Verifying identities (p. 46)에서 설명한 절차를 사용하여 이메일 주소 또는 도메인의

소유권을 확인한 Amazon SES 사용자입니다.• 위임 발신자 – 소유하지 않은 자격 증명으로 이메일을 발송하도록 권한을 부여 받은 엔터티입니다. AWS

계정, AWS Identity and Access Management(IAM) 사용자 또는 AWS 서비스는 이 교차 계정 권한을 가질수 있습니다.

• 전송 권한 부여 정책 – 자격 증명에 연결되는 문서로, 누가 어떤 조건으로 해당 자격 증명을 사용하여 전송할 수 있는지 지정합니다.

• Amazon 리소스 이름(ARN) – 모든 AWS 서비스에서 AWS 리소스를 고유하게 식별하는 표준화된 방법입니다. 전송 권한 부여의 경우 리소스는 자격 증명 소유자가 위임 발신자에게 사용하도록 권한을 부여한 자격 증명입니다. arn:aws:ses:us-west-2:123456789012:identity/example.com은 ARN의 한 예입니다.

전송 권한 부여 프로세스전송 권한 부여는 전송 권한 부여 정책을 기반으로 합니다. 위임 발신자에게 자신을 대신하여 이메일을 전송하도록 허용하려면 Amazon SES 콘솔 또는 Amazon SES API를 사용하여 전송 권한 부여 정책을 생성하여자격 증명에 연결해야 합니다. 위임 발신자는 자격 증명 소유자를 대신하여 Amazon SES를 통해 이메일을전송할 때 요청 또는 이메일 헤더에서 자격 증명의 ARN을 전달합니다.

이메일 전송 요청을 수신한 Amazon SES는 자격 증명 소유자의 정책(있는 경우)을 확인하여 자격 증명 소유자가 위임 발신자에게 해당 자격 증명을 대신하여 이메일을 전송하도록 허용했는지 판단합니다. 위임 발신자에게 권한이 부여된 경우 Amazon SES가 이메일을 수락하고, 그렇지 않으면 Amazon SES가 오류 메시지를반환합니다.

다음 다이어그램은 전송 권한 부여 개념 사이의 상위 수준 관계를 보여줍니다.

145

Page 154: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드전송 권한 부여의 개요

전송 권한 부여 프로세스는 다음 단계로 구성됩니다.

1. 자격 증명 소유자가 Amazon SES 콘솔 또는 Amazon SES API를 사용하여 Amazon SES에서 자격 증명을 확인합니다. 확인 절차에 대한 자세한 내용은 Verifying identities (p. 46) 단원을 참조하십시오.

2. 위임 발신자가 자격 증명 소유자에게 전송을 수행할 엔터티의 AWS 계정 ID, IAM 사용자 ARN 또는 AWS서비스 이름을 제공합니다.

3. 자격 증명 소유자가 Amazon SES 콘솔 또는 Amazon SES API를 사용하여 전송 권한 부여 정책을 생성하여 자격 증명에 연결합니다.

4. 위임 발신자가 이메일 전송 시 Amazon SES에게 ARN을 제공할 수 있도록 자격 증명 소유자가 위임 발신자에게 자격 증명의 ARN을 제공합니다.

5. 위임 발신자는 반송 메일 및 수신 거부 알림을 설정합니다. 자격 증명 소유자도 반송 메일 및 수신 거부 이벤트에 대한 이메일 피드백 알림을 설정할 수 있습니다. 자격 증명 소유자와 위임 발신자 모두 전송 이벤트 데이터를 캡처하도록 이벤트 게시 (p. 269)를 설정할 수도 있습니다.

Note

자격 증명 소유자가 전송 이벤트 알림을 비활성화한 경우 위임 발신자는 Amazon SNS 주제 또는 Kinesis Data Firehose 스트림에 반송 메일 및 수신 거부 이벤트를 게시하도록 이벤트 게시를설정해야 합니다. 또한 발신자는 이벤트 게시 규칙이 포함된 구성 세트를 전송하는 각 이메일에적용해야 합니다. 자격 증명 소유자도 위임 발신자도 반송 메일 및 수신 거부 이벤트에 대한 알림 전송 방법을 설정하지 않은 경우 자격 증명 소유자가 이메일 피드백 전달을 비활성화했더라도Amazon SES는 이메일의 Return-Path 필드에 있는 주소(또는 Return-Path 주소를 지정하지 않은 경우 소스 필드의 주소)로 이메일을 통해 이벤트 알림을 자동으로 보냅니다.

6. 위임 발신자가 요청 또는 이메일 헤더에서 자격 증명 소유자의 ARN을 전달하여 자격 증명 소유자를 대신하여 Amazon SES를 통해 이메일 전송을 시도합니다. 위임 발신자는 Amazon SES SMTP 인터페이스 또는 Amazon SES API를 사용하여 이메일을 전송할 수 있습니다. 요청을 수신한 Amazon SES는 자격 증명에 연결된 모든 정책을 검사하여 위임 발신자가 지정된 "From" 주소 및 "Return Path" 주소를 사용할 권한이 부여된 경우 이메일을 수락합니다. 그렇지 않을 경우 Amazon SES가 오류 메시지를 반환하고 메시지를 수락하지 않습니다.

7. 자격 증명 소유자가 위임 발신자의 권한을 철회해야 하는 경우, 자격 증명 소유자는 전송 권한 부여 정책을 편집하거나 전체 정책을 삭제합니다. 자격 증명 소유자는 Amazon SES 콘솔 또는 Amazon SES API를사용하여 각 작업을 수행할 수 있습니다.

자격 증명 소유자 또는 위임 발신자가 이러한 작업을 수행하는 방법에 대한 자세한 내용은 각각 자격 증명 소유자 작업 (p. 156) 또는 위임 발신자 작업 (p. 161) 단원을 참조하십시오.

146

Page 155: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드전송 권한 부여 정책

이메일 전송 기능의 특성일일 발신 할당량, 반송 메일 및 수신 거부, DKIM 서명, 피드백 전달 등의 Amazon SES 이메일 전송 기능과관련하여 위임 발신자 및 자격 증명 소유자의 역할을 이해하는 것이 중요합니다. 특성은 다음과 같습니다.

• 발신 할당량 – 자격 증명 소유자의 자격 증명에서 전송된 이메일은 위임 발신자의 할당량에서 감산됩니다.• 반송 메일 및 수신 거부 – 반송 메일 및 수신 거부 이벤트는 위임 발신자의 Amazon SES 계정에 기록되므

로 위임 발신자의 평판에 영향을 줄 수 있습니다.• DKIM 서명 – 자격 증명 소유자가 자격 증명에 대해 Easy DKIM 서명을 활성화한 경우 위임 발신자가 전송

한 이메일을 포함하여 해당 자격 증명에서 전송된 모든 이메일이 DKIM 서명됩니다. 자격 증명 소유자는이메일이 DKIM 서명될지 여부만 제어할 수 있습니다.

• 알림 – 자격 증명 소유자와 위임 발신자는 모두 반송 메일 및 수신 거부에 대한 알림을 설정할 수 있습니다.이메일 자격 증명 소유자도 이메일 피드백 전달을 활성화할 수 있습니다. 알림 설정에 대한 자세한 내용은Monitoring your Amazon SES sending activity (p. 242) 단원을 참조하십시오.

• 확인 – 자격 증명 소유자는 Verifying identities (p. 46)의 절차에 따라 위임 발신자에게 사용 권한을 부여한 이메일 주소 및 도메인의 소유권을 확인할 책임이 있습니다. 위임 발신자는 전송 권한 부여만을 위해 이메일 주소 또는 도메인을 확인할 필요가 없습니다.

• AWS 리전 – 위임 발신자는 자격 증명 소유자의 자격 증명이 확인된 AWS 리전에서 이메일을 전송해야 합니다. 위임 발신자에게 권한을 부여하는 전송 권한 부여 정책이 해당 리전의 자격 증명에 연결되어야 합니다.

• 결제 – 위임 발신자가 자격 증명 소유자의 주소를 사용해 보낸 이메일을 비롯해 위임 발신자의 계정에서보낸 모든 메시지는 위임 발신자에게 청구됩니다.

Amazon SES 전송 권한 부여 정책다른 AWS 계정, Identity and Access Management(IAM) 사용자 또는 AWS 서비스가 사용자를 대신하여Amazon SES를 통해 이메일을 전송하도록 허용하려면 전송 권한 부여 정책을 생성합니다. 이 정책은 사용자소유의 자격 증명에 연결되는 JSON 문서입니다. 이 정책은 사용자가 자신의 자격 증명으로 이메일을 전송하도록 허용하는 다른 사용자 및 조건을 명시적으로 나열합니다. 사용자와 사용자가 정책에서 명시적으로 권한을 부여한 엔터티를 제외한 모든 발신자는 거부됩니다. 자격 증명은 연결된 정책이 없을 수도, 하나 또는 여러 개일 수도 있습니다. 또한 다중 정책의 효과를 구현하기 위해 복수의 문을 포함한 단일 정책을 생성할 수도 있습니다.

정책은 간단할 수도 있고 세부적인 제어를 제공하도록 구성할 수도 있습니다. 예를 들어, example.com을 소유한 경우 이 도메인에서 이메일을 전송할 수 있도록 AWS ID 123456789012 권한을 부여하는 간단한 정책을 작성할 수 있습니다. 보다 상세한 정책에서는 AWS ID 123456789012가 [email protected]에서만, 그리고 지정된 날짜 범위에만 이메일을 전송하도록 지정할 수 있습니다.

Amazon SES 전송 권한 부여 정책은 이메일 전송 API(SendEmail, SendRawEmail,SendTemplatedEmail 및 SendBulkTemplatedEmail)에만 적용됩니다. 이 정책은 사용자가 다른 방식으로 AWS 계정에 액세스하도록 허용하지 않습니다.

정책 구조각 전송 권한 부여 정책은 특정 자격 증명에 연결되는 JSON 문서입니다. 각 정책에는 다음 단원이 포함되어있습니다.

• 문서 상단의 정책 전반의 정보.• 각각 하나의 권한 집합을 설명하는 하나 이상의 문.

다음 정책 예제는 AWS 계정 ID 123456789012에 확인된 도메인 example.com에서 이메일을 전송할 수 있는권한을 부여합니다.

147

Page 156: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드전송 권한 부여 정책

{ "Id":"ExampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeAccount", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:123456789012:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "ses:SendEmail", "ses:SendTemplatedEmail", "ses:SendRawEmail", "ses:SendBulkTemplatedEmail" ] } ]}

전송 권한 부여 정책 예제 (p. 151)에 더 많은 전송 권한 부여 정책 예제가 나와 있습니다.

정책 요소이 단원에서는 전송 권한 부여 정책에 포함되는 요소를 설명합니다. 먼저 전역 정책 요소를 설명한 후, 해당요소가 포함된 문에만 적용되는 요소를 설명합니다. 그런 다음 문에 조건을 추가하는 방법을 알아봅니다.

요소의 구문에 대한 자세한 내용은 IAM 사용 설명서의 IAM 정책 언어의 문법을 참조하십시오.

정책 전반의 정보전역 정책 요소는 2가지가 있습니다. Id 및 Version. 다음 표에 이들 요소에 대한 정보가 나와 있습니다.

이름 설명 필수 유효한 값

Id 정책을 고유하게 식별합니다. 아니요 임의의 문자열

Version 정책 액세스 언어 버전을 지정합니다.

아니요 임의의 문자열. 모범 사례는 이 필드를 "2012-10-17"의 값으로 포함시키는 것입니다.

정책 전용 문전송 권한 부여 정책은 적어도 하나의 문을 필요로 합니다. 각 문은 다음 표에서 설명하는 요소를 포함할 수있습니다.

이름 설명 필수 유효한 값

Sid 문을 고유하게 식별합니다.

아니요 임의의 문자열.

Effect 평가 시점에서 정책 문이반환할 결과를 지정합니다.

예 "Allow" 또는 "Deny".

148

Page 157: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드전송 권한 부여 정책

이름 설명 필수 유효한 값

Resource 정책이 적용되는 자격 증명을 지정합니다. 자격증명은 자격 증명 소유자가 위임 발신자에게 사용권한을 부여한 이메일 주소 또는 도메인입니다.

예 이메일 자격 증명의Amazon 리소스 이름(ARN)입니다.

Principal 문에서 권한을 부여 받는AWS 계정, IAM 사용자또는 AWS 서비스를 지정합니다.

예 유효한 AWS 계정 ID,IAM 사용자 ARN 또는 AWS 서비스입니다. AWS 계정 ID 및IAM 사용자 ARN은"AWS"를 사용하여 지정됩니다(예: "AWS":["123456789012"]또는 "AWS":["arn:aws:iam::123456789012:root"]).AWS 서비스 이름은 "Service"를 사용하여 지정됩니다(예: "Service":["cognito-idp.amazonaws.com"]).

IAM 사용자 ARN의 형식에 대한 예제는 AWSGeneral Reference를 참조하십시오.

Action 문이 적용되는 이메일 전송 작업을 지정합니다.

예 "ses:SendEmail","ses:SendRawEmail","ses:SendTemplatedEmail","ses:SendBulkTemplatedEmail"

이러한 작업을 하나 이상 지정할 수 있습니다.또한 "ses:Send*"를 지정하여 이러한 모든 작업을 포함시킬 수 있습니다. 위임 발신자가 SMTP인터페이스를 사용하여이메일을 보내려는 경우"ses:SendRawEmail"을지정하거나"ses:Send*"를 사용해야합니다.

Condition 권한에 대한 제한 또는세부 정보를 지정합니다.

아니요 이 표 다음에서 조건에대한 자세한 내용을 참조하십시오.

조건

조건(condition)은 문에 지정된 권한에 대한 제한입니다. 문에서 조건을 지정하는 부분이 가장 세부적일 수 있습니다. 키(key)는 요청의 날짜 및 시간과 같이 액세스 제한의 기준이 되는 구체적인 특성입니다.

149

Page 158: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드전송 권한 부여 정책

조건과 키를 함께 사용하여 제한을 표현합니다. 예를 들어, 위임 발신자가 2019년 7월 30일 이후로는 사용자를 대신하여 Amazon SES에 요청을 하지 못하게 제한하려면 DateLessThan 조건을 사용합니다.aws:CurrentTime이라는 키를 사용하여 그 값을 2019-07-30T00:00:00Z로 설정합니다.

IAM 사용 설명서의 사용 가능한 키에 나열된 AWS 차원 키 중 하나를 사용하거나 다음과 같은 Amazon SES고유 키 중 하나를 사용할 수 있습니다.

조건 키 설명

ses:Recipients To:, "CC" 및 "BCC" 주소가 포함된 수신자 주소를 제한합니다.

ses:FromAddress "From" 주소를 제한합니다.

ses:FromDisplayName "From" 표시 이름(때때로 "대화명"으로 부름)으로 사용되는 문자열의 내용을 제한합니다. 예를 들어 "John Doe<[email protected]>"의 표시 이름은 John Doe입니다.

ses:FeedbackAddress 이메일 피드백 전달로 반송 메일과 불만 제기를 전송할 수있는 주소인 "Return Path" 주소를 제한합니다. 이메일 피드백 전달에 대한 자세한 내용은 Amazon SES notificationssent by email (p. 248) 단원을 참조하십시오.

Amazon SES 키와 함께 StringEquals 및 StringLike 조건을 사용할 수 있습니다. 이러한 조건은 대/소문자 구분 문자열 매칭을 위한 것입니다. StringLike의 경우 문자열 어디에서나 다중 문자 매칭 와일드카드(*) 또는 단일 문자 매칭 와일드카드(?)를 값에 포함할 수 있습니다. 예를 들어 다음 조건은 위임 발신자가invoicing으로 시작하고 @example.com으로 끝나는 "From" 주소에서만 이메일을 전송할 수 있게 지정합니다.

"Condition": { "StringLike": { "ses:FromAddress": "invoicing*@example.com" }}

또한 위임 발신자가 특정 이메일 주소에서 이메일을 전송하지 못하도록 StringNotLike 조건을 사용할 수있습니다. 예를 들어 정책 문에 다음 조건을 포함시켜 "admin"@example.com, [email protected] 또는[email protected]과 같은 비슷한 주소뿐만 아니라 [email protected]에서도 전송할 수 없도록 할 수 있습니다.

"Condition": { "StringNotLike": { "ses:FromAddress": "*admin*example.com" } }

조건을 지정하는 방법에 대한 자세한 내용은 IAM 사용 설명서의 IAMJSON 정책 요소: 조건을 참조하십시오.

정책 요구 사항정책은 다음 요구 사항을 모두 충족해야 합니다.

• 각 정책은 하나 이상의 문을 포함해야 합니다.• 각 정책은 하나 이상의 유효한 보안 주체를 포함해야 합니다.• 각 정책은 리소스 하나를 지정해야 하며, 이 리소스는 정책이 연결된 자격 증명의 ARN이어야 합니다.

150

Page 159: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드전송 권한 부여 정책 예제

• 자격 증명 소유자는 각 고유 자격 증명에 최대 20개의 정책을 연결할 수 있습니다.• 정책 크기는 4KB(킬로바이트) 이내여야 합니다.• 정책 이름은 64자 이내여야 합니다. 영숫자 문자, 대시 및 밑줄만 포함할 수 있습니다.

Amazon SES 전송 권한 부여 정책 예제전송 권한 부여에서는 사용자가 위임 발신자에게 사용자를 대신하여 이메일을 전송하도록 허용하는 세부 조건을 지정할 수 있습니다.

다음 예제는 전송의 다양한 측면을 제어하는 정책을 작성하는 방법을 보여줍니다.• 위임 발신자 지정 (p. 151)• "From" 주소 제한 (p. 153)• 위임자가 이메일을 전송할 수 있는 시간 제한 (p. 153)• 이메일 전송 작업 제한 (p. 154)• 이메일 발신자의 표시 이름 제한 (p. 154)• 복수의 문 사용 (p. 155)

위임 발신자 지정사용자가 권한을 부여하는 엔터티인 보안 주체는 AWS 계정, AWS Identity and Access Management(IAM)사용자 또는 AWS 서비스일 수 있습니다.

다음 예제는 AWS ID 123456789012에 확인된 자격 증명 example.com(AWS 계정 888888888888 소유)에서이메일을 전송하도록 허용하는 간단한 정책을 보여줍니다. 이 정책의 Condition 문은 위임자(즉, AWS ID123456789012)가 주소 marketing+.*@example.com에서만 이메일을 보내도록 허용합니다. 여기서 .*는 발신자가 marketing+ 다음에 추가하려는 임의의 문자열입니다.

{ "Id":"SampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeMarketer", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "StringLike":{ "ses:FromAddress":"marketing+.*@example.com" } } } ]}

다음 정책 예제는 두 IAM 사용자에게 자격 증명 example.com에서 이메일을 전송할 수 있는 권한을 부여합니다. IAM 사용자는 Amazon 리소스 이름(ARN)을 사용하여 지정됩니다.

151

Page 160: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드전송 권한 부여 정책 예제

{ "Id":"ExampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeIAMUser", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "arn:aws:iam::111122223333:user/John", "arn:aws:iam::444455556666:user/Jane" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ] } ]}

다음 정책 예제는 Amazon Cognito에게 자격 증명 example.com에서 이메일을 전송할 수 있는 권한을 부여합니다.

{ "Id":"ExampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeService", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "Service":[ "cognito-idp.amazonaws.com" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ] } ]}

다음 예제 정책은 AWS 조직 내의 모든 계정에 identity example.com에서 보낼 수 있는 권한을 부여합니다.AWS 조직은 다음을 사용하여 지정됩니다. 주체조직ID 전역 조건 키.

{ "Id":"ExampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeOrg", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":"*", "Action":[ "SES:SendEmail", "SES:SendRawEmail" ],

152

Page 161: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드전송 권한 부여 정책 예제

"Condition":{ "StringEquals":{ "aws:PrincipalOrgID":"o-xxxxxxxxxxx" } } } ]}

"From" 주소 제한확인된 도메인을 사용하면 위임 발신자만 지정된 이메일 주소에서 전송하도록 허용하는 정책을 생성할수 있습니다. "From" 주소를 제한하려면 ses:FromAddress 키에서 조건을 설정합니다. 다음 정책은 AWS계정 ID 123456789012가 자격 증명 example.com에서 이메일을 전송하도록 허용하지만 이메일 주소[email protected]만 사용하도록 한정합니다.

{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeFromAddress", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "StringEquals":{ "ses:FromAddress":"[email protected]" } } } ]}

위임자가 이메일을 전송할 수 있는 시간 제한위임 발신자가 특정 시간대 또는 특정 날짜 범위 내에서만 이메일을 전송할 수 있도록 발신자 권한 부여 정책을 구성할 수도 있습니다. 예를 들어 이메일 캠페인 전송이 2018년 9월 한 달 동안 예정되어 있는 경우 다음정책을 사용하여 위임자가 해당 월에만 이메일을 전송할 수 있도록 제한할 수 있습니다.

{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"ControlTimePeriod", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] },

153

Page 162: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드전송 권한 부여 정책 예제

"Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "DateGreaterThan":{ "aws:CurrentTime":"2018-08-31T12:00Z" }, "DateLessThan":{ "aws:CurrentTime":"2018-10-01T12:00Z" } } } ]}

이메일 전송 작업 제한발신자가 이메일을 보내는 데 사용할 수 있는 두 가지 동작이 있습니다. Amazon SES: SendEmail 및SendRawEmail, 전자 메일 형식에 대해 보낸 사람이 얼마나 많은 제어권을 원하는지에 따라 달라집니다. 전송 권한 부여 정책을 통해 위임 발신자가 두 작업 중 하나만 사용하도록 제한할 수 있습니다. 하지만 많은 자격 증명 소유자는 이메일 전송 호출의 세부 정보를 위임 발신자가 선택할 수 있도록 정책에서 두 작업을 모두활성화합니다.

Note

위임 발신자가 SMTP 인터페이스를 통해 Amazon SES에 액세스하도록 허용하려면 최소한SendRawEmail을 선택해야 합니다.

작업을 제한하려는 사용 사례라면 전송 권한 부여 정책에 작업 중 하나만 포함시킵니다. 다음 예제는 작업을SendRawEmail로 제한하는 방법을 보여줍니다.

{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"ControlAction", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "SES:SendRawEmail" ] } ]}

이메일 발신자의 표시 이름 제한일부 이메일 클라이언트는 실제 "From" 주소가 아니라 이메일 발신자의 "대화명" 이름을 표시합니다(이메일 헤더가 제공하는 경우). 예를 들어 "John Doe <[email protected]>"의 표시 이름은 John Doe입니다. 예를 들어 에서 이메일을 보낼 수 있습니다. 사용자@예시.com, 수신자가 해당 이메일의 출처를 보는 것을 선호합니다. 마케팅 그보다는 사용자@예시.com. 다음 정책은 AWS 계정 ID 123456789012가 자격 증명example.com에서 이메일을 전송하도록 허용하지만 "발신" 주소의 표시 이름에 Marketing이 포함되도록 한정합니다.

154

Page 163: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드전송 권한 부여 정책 예제

{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeFromAddress", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "StringLike":{ "ses:FromDisplayName":"Marketing" } } } ]}

복수의 문 사용전송 권한 부여 정책에는 여러 문이 포함될 수 있습니다. 다음의 정책 예제에는 문이 2개입니다. 첫 번째문장은 AWS 보낼 계정 발송자@예시.com "보낸 사람" 주소와 피드백 주소가 모두 도메인을 사용하는 한예제.com. 두 번째 문은 IAM 사용자가 example.com 도메인에 속하는 수신자의 이메일 주소인 조건으로[email protected]에서 이메일을 전송하도록 권한을 부여합니다.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeAWS", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:999999999999:identity/[email protected]", "Principal":{ "AWS":[ "111111111111", "222222222222" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "StringLike":{ "ses:FromAddress":"*@example.com", "ses:FeedbackAddress":"*@example.com" } } }, { "Sid":"AuthorizeInternal", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:999999999999:identity/[email protected]", "Principal":{ "AWS":"arn:aws:iam::333333333333:user/Jane"

155

Page 164: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드자격 증명 소유자 작업

}, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "ForAllValues:StringLike":{ "ses:Recipients":"*@example.com" } } } ]}

Amazon SES 전송 권한 부여를 위한 자격 증명 소유자작업이 단원에서는 전송 권한 부여를 구성할 때 자격 증명 소유자가 취해야 하는 단계를 설명합니다.

주제• Amazon SES 전송 권한 부여를 위한 자격 증명 확인 (p. 156)• Amazon SES 전송 권한 부여를 위한 자격 증명 소유자 알림 설정 (p. 156)• Amazon SES 전송 권한 부여에서 위임 발신자로부터 정보 얻기 (p. 157)• Amazon SES 전송 권한 부여 정책 생성 (p. 157)• Amazon SES 전송 권한 부여에서 위임 발신자에게 자격 증명 정보 제공 (p. 160)• Amazon SES 전송 권한 부여 정책 관리 (p. 160)

Amazon SES 전송 권한 부여를 위한 자격 증명 확인전송 권한 부여 구성의 첫 단계는 위임 발신자가 이메일을 보내는 데 사용할 이메일 주소나 도메인을 소유한다고 입증하는 것입니다. 확인 절차는 Verifying identities (p. 46) 단원에 설명되어 있습니다.

Amazon SES 콘솔의 자격 증명 관리 섹션에서 상태를 점검하거나GetIdentityVerificationAttributes API 작업을 사용하여 메일 주소 또는 도메인이 검증되었는지확인할 수 있습니다.

개발자나 위임 발신자가 확인되지 않은 이메일 주소로 이메일을 보내려면 먼저 Amazon SES 샌드박스에서 계정을 제거해 달라고 요청을 제출해야 합니다. 자세한 내용은 Amazon SES 샌드박스 환경에서 나가기 (p. 69) 단원을 참조하십시오.

Important

자격 증명 소유자와 위임 발신자 모두의 AWS 계정을 샌드박스에서 제거해야 두 계정이 확인되지않은 주소로 이메일을 보낼 수 있습니다.

Amazon SES 전송 권한 부여를 위한 자격 증명 소유자 알림 설정사용자를 대신하여 이메일을 보내도록 위임 발신자에게 권한을 부여하면 Amazon SES는 해당 이메일로인해 생성되는 모든 반송 메일 또는 수신 거부를 사용자가 아니라 위임 발신자의 반송 메일 및 수신 거부 한도에 반영합니다. 그러나, 위임된 보낸 사람이 보낸 메시지로 인해 IP 주소가 타사 안티스팸 DNS 기반 블랙홀 목록(DNSBL)으로 끝나는 경우, ID의 평판이 손상될 수 있습니다. 따라서 자격 증명 소유자일 경우 자격 증명에 대해 이메일 피드백 전달을 설정해야 합니다. 자세한 정보는 Amazon SES notifications sent byemail (p. 248) 단원을 참조하십시오.

156

Page 165: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드자격 증명 소유자 작업

위임 발신자는 사용자가 사용 권한을 부여한 자격 증명에 대해 자체 반송 메일 및 수신 거부 알림을 설정할수 있습니다. 또한 반송 메일 또는 수신 거부 이벤트가 발생하면 알림을 보내도록 이벤트 게시 (p. 269)를설정할 수도 있습니다. 자격 증명 소유자가 피드백 전달을 비활성화한 경우 위임 발신자는 Amazon SNS 주제 또는 Kinesis Data Firehose 스트림에 반송 메일 및 수신 거부 이벤트를 게시하도록 이벤트 게시를 설정해야 합니다. 자격 증명 소유자도 위임 발신자도 반송 메일 및 수신 거부 이벤트에 대한 알림 전송 방법을 설정하지 않은 경우 또는 발신자가 이벤트 게시 규칙을 사용하는 구성 세트를 적용하지 않은 경우 이메일 피드백전달을 비활성화했더라도 Amazon SES는 이메일의 Return-Path 필드에 있는 주소(또는 Return-Path 주소를지정하지 않은 경우 소스 필드의 주소)로 이메일을 통해 이벤트 알림을 자동으로 보냅니다. 이 프로세스는 다음 이미지에 설명되어 있습니다.

Amazon SES 전송 권한 부여에서 위임 발신자로부터 정보 얻기전송 권한 부여 정책은 하나 이상의 보안 주체, 즉 액세스가 부여되는 엔터티를 지정해야 합니다. AmazonSES 전송 권한 부여 정책에서는 보안 주체가 AWS 계정, AWS Identity and Access Management(IAM) 사용자 또는 AWS 서비스일 수 있습니다.

어떤 유형의 보안 주체를 선택할지는 사용자의 선호에 달려있지만 가장 세부적인 제어를 원한다면 위임 발신자의 AWS 계정 내 임의의 사용자가 아니라 하나의 위임 발신자만 사용자를 대신하여 이메일을 전송하도록위임 발신자에게 IAM 사용자를 설정하도록 요청하십시오. 위임 발신자는 IAM 사용 설명서의 AWS 계정에서IAM 사용자 생성에서 IAM 사용자 설정에 대한 정보를 확인할 수 있습니다.

AWS 계정, IAM 사용자 또는 AWS 서비스에 대한 액세스 권한을 부여할지 여부를 결정했으면 전송 권한부여 정책에 포함시킬 수 있도록 위임 발신자에게 AWS 계정 ID 또는 IAM 사용자의 Amazon 리소스 이름(ARN)을 요청합니다. 위임 발신자에게 자격 증명 소유자에게 정보 제공 (p. 161) 내 지침을 사용하여 이 정보를 찾을 수 있음을 알려줄 수 있습니다. 위임 발신자가 AWS 서비스인 경우 서비스 이름을 확인하려면 해당 서비스에 대한 설명서를 참조하십시오.

Amazon SES 전송 권한 부여 정책 생성위임 발신자에게 이메일 주소 또는 도메인(자격 증명)을 사용하여 이메일을 전송하도록 권한을 부여하려면전송 권한 부여 정책을 생성한 후 해당 자격 증명에 연결합니다. 자격 증명에는 정책이 없거나 하나 또는 여러 개의 정책을 포함할 수 있습니다. 하지만 단일 정책은 단일 자격 증명에만 연결할 수 있습니다.

다음과 같은 방법으로 전송 권한 부여 정책을 생성할 수 있습니다.

• 정책 생성기 사용 – Amazon SES 콘솔에서 정책 생성기를 사용하여 간단한 정책을 생성할 수 있습니다.누가 이메일을 전송할 수 있는지 지정하는 이외에, 이메일을 전송할 수 있는 날짜 및 시간, "From" 주소,"From" 표시 이름, 반송 메일 및 수신 거부가 전송될 주소, 수신자 주소, 소스 IP를 기반으로 한 조건을 사용해 이메일 전송을 제한할 수 있습니다. 정책 생성기를 사용하여 간단한 정책의 구조를 생성했다가 나중에정책을 편집하여 사용자 지정할 수도 있습니다.

• 사용자 지정 정책 생성 – 고급 조건을 포함시키거나 AWS 서비스를 보안 주체로 사용할 경우 Amazon SES콘솔 또는 Amazon SES API를 사용해 사용자 지정 정책을 생성하여 자격 증명에 연결할 수 있습니다.

이 주제에서는 두 가지 방법을 모두 설명합니다.

Note

이메일 주소 자격 증명에 연결한 전송 권한 부여 정책은 해당 도메인 자격 증명에 연결한 정책보다우선합니다. 예를 들어 사용자가 example.com에 대해서는 특정 위임 발신자를 허용하지 않는 정책을 생성하고 [email protected]에 대해서는 이 위임 발신자를 허용하는 정책을 생성할 경우, 위임 발신자는 [email protected]에서는 이메일을 전송할 수 있지만 example.com 도메인의 기타모든 주소에서는 전송할 수 없습니다.사용자가 example.com에 대해서는 특정 위임 발신자를 허용하는 정책을 생성하고[email protected]에 대해서는 이 위임 발신자를 허용하지 않는 정책을 생성할 경우, 위임 발신자는 [email protected]을 제외한 example.com 도메인의 모든 주소에서 이메일을 전송할 수있습니다.

157

Page 166: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드자격 증명 소유자 작업

정책 생성기를 사용하여 정책 생성

다음 절차에 따라 정책 생성기를 사용하여 간단한 권한 부여 정책을 생성할 수 있습니다.

정책 생성기를 사용하여 정책을 생성하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Identity Management]에서 [Domains] 또는 [Email Addresses]를 선택합니다.3. 자격 증명 목록에서 정책을 생성할 자격 증명을 선택합니다.4. 세부 정보 창에서 [Identity Policies]를 확장하고 [Create Policy], [Policy Generator]를 차례로 선택합니

다.5. 마법사에서, 다음 필드에 대한 값을 선택하여 정책 문을 생성합니다. 이러한 옵션에 대한 자세한 내용은

전송 권한 부여 정책 (p. 147) 단원을 참조하십시오.

• 효과 – 액세스에 대한 권한을 부여하려면 허용을 선택합니다. 그렇지 않으면 거부를 선택합니다.• 보안 주체 – 액세스를 허용 또는 거부하는 12자리 AWS 계정 ID 또는 IAM 사용자의 ARN을 입력한 다

음 추가를 선택합니다. 이 단계를 반복하여 보안 주체를 추가할 수 있습니다. AWS 계정 ID의 예제는123456789012이고 IAM 사용자 ARN의 예제는 arn:aws:iam::123456789012:user/John입니다.

Note

정책 생성기 마법사는 현재 AWS 서비스 보안 주체를 지원하지 않습니다. AWS 서비스 보안주체를 추가하려면 사용자 지정 정책을 생성 (p. 159)하거나 정책 생성기를 사용하여 AWS계정 또는 IAM 사용자 보안 주체를 추가한 다음 정책을 편집 (p. 160)해야 합니다.

• 작업 – 이 정책이 적용되는 이메일 전송 액세스를 선택합니다. 일반적으로 자격 증명 소유자는 위임발신자가 자유롭게 이메일 전송 방식을 선택할 수 있도록 두 옵션을 모두 선택합니다. 자세한 내용은정책 전용 문 (p. 148)를 참조하십시오.

6. (선택 사항) 정책에 제한을 추가하려는 경우 [Add Conditions]를 선택한 후 다음 정보를 선택합니다.

• 키 – 액세스 제한의 기준이 되는 특성입니다. 정책 생성기를 사용하면 Amazon SES 고유 키 또는 흔히 사용되는 몇몇 AWS 차원 키(현재 시간 및 소스 IP) 중 하나를 선택할 수 있습니다. 자세한 내용은조건 (p. 149) 단원을 참조하십시오. 사용 가능한 키에 나열된 고급 AWS 차원 키를 지정하려는 경우정책을 생성한 후 편집할 수 있습니다.

• 조건 – 지정할 조건의 유형입니다. 예를 들어 문자열 조건, 숫자 조건, 날짜 및 시간 조건 등이 있습니다. 조건 목록은 IAM 사용 설명서의 조건 유형을 참조하십시오.

• 값 – 조건에 따라 테스트할 값입니다. 예를 들어 전송 권한 부여 정책 예제 (p. 151) 내 정책을 참조하십시오.

키, 조건 및 값을 선택한 후 [Add Condition]을 선택합니다. [Conditions] 목록에 조건이 표시됩니다. 목록에서 조건 옆의 [Remove]를 선택하여 조건을 제거할 수 있습니다. [Add Conditions]를 다시 선택하면 다른 조건을 추가할 수 있습니다.

158

Page 167: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드자격 증명 소유자 작업

7. 조건 추가를 마치면 [Add Statement]를 선택합니다. 문은 [Statements] 목록에 표시되며, 여기서 편집 또는 제거를 선택할 수 있습니다. 5–7단계를 반복하여 다른 문을 추가할 수 있습니다.

8. 문 추가를 마치면 [Next]를 선택합니다.9. [Edit Policy] 대화 상자에서 정책을 검토하여 필요한 경우 편집한 후 [Apply Policy]를 선택합니다.

사용자 지정 정책 생성

사용자 지정 정책을 생성하여 자격 증명에 연결할 수 있는 옵션은 다음과 같습니다.

• Amazon SES API 사용 – 텍스트 편집기에서 정책을 생성한 후 Amazon Simple Email Service APIReference에 설명된 PutIdentityPolicy API를 사용하여 정책을 자격 증명에 연결합니다.

• Amazon SES 콘솔 사용 – 텍스트 편집기에서 정책을 생성하고 Amazon SES 콘솔의 사용자 지정 정책 편집기에 붙여 넣어서 자격 증명에 연결합니다. 다음 절차에서는 이 방법을 설명합니다.

사용자 지정 정책 편집기를 사용하여 사용자 지정 정책을 생성하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Identity Management]에서 [Domains] 또는 [Email Addresses]를 선택합니다.

159

Page 168: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드자격 증명 소유자 작업

3. 자격 증명 목록에서 정책을 생성할 자격 증명을 선택합니다.4. 세부 정보 창에서 [Identity Policies]를 확장하고 [Create Policy], [Custom Policy]를 차례로 선택합니다.5. [Edit Policy] 창에서 정책의 텍스트를 붙여 넣습니다.6. [Apply Policy]를 선택합니다.

Amazon SES 전송 권한 부여에서 위임 발신자에게 자격 증명 정보제공전송 권한 부여 정책을 생성하여 자격 증명에 연결한 후, 위임 발신자에게 자격 증명의 Amazon 리소스 이름(ARN)을 제공해야 합니다. 위임 발신자는 이메일 전송 작업 또는 이메일 헤더에서 이 ARN을 Amazon SES로 전달합니다. 다음 절차를 사용하여 자격 증명의 ARN을 찾습니다.

자격 증명의 ARN을 찾으려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Identity Management]에서 [Domains] 또는 [Email Addresses]를 선택합니다.3. 자격 증명 목록에서 전송 권한 부여 정책에 연결한 자격 증명을 선택합니다.4. 세부 정보 창의 상단에서, [Identity ARN] 다음에 자격 증명의 ARN이 표시되어 있습니다. 예를 들면 ARN

은 arn:aws:ses:us-east-1:123456789012:identity/[email protected]과 같습니다. 전체 ARN을 복사하여 위임 발신자에게 제공합니다.

Amazon SES 전송 권한 부여 정책 관리정책 생성 (p. 157)에서 설명한 대로 정책을 생성하여 자격 증명에 연결하는 이외에, 다음 단원의 설명에 따라 자격 증명의 정책을 편집, 제거, 나열 및 검색할 수 있습니다.

Note

권한을 취소하려면 정책을 편집하거나 제거할 수 있습니다.

정책 편집

정책을 편집하는 가장 쉬운 방법은 Amazon SES 콘솔을 사용하는 것입니다. 그 대신 Amazon SES API를 사용하려는 경우 GetIdentityPolicies 작업을 사용하여 정책을 검색하고 텍스트 편집기를 사용하여 정책을 편집한 다음 PutIdentityPolicy 작업을 사용하여 기존 정책을 덮어쓸 수 있습니다.

다음 절차에서는 Amazon SES 콘솔을 사용하여 정책을 편집하는 방법을 소개합니다.

Amazon SES 콘솔을 사용하여 정책을 편집하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Identity Management]에서 [Domains] 또는 [Email Addresses]를 선택합니다.3. 자격 증명 목록에서 편집할 정책과 연결된 자격 증명을 선택합니다.4. 세부 정보 창에서 [Identity Policies]를 확장합니다.5. 편집할 정책 옆에서 [Edit Policy]를 선택합니다.6. [Edit Policy] 창에서 정책을 편집하고 [Apply Policy]를 선택합니다.7. [Overwrite Existing Policy] 대화 상자에서 [Overwrite]를 선택합니다.

160

Page 169: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드위임 발신자 작업

정책 제거언제라도 권한을 취소하려면 정책을 제거하면 됩니다. DeleteIdentityPolicy API 작업을 사용하여 정책을 제거하거나 다음 절차의 설명에 따라 Amazon SES 콘솔을 사용할 수 있습니다.

Important

제거한 정책을 복구할 수는 없습니다. 정책을 제거하기 전에 정책을 복사하여 텍스트 파일에 붙여넣어 백업하는 것이 좋습니다.

Amazon SES 콘솔을 사용하여 정책을 제거하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Identity Management]에서 [Domains] 또는 [Email Addresses]를 선택합니다.3. 자격 증명 목록에서 제거할 정책과 연결된 자격 증명을 선택합니다.4. 세부 정보 창에서 [Identity Policies]를 확장합니다. 제거할 정책 옆에서 [Remove Policy]를 선택합니다.5. [Remove Policy] 대화 상자에서 [Yes, Remove Policy]를 선택합니다.

정책 나열 및 검색ListIdentityPolicies API 작업을 사용하여 자격 증명에 연결된 정책을 나열할 수 있습니다. GetIdentityPoliciesAPI 작업을 사용하여 정책 자체를 검색할 수도 있습니다.

또한 다음 절차에서 설명한 대로 Amazon SES 콘솔을 사용하여 이러한 작업을 모두 수행할 수 있습니다.

Amazon SES 콘솔을 사용하여 자격 증명에 연결된 정책을 나열 및 표시하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Identity Management]에서 [Domains] 또는 [Email Addresses]를 선택합니다.3. 자격 증명 목록에서 정책을 볼 자격 증명을 선택합니다.4. 세부 정보 창에서 [Identity Policies]를 확장합니다.5. 보려는 정책 옆에서 [Show Policy]를 선택합니다.

Amazon SES 전송 권한 부여를 위한 위임 발신자 작업위임 발신자로서 이메일을 전송할 경우 교차 계정 이메일을 전송하는 것입니다. 이는 위임 발신자가 소유하지는 않지만 사용 권한을 부여받은 자격 증명을 대신하여 이메일을 전송한다는 의미입니다. 자격 증명 소유자를 대신하여 이메일을 전송하더라도 반송 메일 및 수신 거부는 AWS 계정의 반송 메일 및 수신 거부 지표에 반영되고 전송하는 메시지의 수는 발신 할당량에 합산됩니다. 또한 자격 증명 소유자의 이메일을 전송하는 데 필요하다면 발신 할당량 증가를 요청할 책임이 있습니다.

위임 발신자는 다음 작업을 완료해야 합니다.

• 자격 증명 소유자에게 정보 제공 (p. 161)• 위임 발신자 알람 사용 (p. 162)• 자격 증명 소유자를 대신하여 이메일 전송 (p. 164)

Amazon SES 전송 권한 부여에서 위임 발신자에게 정보 제공위임 발신자는 자격 증명 소유자에게 사용자의 AWS 계정 ID 또는 자격 증명 소유자를 대신해 이메일을 전송할 AWS Identity and Access Management(IAM) 사용자의 Amazon 리소스 이름(ARN)을 제공해야 합니다.다음 절차에 따라 이 정보를 확인할 수 있습니다.

161

Page 170: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드위임 발신자 작업

AWS 계정 ID를 찾으려면

1. https://console.aws.amazon.com에서 AWS Management 콘솔에 로그인합니다.2. 탐색 메뉴에서 이름을 선택한 다음 [My Account]를 선택합니다.3. [Account Settings]를 확장합니다. 이 단원에는 AWS 계정 ID가 표시됩니다.

IAM 사용자의 ARN을 찾으려면

1. AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

2. 탐색 창에서 사용자를 선택합니다.3. 사용자 목록에서 사용자 이름을 선택합니다. [Summary] 섹션에 ARN이 표시됩니다. ARN은

arn:aws:iam::123456789012:user/John과 같습니다.

Amazon SES 전송 권한 부여에서 위임 발신자 알림 사용위임 발신자는 반송 메일 및 불만 제기가 자격 증명 소유자가 아니라 사용자의 반송 메일 및 불만 제기 지표에 반영됩니다. 계정에 대한 반송 메일 또는 수신 거부 발생률이 너무 높으면 계정을 검토하거나 계정의 이메일 전송 기능을 일시 중지할 수 있습니다. 따라서 알림을 설정하고 이를 모니터링하는 프로세스를 수립해야합니다. 또한 반송했거나 수신 거부한 주소를 메일 그룹에서 제거하는 프로세스를 갖춰야 합니다.

위임 발신자는 반송 메일 및 수신 거부 이벤트가 발생하면 알림을 보내도록 Amazon SES를 설정할 수 있습니다. 또한 위임 발신자는 Amazon SNS 또는 Kinesis Data Firehose에 반송 메일 및 수신 거부 알림을 게시하도록 이벤트 게시 (p. 269)를 설정할 수도 있습니다.

Note

Amazon SNS를 사용하여 알림을 보내도록 Amazon SES를 설정한 경우 수신하는 알림에 대해 표준 Amazon SNS 요금이 청구됩니다. 자세한 내용은 Amazon SNS 요금 페이지를 참조하십시오.

주제• Amazon SES 교차 계정 자격 증명 알림 구성 설정 (p. 162)• Amazon SES 교차 계정 알림 구성 편집 (p. 163)• Amazon SES 교차 계정 자격 증명 알림 보기 (p. 163)• Amazon SES 교차 계정 자격 증명 알림 구성 제거 (p. 164)

Amazon SES 교차 계정 자격 증명 알림 구성 설정

알림을 설정하기 전에, 자격 증명 소유자로부터 사용 권한을 부여받아 알림을 구성하려는 자격 증명의 Amazon 리소스 이름(ARN)을 알아야 합니다. 예를 들면 자격 증명 [email protected]의 ARN은arn:aws:ses:us-east-1:123456789012:identity/[email protected]과 같습니다. 자격 증명 소유자가 자격 증명의 ARN을 제공하지 않은 경우, 위임 발신자에게 자격 증명 정보 제공 (p. 160) 내 절차에 대해 알려주십시오.

알림을 구성하는 가장 쉬운 방법은 Amazon SES 콘솔을 사용하는 것입니다. SetIdentityNotificationTopicAPI 작업을 사용하여 자격 증명의 ARN을 Identity 파라미터로 전달할 수도 있습니다.

다음 절차에서는 Amazon SES 콘솔을 사용하여 알림을 설정하는 방법을 소개합니다.

Amazon SES 콘솔을 사용하여 Amazon SNS 반송 메일, 수신 거부 또는 전송 알림을 설정하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

162

Page 171: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드위임 발신자 작업

2. 탐색 창에서 Cross-Account Notifications(교차 계정 알림)를 선택합니다.3. [Add Notification Config]를 선택합니다.4. Add Notification Configuration(알림 구성 추가) 대화 상자의 자격 증명 ARN에 알림을 구성할 자격 증명

의 ARN을 입력합니다. 자격 증명은 현재 로그인된 계정에는 속할 수 없습니다.5. 반송 메일, 수신 거부 또는 전송에 사용할 Amazon SNS 주제를 선택합니다. 또한 이러한 알림에 대한

Amazon SNS 주제를 새로 생성할 수도 있습니다.

Important

Amazon SES 알림에 사용하는 Amazon SNS 주제는 Amazon SES를 사용한 이메일 전송에 사용하는 AWS 리전과 동일한 리전에 있어야 합니다.

동일한 Amazon SNS 주제 또는 다른 Amazon SNS 주제에 반송 메일, 수신 거부 및 전송 알림을 게시할수 있습니다. 사용자가 소유하지 않은 Amazon SNS 주제를 사용하려면 주제의 소유자가 사용자의 계정이 해당 주제에 대한 SNS:Publish 작업을 호출하도록 허용하는 Amazon SNS 액세스 정책을 구성해야 합니다. IAM 정책 사용을 통해 Amazon SNS 주제에 대한 액세스를 제어하는 방법에 대한 자세한 내용은 Amazon SNS 주제에 대한 액세스 관리를 참조하십시오.

6. [Save Config]를 클릭하여 알림 구성을 저장합니다. 이러한 변경 사항이 적용될 때까지 약간 지연될 수있습니다.

Amazon SES 교차 계정 알림 구성 편집

알림 구성을 편집하는 가장 쉬운 방법은 Amazon SES 콘솔을 사용하는 것입니다. 그 대신 Amazon SES API를 사용하려는 경우 SetIdentityNotificationTopic API 작업을 사용하고 자격 증명의 ARN을 Identity 파라미터로 전달할 수 있습니다.

다음 절차에서는 Amazon SES 콘솔을 사용하여 교차 계정 알림 구성을 편집하는 방법을 소개합니다.

Amazon SES 콘솔을 사용하여 교차 계정 알림 구성을 편집하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 왼쪽 탐색 창에서 [Cross-Account Notifications]를 선택합니다.

알림을 설정한 교차 계정 자격 증명이 [Cross-Account Notifications] 세부 정보 창에 나열됩니다.3. 알림 구성을 보려는 자격 증명의 ARN을 선택합니다.4. 알림 설정을 편집하고 [Save Config]를 선택합니다.

Amazon SES 교차 계정 자격 증명 알림 보기

알림 구성을 보는 가장 쉬운 방법은 Amazon SES 콘솔을 사용하는 것입니다.GetIdentityNotificationAttributes API 작업을 사용하여 자격 증명의 ARN을 Identity 파라미터로 전달할 수도 있습니다.

Note

교차 계정 자격 증명 목록에는 알림 구성 설정 (p. 162)에 설명된 절차를 사용하여 알림을 구성한교차 계정 자격 증명만 표시됩니다.

Amazon SES 콘솔을 사용하여 교차 계정 알림 구성을 보려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 왼쪽 탐색 창에서 [Cross-Account Notifications]를 선택합니다.

163

Page 172: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드위임 발신자 작업

알림을 설정한 교차 계정 자격 증명이 [Cross-Account Notifications] 세부 정보 창에 나열됩니다.3. 자격 증명의 ARN을 선택합니다.

[Edit Configuration Notification] 대화 상자에 자격 증명의 설정이 표시됩니다.

Amazon SES 교차 계정 자격 증명 알림 구성 제거

알림 구성을 제거하는 가장 쉬운 방법은 Amazon SES 콘솔을 사용하는 것입니다.SetIdentityNotificationTopic API 작업을 사용하여 자격 증명의 ARN을 Identity 파라미터로 전달하고SnsTopic 파라미터에 대해 null을 전달할 수도 있습니다. 알림 구성을 완전히 제거하려면 설정된 각 알림 유형(반송 메일, 불만 제기 또는 전송)에 대해 이 작업을 수행해야 합니다.

Note

알림 구성을 제거하면 교차 계정 자격 증명의 ARN이 Amazon SES 콘솔의 교차 계정 자격 증명ARN 목록에서 제거됩니다. 이는 해당 자격 증명을 대신하여 이메일을 전송할 수 없다는 의미는 아닙니다. 단지 더 이상 이 자격 증명에 대해 반송 메일, 불만 제기 또는 전송 알림 수신이 설정되지 않은 것을 의미합니다. 알림을 다시 활성화하려면 알림 구성 설정 (p. 162)에 설명된 알림 설정 절차를 반복해야 합니다.

다음 절차에서는 Amazon SES 콘솔을 사용하여 교차 계정 알림 구성을 제거하는 방법을 소개합니다.

Amazon SES 콘솔을 사용하여 교차 계정 알림 구성을 제거하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 왼쪽 탐색 창에서 [Cross-Account Notifications]를 선택합니다.

알림을 설정한 교차 계정 자격 증명이 [Cross-Account Notifications] 세부 정보 창에 나열됩니다.3. 제거하려는 교차 계정의 왼쪽에 있는 확인란을 선택하고 [Remove]를 선택합니다.4. [Remove Cross-Account Notification Config] 대화 상자에서 [Delete Notification config]를 선택합니다.

교차 계정 자격 증명의 ARN이 더 이상 교차 계정 자격 증명 x 목록에 표시되지 않습니다. 이는 해당 자격증명을 대신하여 이메일을 전송할 수 없다는 의미가 아니라 단지 더 이상 알림이 구성되지 않았다는 의미입니다.

Amazon SES 전송 권한 부여에서 위임 발신자를 대신하여 이메일전송위임 발신자가 이메일을 전송하는 방식은 자격 증명 소유자로부터 사용 권한을 부여받은 자격 증명의 ARN을 제공한다는 점을 제외하면 다른 Amazon SES 발신자와 동일합니다. 위임 발신자가 이메일 전송을 위해Amazon SES를 호출할 때 Amazon SES는 위임 발신자가 지정한 자격 증명이 해당 위임 발신자에게 자신을대신하여 이메일을 전송하도록 권한을 부여하는 정책을 포함하는지 확인합니다.

이메일을 전송할 때 자격 증명의 ARN을 지정하는 방법은 여러 가지가 있습니다. 사용할 수 있는 방법은 이메일을 Amazon SES API 작업 또는 Amazon SES SMTP 인터페이스를 사용하여 전송하는지 여부에 따라 결정됩니다.

Important

이메일을 성공적으로 보내려면 자격 증명 소유자가 자격 증명을 확인한 AWS 리전에 있는 AmazonSES 엔드포인트에 연결해야 합니다.뿐만 아니라 자격 증명 소유자와 위임 발신자 모두의 AWS 계정을 샌드박스에서 제거해야 두 계정이 확인되지 않은 주소로 이메일을 보낼 수 있습니다. 자세한 내용은 Amazon SES 샌드박스 환경에서 나가기 (p. 69)를 참조하십시오.

164

Page 173: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드위임 발신자 작업

Amazon SES API 사용

모든 Amazon SES 이메일 발신자와 마찬가지로 Amazon SES API를 통해 Amazon SES에 액세스하는 경우(HTTPS를 통해 직접 또는 AWS SDK를 통해 간접적으로) 두 가지의 이메일 전송 작업, 즉 SendEmail 및SendRawEmail 중 하나를 선택할 수 있습니다. Amazon Simple Email Service API Reference에서는 이러한API를 상세히 설명하고 있지만, 여기서는 전송 권한 부여 파라미터의 개요만 설명합니다.

SendRawEmail

이메일의 형식을 제어할 수 있도록 SendRawEmail을 사용하려는 경우 다음 두 방법 중 하나로 교차 계정 자격 증명을 지정할 수 있습니다.

• 옵션 파라미터를 SendRawEmail API로 전달합니다. 필수 파라미터는 다음 표에 설명되어 있습니다.

파라미터 설명

SourceArn 위임 발신자에게 SendRawEmail의 Source 파라미터에지정된 이메일 주소를 대신하여 이메일을 전송하도록 허용하는 전송 권한 부여 정책과 연결된 자격 증명의 ARN.

Note

SourceArn만 지정하면 Amazon SES가 "보낸 사람" 주소와 "반환 경로" 주소를 SourceArn에 지정된 자격 증명으로 설정합니다.

FromArn 위임 발신자에게 원시 이메일의 헤더에 특정 "From" 주소를 지정하도록 허용하는 전송 권한 부여 정책과 연결된 자격 증명의 ARN.

ReturnPathArn 위임 발신자에게 SendRawEmail의 ReturnPath 파라미터에 지정된 이메일 주소를 사용하도록 허용하는 전송 권한 부여 정책과 연결된 자격 증명의 ARN.

• 이메일에 X-헤더를 포함합니다. X-헤더는 표준 이메일 헤더(예: From, Reply-To 또는 Subject 헤더) 이외에사용할 수 있는 사용자 지정 헤더입니다. Amazon SES에서는 전송 권한 부여 파라미터를 지정하는 데 사용할 수 있는 3개의 X-헤더를 인식합니다.

Important

DKIM 서명에는 이러한 X-헤더를 포함하지 마십시오. Amazon SES가 이메일을 전송하기 전에 이들 헤더를 제거합니다.

X-헤더 설명

X-SES-SOURCE-ARN SourceArn에 해당합니다.

X-SES-FROM-ARN FromArn에 해당합니다.

X-SES-RETURN-PATH-ARN ReturnPathArn에 해당합니다.

Amazon SES는 이메일을 전송하기 전에 해당 이메일에서 모든 X-헤더를 제거합니다. X-헤더의 여러 인스턴스를 포함하는 경우 Amazon SES는 첫 번째 인스턴스만 사용합니다.

다음 예제는 전송 권한 부여 X-헤더를 포함하는 이메일입니다.

X-SES-SOURCE-ARN: arn:aws:ses:us-west-2:123456789012:identity/example.comX-SES-FROM-ARN: arn:aws:ses:us-west-2:123456789012:identity/example.com

165

Page 174: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드위임 발신자 작업

X-SES-RETURN-PATH-ARN: arn:aws:ses:us-west-2:123456789012:identity/example.com

From: [email protected]: [email protected]: [email protected]: subjectContent-Type: multipart/alternative; boundary="----=_boundary"

------=_boundaryContent-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 7bit

body------=_boundaryContent-Type: text/html; charset=UTF-8Content-Transfer-Encoding: 7bit

body------=_boundary--

SendEmail

SendEmail 작업을 사용하는 경우 아래의 선택적 파라미터를 전달하여 교차 계정 자격 증명을 지정할 수 있습니다. SendEmail작업을 사용하면 X-헤더 방법을 사용할 수 없습니다.

파라미터 설명

SourceArn 위임 발신자에게 SendRawEmail의 Source 파라미터에 지정된 이메일 주소를 대신하여 이메일을 전송하도록 허용하는 전송 권한 부여 정책과 연결된 자격 증명의 ARN.

ReturnPathArn 위임 발신자에게 SendRawEmail의 ReturnPath 파라미터에 지정된 이메일 주소를 사용하도록 허용하는 전송 권한부여 정책과 연결된 자격 증명의 ARN.

다음 예제는 SendEmail 작업과 SDK for Python을 사용하여 SourceArn 및 ReturnPathArn 속성이 포함된 이메일을 전송하는 방법을 보여줍니다.

import boto3from botocore.exceptions import ClientError

개 Create a new SES resource and specify a region.client = boto3.client('ses',region_name="us-west-2")

개 Try to send the email.try: 개Provide the contents of the email. response = client.send_email( Destination={ 'ToAddresses': [ '[email protected]', ], }, Message={ 'Body': { 'Html': { 'Charset': 'UTF-8', 'Data': 'This email was sent with Amazon SES.', },

166

Page 175: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using dedicated IP addresses

}, 'Subject': { 'Charset': 'UTF-8', 'Data': 'Amazon SES Test', }, }, SourceArn='arn:aws:ses:us-west-2:123456789012:identity/example.com', ReturnPathArn='arn:aws:ses:us-west-2:123456789012:identity/example.com', Source='[email protected]', ReturnPath='[email protected]' )개 Display an error if something goes wrong. except ClientError as e: print(e.response['Error']['Message'])else: print("Email sent! Message ID:"), print(response['ResponseMetadata']['RequestId'])

Amazon SES SMTP 인터페이스 사용

교차 계정 전송을 위해 Amazon SES SMTP 인터페이스를 사용하는 경우 메시지에 X-SES-SOURCE-ARN,X-SES-FROM-ARN 및 X-SES-RETURN-PATH-ARN 헤더를 포함해야 합니다. SMTP 대화에서 DATA 명령을발급한 후에 이 헤더를 전달하십시오.

Using dedicated IP addresses with Amazon SES새로운 Amazon SES 계정을 생성하면 다른 Amazon SES 사용자와 공유하고 있는 IP 주소에서 이메일이 전송됩니다. 추가 월별 요금을 선택하면 사용자 전용으로 위해 예약된 전용 IP 주소를 임차할 수 있습니다. 두가지 옵션의 장점과 단점은 다음 표에 요약되어 있습니다. [Benefit] 열의 항목을 클릭하면 장점에 대한 추가정보가 나타납니다.

혜택 공유 IP 주소 전용 IP 주소

추가 설정 없이 사용 가능 (p. 168)

예 아니요

평판 관리 AWS (p. 168) 예 아니요

연속적이고 예측 가능한 전송 패턴을 보이는 고객에게 유용 (p. 168)

예 예

예측이 비교적 어려운 전송패턴을 보이는 고객에게 유용 (p. 168)

예 아니요

대량 발신자에게 유용 (p. 168) 예 예

소량 발신자에게 유용 (p. 168) 예 아니요

추가 월별 비용 (p. 169) 아니요 예

발신자 평판에 대한 완벽한 제어 (p. 169)

아니요 예

이메일 유형, 수신자 또는 기타 요인에 따른 평판 격리 (p. 169)

아니요 예

167

Page 176: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Ease of Setup

혜택 공유 IP 주소 전용 IP 주소

이미 알려져 있어 변경할 수 없는IP 주소 제공 (p. 169)

아니요 예

Important

예측 기반에 따라 정기적으로 대량의 이메일을 보내려는 경우가 아니면 공유 IP 주소를 사용하는 것이 좋습니다. 소량의 메일을 보내는 상황에서 전용 IP 주소를 사용하는 경우 또는 메일 전송 패턴이매우 비정기적인 경우에는 배달 문제가 발생할 수 있습니다.

Ease of Setup공유 IP 주소를 사용하기로 선택한 경우, 추가로 구성할 필요가 없습니다. 이메일 주소를 확인하고 샌드박스에서 나가자마자 Amazon SES 계정에서 이메일을 보낼 준비가 됩니다.

전용 IP 주소를 리스하도록 선택하면 요청을 제출 (p. 169)해야 하며 필요하면 전용 IP 풀을 구성 (p. 173)하십시오.

Reputation Managed by AWSIP 주소 평판은 주로 이전 전송 패턴과 볼륨에 따라 결정됩니다. 장기간 일정한 볼륨의 이메일을 전송하는 IP주소는 보통 평판이 좋습니다.

공유 IP 주소는 여러 Amazon SES 고객에 의해 사용됩니다. 또한 이러한 고객은 대량의 이메일을 보냅니다.AWS는 이러한 아웃바운드 트래픽을 주의하여 관리하여 공유 IP 주소의 평판을 극대화합니다.

전용 IP 주소를 사용하는 경우에는 예측할 수 있는 볼륨의 이메일을 일정하게 전송하여 발신자 평판을 유지하는 책임이 사용자에게 있습니다.

Predictability of Sending Patterns이메일 전송 기록이 일정한 IP 주소는 이전 전송 기록도 없이 갑자기 대량의 이메일을 전송하는 IP 주소보다평판이 좋습니다.

이메일 전송 패턴이 불규칙하여 예측할 수 없는 경우에는 공유 IP 주소가 사용 요건에 더욱 적합할 수 있습니다. 공유 IP 주소를 사용할 때는 상황에 따라 이메일 전송 패턴이 증가하거나 감소할 수 있기 때문입니다.

전용 IP 주소를 사용하는 경우에는 매일 점차 늘려가면서 이메일을 전송하여 주소를 워밍업할 필요가 있습니다. 새로운 IP 주소의 워밍업 프로세스는 전용 IP 주소 워밍업 (p. 172) 단원에 설명되어 있습니다. 전용 IP주소에 대한 워밍업이 끝나면 일정한 전송 패턴을 유지하는 것이 중요합니다.

Volume of Outbound Email전용 IP 주소는 대량의 이메일을 전송하는 고객에게 가장 적합합니다. 대부분 인터넷 서비스 제공업체(ISP)는 전용 IP 주소에서 대량의 이메일을 수신하는 경우 임의의 IP 주소에 대한 평판만 추적합니다. 평판을 높이고 싶은 ISP가 있다면 각각 월 1회 이상 24시간 이내에 수백 개 이메일을 전송해야 합니다.

전송하는 이메일이 대량은 아니지만 전용 IP 주소를 사용할 수 있는 경우도 있습니다. 예를 들어 메일 서버가IP 주소 평판이 아닌 특정 IP 주소 목록을 기준으로 이메일을 허용하거나 거부하여 쉽게 알 수 있는 소규모 수신자 그룹에게 전송하는 경우에는 전용 IP 주소가 효과적일 수 있습니다.

168

Page 177: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Additional Costs

Additional Costs공유 IP 주소의 사용은 표준 Amazon SES 요금에 포함됩니다. 전용 IP 주소를 임차하면 Amazon SES를 사용하여 이메일을 발송하는 표준 요금 외에 추가로 월 요금이 발생합니다. 전용 IP 주소는 각각 별도의 월간요금이 청구됩니다. 요금에 대한 자세한 내용은 Amazon SES 요금 페이지를 참조하십시오.

Control over Sender Reputation전용 IP 주소를 사용할 때는 Amazon SES 계정이 이 주소에서 이메일을 전송할 수 있는 유일한 계정입니다.이러한 이유 때문에 임대한 전용 IP 주소에 대한 발신자 평판은 이메일 전송 사례를 통해서만 결정됩니다.

Ability to Isolate Sender Reputation전용 IP 주소를 사용하면 이메일 프로그램의 구성 요소에 따라 발신자 평판을 분리할 수 있습니다. 2개 이상의 전용 IP 주소를 임대하는 경우 Amazon SES을(를) 만들 수 있습니다. dedicated IP pools- 특정 유형의 이메일 전송을 위해 사용할 수 있는 전용 IP 주소 그룹입니다. 예를 들어 마케팅 이메일을 보내는 용도로 전용IP 주소 풀을 하나 만들고, 거래 이메일을 보내기 위한 용도로 다른 풀을 만을 수 있습니다. 자세히 알아보려면 전용 IP 풀 만들기 (p. 173) 단원을 참조하십시오.

Known, Unchanging IP Addresses전용 IP 주소를 사용할 때는 메일을 전송하는 주소 값을 Amazon SES 콘솔의 Dedicated IPs(전용 IP) 페이지에서 찾아볼 수 있습니다. 전용 IP 주소는 변경할 수 없습니다.

공유 IP 주소일 때는 Amazon SES가 메일 전송에 사용하는 IP 주소를 모를 뿐만 아니라 언제든지 바뀔 수 있습니다.

Requesting and Relinquishing Dedicated IP Addresses이 단원에서는 AWS Support Center에서 요청을 제출하여 전용 IP 주소를 요청 및 해제하는 방법에 대해 설명합니다. Amazon SES용으로 임대한 각 전용 IP 주소에 대한 추가 월 사용료를 귀하의 계정에 청구합니다.전용 IP 주소에 연결된 비용에 대한 자세한 내용은 Amazon SES 요금을 참조하십시오.

Best Practices for Working with Dedicated IP Addresses최소 약정은 없지만, Amazon SES를 사용하는 각 AWS 리전에서 전용 IP 주소를 한 개 이상 임대하는 것이좋습니다. 각 AWS 지역은 여러 물리적 위치로 구성됩니다. Availability Zones. 2개 이상의 전용 IP 주소를 임대할 때, 당사는 해당 주소를 AWS 요청에서 지정한 지역입니다. 이렇게 가용 영역에 전용 IP 주소를 분산하면 전용 IP 주소의 가용성과 중복성이 향상됩니다.

모든 지역 목록을 보려면 Amazon SES 현재 사용 가능한 AWS 지역 및 끝점 in the Amazon Web Services일반 참조. 각 지역에서 사용할 수 있는 가용성 영역의 수에 대해 자세히 알아보려면 다음을 참조하십시오.AWS 글로벌 인프라.

Requesting Dedicated IP Addresses다음 단계에서는 AWS 지원 센터에서 서비스 할당량 증가 사례를 생성하여 전용 IP 주소를 요청하는 방법을보여줍니다. 이 프로세스를 사용하여 필요한 만큼의 전용 IP 주소를 요청할 수 있습니다.

전용 IP 주소를 요청하려면

1. https://console.aws.amazon.com/에서 AWS Management 콘솔에 로그인합니다.2. 지원 메뉴에서 다음 이미지와 같이 지원 센터를 선택합니다.

169

Page 178: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Requesting and Relinquishing Dedicated IPs

3. Create case(사례 생성)를 선택합니다.4. Create case(사례 생성)에서 Service limit increase(서비스 제한 증가)를 선택합니다.5. Case classification(사례 분류)에서 다음 섹션을 작성합니다.

• For Limit type, choose SES Sending Limits.• For Mail Type, choose the type of email that you plan to send using your dedicated IP address. If

multiple values apply, choose the option that applies to the majority of the email that you plan tosend.

• For Website URL, enter the URL of your website. Providing this information helps us betterunderstand the type of content that you plan to send.

• For My email sending complies with the AWS Service Terms and AUP, choose the option thatapplies to your use case.

• For I only send to recipients who have specifically requested my mail, choose the option that appliesto your use case.

• For I have a process to handle bounces and complaints, choose the option that applies to your usecase.

6. 요청에서 다음 섹션을 작성합니다.

• For Region, choose the AWS Region that your request applies to.• For Limit, choose Desired Maximum Send Rate.• For New limit value, enter the maximum number of messages that you need to be able to send per

second. We use the value that you provide to calculate the number of dedicated IP addresses thatyou need to implement your use case. For this reason, the estimate that you provide should be asaccurate as possible.

Note

단일한 전용 IP 주소는 이 단계에서 선택한 AWS 리전에서만 사용할 수 있습니다. 다른 AWS 리전에서 사용할 전용 IP 주소를 요청하려면 Add another request(다른 요청 추가)를 선택한 다

170

Page 179: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Requesting and Relinquishing Dedicated IPs

음, 추가 리전의 리전, 한도 및 New limit value(새 한도 값) 필드를 각각 작성하십시오. 전용 IP주소를 사용하려는 각 리전에서 이 프로세스를 반복하십시오.

7. Case description(사례 설명)의 Use case description(사용 사례 설명)에서 전용 IP 주소를 요청하려고 함을 밝힙니다. 특정한 수의 전용 IP 주소를 요청하려면 해당 주소도 언급하십시오. 여러 개의 전용 IP 주소를 지정하지 않을 경우, 이전 단계에서 지정한 송신률 요구 사항을 충족하는 데 필요한 전용 IP 주소의수가 제공됩니다.

그런 다음, Amazon SES에서 전용 IP 주소를 사용하여 이메일을 전송할 방법을 설명합니다. 공유 IP 주소를 대신해 전용 IP 주소를 사용하려는 이유를 명시합니다. 이러한 정보는 사용 사례를 더 잘 이해하는데 도움이 됩니다.

8. Contact options(연락처 옵션)의 Preferred contact language(기본 연락처 언어)에서 이 사례에 대한 통신을 영어 또는 일본어로 수신할지 여부를 선택합니다.

9. 마쳤으면 제출을 선택합니다.

양식을 제출하면 요청을 평가합니다. 귀하의 요청이 승인되면 귀하의 사례에 대해 지원 센터에서 새로운 전용 IP 주소가 귀하의 계정과 연결되어 있음을 확인하는 응답 메시지가 전달됩니다.

Relinquish Dedicated IP Addresses계정과 연결된 전용 IP 주소가 더 이상 필요하지 않은 경우, 다음 단계를 완료하여 해제할 수 있습니다.

Important

전용 IP 주소를 해제하는 프로세스는 되돌릴 수 없습니다. 매월 중순 즈음에 전용 IP 주소를 해제할경우, 월별 전용 IP 사용 요금은 당월에 경과한 일수를 기준으로 일할 계산됩니다.

전용 IP 주소를 해제하려면

1. https://console.aws.amazon.com/에서 AWS Management 콘솔에 로그인합니다.2. 지원 메뉴에서 지원 센터를 선택합니다.3. My support cases(내 지원 사례) 탭에서 Create case(사례 생성)를 선택합니다.4. Create case(사례 생성)에서 Service limit increase(서비스 제한 증가)를 선택합니다.5. Case classification(사례 분류)에서 다음 섹션을 작성합니다.

• For Limit type, choose SES Sending Limits.• For Mail Type, choose any value.• For My email sending complies with the AWS Service Terms and AUP, choose the option that

applies to your use case.• For I only send to recipients who have specifically requested my mail, choose the option that applies

to your use case.• For I have a process to handle bounces and complaints, choose the option that applies to your use

case.6. 요청에서 다음 섹션을 작성합니다.

• For Region, choose the AWS Region that your request applies to.

Note

Dedicated IP addresses are unique to each AWS Region, so it's important to select theRegion that the dedicated IP address is associated with.

• For Limit, choose Desired Maximum Send Rate.• For New limit value, enter any number. The number that you enter here isn't important—you specify

the number of dedicated IPs that you want to relinquish in the next step.

171

Page 180: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드전용 IP 워밍업

Note

단일한 전용 IP 주소는 단일한 AWS 리전에서만 사용할 수 있습니다. 그 외 AWS 리전에 사용된전용 IP 주소를 해제하려면 Add another request(다른 요청 추가)를 선택하십시오. 그런 다음,추가 리전에 대한 리전, 한도 및 New limit value(새 한도 값) 필드를 각각 작성하십시오. 해제하려는 전용 IP 주소마다 이 프로세스를 반복하십시오.

7. Case Description(사례 설명)의 Use case description(사용 사례 설명)에서 기존의 전용 IP 주소를 해제하려고 함을 밝힙니다. 현재 하나 이상의 전용 IP 주소를 임대하는 경우, 해제하려는 전용 IP 주소의 수를포함하십시오.

8. Contact options(연락처 옵션)의 Preferred contact language(기본 연락처 언어)에서 이 사례에 대한 통신을 영어 또는 일본어로 수신할지 여부를 선택합니다.

9. 마쳤으면 제출을 선택합니다.

귀하의 요청을 수신하면 전용 IP 주소를 해제할 것인지 여부를 확인하는 메시지를 보내드립니다. 귀하가 IP주소를 해제할 것을 확인하면 귀하의 계정에서 IP 주소가 삭제됩니다.

전용 IP 주소 워밍업이메일 서비스 공급자가 이메일 허용 또는 거부 여부를 결정할 때는 전송 IP 주소의 신뢰도를 고려합니다. IP주소의 신뢰도를 결정하는 요인 중 하나는 주소에서 양질의 이메일을 상당수 전송한 이력이 있는지 여부입니다. 이메일 공급자는 이력이 적거나 없는 새로운 IP 주소로부터 오는 이메일을 수락할 가능성이 낮습니다. 이력이 적거나 없는 IP 주소로부터 전송된 이메일은 수신자의 정크 메일 폴더에 들어가거나 모두 차단될 수 있습니다.

새 IP 주소에서 이메일을 전송하기 시작할 때 이를 전면적으로 사용하기 전에 해당 주소로부터의 이메일 전송량을 점진적으로 늘려야 합니다. 이러한 프로세스를 IP 주소 워밍업이라고 합니다.

IP 주소의 워밍업에 필요한 시간은 이메일 공급자에 따라 다릅니다. 일부 이메일 공급자의 경우 긍정적인 신뢰도를 확립하는 데 2주가 소요될 수 있는 반면, 최대 6주가 걸리는 경우도 있습니다. 새로운 IP 주소를 워밍업할 때는 불만 제기 발생률을 낮게 유지할 수 있도록 활성 상태가 가장 높은 사용자에게 이메일을 전송해야 합니다. 또한 반송 메시지를 주의 깊게 살펴본 후 차단 또는 병목 알림 수가 높은 경우에는 전송하는 이메일 수를 줄여야 합니다. 반송 메일의 모니터링에 대한 자세한 내용은 Monitoring your Amazon SES sendingactivity (p. 242) 단원을 참조하십시오.

전용 IP 주소 자동 워밍업전용 IP 주소를 요청할 때는 Amazon SES에서 이를 자동으로 워밍업하여 전송 이메일의 전송을 개선합니다.IP 주소 자동 워밍업 기능은 기본적으로 활성화되어 있습니다.

자동 워밍업 프로세스 도중의 단계는 전용 IP 주소를 이미 보유 중인지 여부에 따라 다릅니다.

• 전용 IP 주소를 처음 요청할 때 Amazon SES는 전용 IP 주소와 기타 Amazon SES 고객과 공유하는 주소세트 사이에서 이메일 전송을 분산합니다. Amazon SES는 시간에 따라 전용 IP 주소에서 전송하는 메시지의 양을 점진적으로 늘립니다.

• 전용 IP 주소가 이미 있는 경우 Amazon SES는 기존 전용 IP(이미 워밍업되어 있음)와 새로운 전용 IP(워밍업되지 않음) 사이에서 이메일 전송을 분산합니다. Amazon SES는 시간에 따라 새로운 전용 IP 주소에서 전송하는 메시지의 양을 점진적으로 늘립니다.

전용 IP 주소를 워밍업한 후 긍정적인 신뢰도를 유지하고자 하는 각 이메일 공급자로 매일 약 1,000개의 이메일을 전송해야 합니다. Amazon SES와 함께 사용할 각 전용 IP 주소에서 이 작업을 수행해야 합니다.

워밍업 프로세스가 완료된 직후 대규모의 이메일을 보내는 것은 피해야 합니다. 대신, 대상 볼륨에 이를 때까지 이메일의 수를 천천히 늘려야 합니다. 이메일 공급자가 한 IP 주소에서 전송된 이메일의 수가 크게 급증할경우 해당 주소로부터의 메시지를 차단 또는 병목시킬 수 있습니다.

172

Page 181: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드전용 IP 풀 만들기

자동 워밍업 프로세스 비활성화새 전용 IP 주소를 구매할 때 Amazon SES에서 자동 워밍업을 수행합니다. 직접 전용 IP 주소를 워밍업하고자 하는 경우 자동 워밍업 기능을 비활성화할 수 있습니다.

Important

자동 워밍업 기능을 비활성화한 경우 전용 IP 주소를 직접 워밍업해야 합니다. 워밍업되지 않은 주소로부터 이메일을 전송하는 경우 전송 속도가 느릴 수 있습니다.

자동 워밍업 기능을 비활성화하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 왼쪽의 탐색 모음에서 [Dedicated IPs]를 선택합니다.3. [Automatic IP warm-up] 옆의 상자를 선택 해제합니다.

자동 워밍업 프로세스 다시 시작전용 IP 풀에 속한 IP 주소 집합에 대한 자동 IP 워밍업 프로세스를 다시 시작할 수 있습니다.

자동 워밍업 프로세스를 다시 시작하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 왼쪽의 탐색 모음에서 [Dedicated IPs]를 선택합니다.3. 워밍업 프로세스를 다시 시작하려는 전용 IP 풀에서 [Actions]를 선택한 다음 [Restart IP warm up]을 선

택합니다.

자동 워밍업 프로세스의 상태는 Warm Up Status(워밍업 상태) 열에 있습니다. 워밍업 프로세스가 완료되면 이 열에 Complete라고 표시됩니다.

전용 IP 풀 만들기Amazon SES에서 사용할 전용 IP 주소를 여러 개 구입한 경우 해당 주소의 그룹을 만들 수 있습니다. 이러한그룹을 전용 IP 풀이라고 합니다. 일반 시나리오는 마케팅 서신을 보내는 용도로 전용 IP 주소 풀을 하나 만들고, 거래 이메일을 보내기 위한 용도로 다른 풀을 만드는 것입니다. 거래 이메일에 대한 발신자의 평판은 이제 마케팅 이메일에서 격리됩니다. 이 시나리오에서는 마케팅 캠페인에서 많은 수의 불만 제기가 발생했을때도 거래 이메일 전송은 영향을 받지 않습니다.

이 단원에는 전용 IP 풀 생성을 위한 절차가 포함되어 있습니다.

Note

또한 모든 Amazon SES 고객이 공유하는 IP 주소의 풀을 사용하여 구성 세트를 생성할 수도 있습니다. 공유 IP 풀은 일반적인 전송 동작과 일치하지 않는 이메일을 보내야 하는 상황에서 유용할 수 있습니다. 구성 세트가 있는 공유 IP 풀을 사용하는 방법에 대한 내용은 IP 풀 관리 (p. 239) 단원을참조하십시오.

Amazon SES 콘솔을 사용하여 전용 IP 풀을 생성하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 화면 왼쪽 탐색 창의 [Email Sending] 아래에서 [Dedicated IPs]를 선택합니다.

173

Page 182: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드고유 IP 주소 사용

3. [Create a New IP Pool]을 선택합니다.4. [IP Pool Name] 페이지에서 [Pool name]에 전용 IP 풀을 나타내는 이름을 입력한 후 [Next]를 선택합니

다.5. [Add Dedicated IPs] 페이지에서 풀에 추가하려는 각각의 IP 주소 옆의 확인란을 선택한 후 [Next]를 선

택합니다.

Note

아직 풀에 할당하지 않은 전용 IP 주소는 ses-default-dedicated-pool에 있습니다. 전송 풀을 지정하지 않은 구성 세트를 사용하여 이메일을 보내거나 구성 세트를 지정하지 않고 이메일을 전송하는 경우 Amazon SES가 ses-default-dedicated-pool에 있는 주소 중 하나에서 이메일을 보냅니다.전용 IP 주소는 풀 한 개에만 속할 수 있습니다. 다른 풀에 연결된 전용 IP 주소를 선택하면Amazon SES가 그 설정을 덮어쓰고, 만들려는 풀에 주소를 연결합니다.

6. [Assign to a configuration set] 페이지에서 다음 중 하나를 수행합니다.

• [Add this pool to an existing configuration set]를 선택하여 전용 IP 풀을 기존 구성 세트와 연결합니다.그런 다음 Existing configuration sets(기존 구성 세트)에서 IP 풀에 연결할 구성 세트를 선택합니다.

• [Create a new configuration set]를 선택하여 구성 세트를 만들고 전용 IP 풀을 이 구성 센트와 연결합니다. [Configuration set name]에 구성 세트를 나타내는 이름을 입력합니다.

마쳤으면 [Next]를 선택합니다.7. [Review] 페이지에서 전용 IP 풀의 설정을 확인합니다. IP 풀을 만들 준비가 되었으면 [Create]를 선택합

니다.

고유 IP 주소를 사용하여 Amazon SES를 통해 이메일보내기Amazon SES에는 고유 IP 주소를 사용하여 Amazon SES를 통해 이메일을 보낼 수 있는 BYOIP(Bring YourOwn IP) 기능이 포함되어 있습니다. 이미 특정 IP 주소 범위를 사용하여 이메일을 보내는 경우 AWS가Amazon SES를 통해 이메일을 보낼 때 해당 IP 범위를 사용하도록 요청할 수 있습니다.

BYOIP는 예를 들어 사내 이메일 발송 시스템을 사용하여 긍정적인 IP 평판을 구축했지만 Amazon SES로 마이그레이션하려는 경우에 유용합니다. BYOIP를 사용하면 IP 주소의 평판을 다시 구축할 필요 없이 AmazonSES를 통해 즉시 이메일 발송을 시작할 수 있습니다.

요구 사항BYOIP를 사용하려면 IP 주소 범위가 다음 요구 사항을 충족해야 합니다.

• 주소 범위를 ARIN(미국 인터넷 번호 등록 협회), RIPE NCC(Réseaux IP Européens Network CoordinationCentre) 또는 APNIC(아시아 태평양 지역 네트워크 정보 센터)와 같은 RIR(지역 인터넷 등록 기관)에 등록해야 합니다. 주소 범위는 기업 또는 기관에 등록해야 하며 개인에게 등록할 수 없습니다.

• 서명된 인증 메시지를 제출하여 주소 범위를 소유하고 있다는 증거를 제공할 수 있어야 합니다.• IP 주소 범위의 주소에는 명확한 기록이 있어야 합니다. 당사는 IP 주소 범위의 평판을 조사할 수 있으며,

좋지 않은 평판이 있거나 악의적인 동작과 연관된 IP 주소가 포함될 경우 IP 주소 범위를 거부할 권한을 보유합니다.

고려 사항Amazon SES로 IP 범위를 이전하도록 요청하기 전에 고려해야 할 몇 가지 요소가 있습니다.

174

Page 183: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Testing email sending

• 지정 가능한 가장 구체적인 주소 범위는 /24입니다. 즉, 203.0.113.0/24의 IP 범위를 사용자의 AmazonSES 계정으로 전송하면 203.0.113.0부터 203.0.113.255까지의 총 256개 주소에서 전송할 수 있습니다.전체 범위를 전송해야 합니다. Amazon SES에서는 현재 개별 IP 주소를 전송할 수 없습니다.

• 특정 IP 주소 범위에 BYOIP를 사용하는 경우 단일 AWS 리전에서만 해당 범위에 액세스할 수 있습니다.• 리전당 5개의 주소 범위를 AWS 계정으로 가져올 수 있습니다.• 고유 IP 주소를 사용하는 경우 공유 Amazon SES IP 주소 풀에 있는 주소를 사용할 수 없습니다. 이러한 공

유 IP 주소를 사용해야 하는 경우 다른 AWS 지역에서 Amazon SES를 사용하거나 새 AWS 계정을 만들 수있습니다.

• BYOIP에서 사용하는 각 IP 주소에 대해 월별 요금이 부과됩니다. 자세한 내용은 Amazon SES 요금을 참조하십시오.

Amazon SES에서 고유 IP 주소 사용당사는 시스템을 통해 원치 않는 콘텐츠 또는 악성 콘텐츠가 전송되지 않도록 하기 위해 각 BYOIP 요청을 신중하게 고려해야 합니다.

Amazon SES에서 자체 IP 범위를 사용하려면 [email protected]으로 다음 정보를 보내 주십시오.

• AWS 계정 ID.• IP 범위를 사용할 AWS 리전(예: ap-south-1).• 사용 사례에 대한 설명.• Amazon SES에서 사용할 IP 범위.• 해당 범위가 등록된 인터넷 등록 기관의 이름.

업무 시간 기준 48시간 이내에 답변해 드리겠습니다. 귀사와의 커뮤니케이션에서 IP 범위 소유권을 증명하는 문서를 포함하여 추가 정보를 요청할 수도 있습니다.

Testing email sending in Amazon SESAmazon SES에는 애플리케이션이 여러 이메일 전송 시나리오를 어떻게 처리하는지 테스트하는 데 사용할수 있는 메일박스 시뮬레이터가 포함되어 있습니다. 메일박스 시뮬레이터는 예를 들면 허구의 이메일 주소를만들지 않고 이메일 전송 애플리케이션을 테스트해야 하거나, 일일 발신 할당량에 영향을 주지 않고 시스템의 최대 처리량을 찾아야 할 때 유용합니다.

Important ConsiderationsAmazon SES 메일박스 시뮬레이터를 사용할 때는 다음과 같은 기능과 한계를 고려하십시오.

• You can use the mailbox simulator even if your account is in the Amazon SES sandbox.• Emails that you send to the mailbox simulator are limited by your account's maximum sending rate, but

they don't affect your daily sending quota. For example, if your account is authorized to send 10,000messages per 24-hour period, and you send 100 messages to the mailbox simulator, you can still sendup to 10,000 messages to regular recipients without reaching your sending quota.

• Emails that you send to the mailbox simulator don't impact your email deliverability or reputation metrics.For example, if you send a large number of messages to the bounce address of the email simulator, itdoesn't cause the reputation dashboard (p. 347) to display a message warning you that your bouncerate is too high.

• For billing purposes, emails that you send to the Amazon SES mailbox simulator are the same as anyother email you send using Amazon SES. In other words, we bill you the same amount for messages yousend to the mailbox simulator as for those you that send to regular recipients.

175

Page 184: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the Mailbox Simulator

• The mailbox simulator supports labeling, which enables you to send emails to the same mailboxsimulator address in multiple ways, or to see how your application handles Variable Envelope ReturnPath (VERP). For example, you can send an email to [email protected] [email protected] to see if your application can match a bounce message withthe email address that caused the bounce.

• If you use the mailbox simulator to simulate multiple bounces from the same sending request, AmazonSES combines the bounce responses into a single response.

Using the Mailbox Simulator이메일 시뮬레이터를 사용하려면 다음 표에 시뮬레이션하려는 시나리오를 찾은 후, 그에 해당하는 이메일 주소로 이메일을 보내십시오.

Note

메일박스 시뮬레이터 주소로 이메일을 보낼 경우 AWS CLI, AWS SDK, Amazon SES 콘솔,Amazon SES SMTP 인터페이스 또는 Amazon SES API를 사용하여 Amazon SES를 통해 보내야합니다. 메일박스 시뮬레이터는 외부 소스로부터 받은 이메일에는 응답하지 않습니다.

시뮬레이션된 시나리오 이메일 주소

성공적인 전송—수신자의 이메일 공급자가 이메일을 수락합니다. Monitoring Amazon SES emailsending using notifications (p. 247)에서 설명한 바와 같이 전송 알림을 설정한 경우 Amazon SES에서Amazon Simple Notification Service(Amazon SNS)를 통해 전송 알림을 보냅니다.

[email protected]

반송 메일—수신자의 이메일 공급자가 SMTP 5505.1.1("알 수 없는 사용자") 응답 코드와 함께 이메일을 거부합니다. Amazon SES에서 반송 메일 알림을 생성하고 계정 설정 방식에 따라 이메일로 사용자에게 보내거나 Amazon SNS 주제로 알림을 보냅니다. 메일박스 시뮬레이터 이메일 주소는 이메일 하드 바운스가 발생할 경우에 보통 그런 것처럼Amazon SES 금지 목록에 추가되지 않습니다. 메일박스 시뮬레이터에서 받는 반송 메일 응답은 RFC3464와 호환됩니다. 반송 메일 피드백을 받는 방법에 대한 자세한 내용은 Monitoring Amazon SESemail sending using notifications (p. 247) 단원을참조하십시오.

[email protected]

자동 응답—수신자의 이메일 공급자가 이메일을수락하고 수신자의 받은 편지함으로 전송합니다.이메일 공급자가 이메일의 반환 경로 헤더에 있는주소 또는 반환 경로 헤더가 없을 경우 envelopesender("MAIL FROM") 주소로 OOTO("out of theoffice") 메시지 같은 자동 응답을 보냅니다. 메일박스 시뮬레이터에서 받는 자동 응답은 RFC 3834와호환됩니다.

[email protected]

수신 거부—수신자의 이메일 공급자가 이메일을 수락하고 수신자의 받은 편지함으로 전송합니다. 수신자가 원치 않는 메시지라고 결정하고 자신의 이메일 클라이언트에서 "스팸으로 표시"를 클릭합니다. 그러면 Amazon SES에서 계정 설정 방식에 따

[email protected]

176

Page 185: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Testing Reject Events

시뮬레이션된 시나리오 이메일 주소라 이메일 또는 Amazon SNS 주제 알림을 통해 수신 거부 알림을 전달합니다. 메일박스 시뮬레이터에서 받는 불만 제기 응답은 RFC 5965와 호환됩니다. 불만 제기 피드백을 받는 방법에 대한 자세한 내용은 Monitoring Amazon SES email sending usingnotifications (p. 247) 단원을 참조하십시오.

금지 목록의 수신자 주소—수신자의 주소가Amazon SES 금지 목록에 있는 것처럼 AmazonSES에서 하드 바운스를 생성합니다.

[email protected]

Testing Reject EventsAmazon SES를 통해 전송되는 모든 메시지는 바이러스 검사됩니다. 바이러스가 포함된 메시지를 보내는 경우 Amazon SES는 메시지를 수락하고 바이러스를 감지한 다음 전체 메시지를 거부합니다. 메시지가 거부되면 Amazon SES는 메시지 처리를 중지하고 해당 메시지를 수신자의 메일 서버로 전송하지 않습니다. 그리고나서 거부 이벤트를 생성합니다.

Amazon SES 메일박스 시뮬레이터에는 거부 이벤트를 테스트하기 위한 주소가 포함되지 않습니다. 하지만EICAR 테스트 파일을 사용하여 거부 이벤트를 테스트할 수 있습니다. 이 파일은 안전한 방법으로 바이러스백신 소프트웨어를 테스트하는 업계 표준 방법입니다. EICAR 테스트 파일을 생성하려면 다음 텍스트를 파일에 붙여 넣습니다.

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

파일을 sample.txt로 저장하고 이메일에 첨부한 다음 확인된 주소로 이메일을 보냅니다. 이메일에 다른 문제가 없는 경우 Amazon SES는 메시지를 수락하지만 실제 바이러스가 포함된 경우와 마찬가지로 메시지를거부합니다.

Note

거부된 이메일(위의 절차를 사용하여 보내는 이메일 포함)은 일일 발신 할당량으로 계산됩니다. 거부된 메시지를 포함하여 보내는 각 메시지에 대해 요금이 청구됩니다.

EICAR 테스트 파일에 대해 자세히 알아보려면 Wikipedia의 EICAR 테스트 파일 페이지를 참조하십시오. 첨부 파일이 있는 메시지를 보내는 데 사용할 수 있는 코드 예제는 Sending raw email using AWSSDKs (p. 417) 단원을 참조하십시오.

계정 수준 금지 목록 사용Amazon SES에는 현재 AWS 리전의 AWS 계정에 적용되는 계정 수준 금지 목록이 포함되어 있습니다. 이금지 목록은 이전에 반송 또는 수신 거부 이벤트가 발생한 주소로 이메일을 보내지 못하도록 합니다. 계정 수준 금지 목록을 구성할 때 하드 바운스가 발생하거나 수신 거부가 발생하거나 또는 둘 모두 발생하는 경우 주소를 목록에 추가해야 하는지 여부를 지정합니다. 다음을 사용하여 계정 수준 억제 목록에서 개별 또는 벌크주소를 수동으로 추가 또는 제거할 수 있습니다. Amazon SES API v2.

Note

주소를 대량으로 추가하거나 제거하려면 운영 액세스 권한이 있어야 합니다. 샌드박스에 대한 자세한 내용은 Amazon SES 샌드박스 환경에서 나가기 (p. 69) 단원을 참조하십시오.

Amazon SES에는 전역 금지 목록도 포함되어 있습니다. 자세한 정보는 Using the Amazon SES globalsuppression list (p. 187) 단원을 참조하십시오.

177

Page 186: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드어카운트 수준 억제 목록 고려 사항

어카운트 수준 억제 목록 고려 사항계정 수준 금지 목록을 사용하는 경우 다음 요소를 고려해야 합니다.

• 2019년 11월 25일 이후에 Amazon SES를 사용하기 시작한 경우 계정은 반송 및 수신 거부 모두에 기본적으로 계정 수준 금지 목록을 사용합니다. 이 날짜 이전에 Amazon SES를 사용하기 시작한 경우 AmazonSES API의 PutAccountSuppressionAttributes 작업을 사용하여 이 기능을 활성화해야 합니다.

• 계정 수준 금지 목록에 있는 주소로 메시지를 보내려고 시도하면 Amazon SES에서 메시지를 수락하지만보내지는 않습니다.

• Amazon SES는 계정 수준 금지 목록에 있는 주소로 보내는 메시지를 계정의 반송률로 계산하지 않습니다.• Amazon SES는 계정 수준 금지 목록에 있는 주소로 보내는 메시지를 일일 전송 할당량으로 계산합니다.• 계정 수준 금지 목록에 있는 이메일 주소는 Amazon SES API v2의 DeleteSuppressedDestination 작업을

사용하여 제거할 때까지 목록에 남아 있습니다.• 계정의 이메일 전송 기능이 일시 중지되면 Amazon SES는 90일 후에 계정 수준 금지 목록에 있는 주소를

자동으로 삭제합니다. 이 90일 기간이 끝나기 전에 계정의 이메일 전송 기능이 복원되면 계정 수준 금지 목록에 있는 주소가 삭제되지 않습니다.

• Gmail은 Amazon SES에 수신 거부 데이터를 제공하지 않습니다. 수신자가 Gmail 웹 클라이언트의 Spam버튼을 사용하여 사용자로부터 스팸으로 수신한 메시지를 보고하는 경우 계정 수준 금지 목록에 추가되지않습니다.

• 계정이 Amazon SES 샌드박스에 있는 경우 계정 수준 금지 목록을 활성화할 수 있습니다. 그러나 억제된목적지 또는 가져오기 잡 작성 sandbox에서 계정이 제거될 때까지 작업을 수행할 수 있습니다. 샌드박스에 대한 자세한 내용은 Amazon SES 샌드박스 환경에서 나가기 (p. 69) 단원을 참조하십시오.

• 계정 수준 금지 목록을 사용하는 경우 Amazon SES는 하드 바운스가 발생하는 주소도 전역 금지 목록에추가합니다.

계정 수준 억제 목록 활성화Amazon SES API v2의 PutAccountSuppressionAttributes 작업을 사용하여 계정 수준 금지 목록을 활성화하고 설정할 수 있습니다. AWS CLI를 사용하여 이 설정을 쉽고 빠르게 구성할 수 있습니다. AWS CLI 설치 및구성에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서를 참조하십시오.

AWS CLI를 사용하여 계정 수준 금지 목록을 구성하려면

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

Linux, macOS, or Unix

aws sesv2 put-account-suppression-attributes \--suppressed-reasons BOUNCE COMPLAINT

Windows

aws sesv2 put-account-suppression-attributes `--suppressed-reasons BOUNCE COMPLAINT

계정 수준 금지 목록을 활성화하려면 suppressed-reasons 파라미터에 대한 이유를 하나 이상 지정해야 합니다. 앞의 예와 같이 BOUNCE 또는 COMPLAINT 중 하나를 지정하거나 둘 모두 지정할 수 있습니다.

178

Page 187: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드구성 세트에 대한 계정 수준 억제 목록 활성화

구성 세트에 대한 계정 수준 억제 목록 활성화특정 구성 세트 (p. 235)에만 적용되도록 계정 수준 금지를 구성할 수도 있습니다. 이렇게 하면, 반송 또는수신 거부 이벤트가 발생한 이메일을 보냈을 때 구성 세트를 지정한 경우에만 주소가 금지 목록에 추가됩니다.

Note

다음 절차에서는 AWS CLI를 이미 설치했다고 가정합니다. AWS CLI 설치 및 구성에 대한 자세한내용은 AWS Command Line Interface 사용 설명서를 참조하십시오.

AWS CLI를 사용하여 구성 세트에 대한 계정 수준 금지 목록을 구성하려면

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

Linux, macOS, or Unix

aws sesv2 put-configuration-set-suppression-options \--configuration-set-name configSet \--suppressed-reasons BOUNCE COMPLAINT

Windows

aws sesv2 put-configuration-set-suppression-options `--configuration-set-name configSet `--suppressed-reasons BOUNCE COMPLAINT

앞의 예에서 configSet 계정 수준 억제 목록 을 사용해야 하는 구성 집합의 이름을 가진.

개별 전자 메일 주소를 계정 수준 억제 목록에 수동으로추가다음을 사용하여 개별 주소를 계정 수준 억제 목록에 수동으로 추가할 수 있습니다. 억제된목적지 작업Amazon SES API v2. 계정 수준 금지 목록에 추가할 수 있는 주소 수에는 제한이 없습니다.

Note

다음 절차에서는 AWS CLI를 이미 설치했다고 가정합니다. AWS CLI 설치 및 구성에 대한 자세한내용은 AWS Command Line Interface 사용 설명서를 참조하십시오.

AWS CLI를 사용하여 계정 수준 금지 목록에 주소를 수동으로 추가하려면

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

Linux, macOS, or Unix

aws sesv2 put-suppressed-destination \--email-address [email protected] \--reason BOUNCE

Windows

aws sesv2 put-suppressed-destination `--email-address [email protected] `

179

Page 188: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드계정 수준 억제 목록에 대량으로 전자 메일 주소 추가

--reason BOUNCE

앞의 예에서 [email protected] 계정 수준 금지 목록에 추가하려는 전자 메일 주소를 사용하여 BOUNCE 억제 목록에 주소를 추가하는 이유(허용 가능한 값: BOUNCE 및 COMPLAINT).

계정 수준 억제 목록에 대량으로 전자 메일 주소 추가먼저 연락처 목록을 Amazon S3 객체 다음에 이어 가져오기 잡 작성 작업 Amazon SES API v2.

Note

계정 수준 억제 목록에 추가할 수 있는 주소 수에는 제한이 없지만, Amazon S3 API 호출당 개체.

계정 수준 억제 목록에 대량으로 이메일 주소를 추가하려면 다음 단계를 완료하십시오.

• 주소 목록을 Amazon S3 CSV 또는 JSON 형식의 개체.

주소 추가를 위한 CSV 형식 예제:

[email protected],BOUNCE

[email protected],COMPLAINT

새 줄로 구분된 JSON 파일만 지원됩니다. 이 형식에서 각 줄은 개별 주소 정의를 포함하는 전체 JSON 개체입니다.

주소 추가를 위한 JSON 형식 예제:

{“emailAddress”:“[email protected]”,“reason”:“BOUNCE”}

{“emailAddress”:“[email protected]”,“reason”:“COMPLAINT”}

앞의 예에서 [email protected] 그리고 [email protected] 계정 수준 억제 목록에추가하려는 전자 메일 주소가 있는 경우 금지 목록에 주소를 추가하는 허용 가능한 이유는 다음과 같습니다. BOUNCE 및 COMPLAINT.

• 기부 Amazon SES 을(를) 읽을 수 있는 권한 Amazon S3 개체.

에 적용된 경우 Amazon S3 다음과 같은 정책이 Amazon SES 해당 버킷을 읽을 수 있는 권한이 있습니다. 정책 첨부에 대한 자세한 내용은 Amazon S3 버킷, 참조 버킷 정책 및 사용자 정책 사용 에서 AmazonSimple Storage Service 개발자 가이드.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSESGet", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::BUCKET-NAME/OBJECT-NAME", "Condition": { "StringEquals": { "aws:Referer": "AWSACCOUNTID" } } } ]

180

Page 189: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드계정 수준 억제 목록에 있는 주소 목록 보기

}

• 기부 Amazon SES AWS KMS 마스터 키 사용 권한

만약 Amazon S3 개체는 AWS KMS 키로 암호화되므로 AWS KMS 키를 사용하려면 Amazon SES 권한을부여해야 합니다. Amazon SES 은(는) 기본 마스터 키가 아닌 사용자 지정 마스터 키에서만 권한을 얻을수 있습니다. 여러분은 Amazon SES 키의 정책에 문을 추가하여 사용자 지정 마스터 키를 사용할 수 있는권한.

허용하려면 다음 정책 내용을 주요 정책에 붙여넣으십시오. Amazon SES 사용자 정의 마스터 키 을(를) 사용합니다.

{ "Sid": "AllowSESToDecrypt", "Effect": "Allow", "Principal": { "Service":"ses.amazonaws.com" }, "Action": [ "kms:Decrypt", ], "Resource": "*"}

• 사용 방법 가져오기 잡 작성 작업 Amazon SES API v2.

Note

다음 절차에서는 AWS CLI를 이미 설치했다고 가정합니다. AWS CLI 설치 및 구성에 대한 자세한내용은 AWS Command Line Interface 사용 설명서를 참조하십시오.

다음을 사용하여 계정 수준 억제 목록에 벌크 주소를 수동으로 추가하려면 AWS CLI

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

Linux, macOS, or Unix

aws sesv2 create-import-job \--import-destination "{\"SuppressionListDestination\": {\"SuppressionListImportAction\”:\”PUT\"}}" \--import-data-source "{\"S3Url\": \"s3://s3bucket/s3object\",\"DataFormat\": \"CSV\"}"

Windows

aws sesv2 create-import-job `--import-destination "{\"SuppressionListDestination\": {\"SuppressionListImportAction\”:\”PUT\"}}" `--import-data-source "{\"S3Url\": \"s3://s3bucket/s3object\",\"DataFormat\": \"CSV\"}"

앞의 예에서 s3bucket 그리고 s3object 을(를) 통해 Amazon S3 버킷 이름 및 Amazon S3 개체 이름.

계정 수준 억제 목록에 있는 주소 목록 보기Amazon SES API v2의 ListSuppressedDestinations 작업을 사용하면 계정의 계정 수준 금지 목록에 있는 모든 이메일 주소 목록을 볼 수 있습니다.

181

Page 190: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드계정 수준 억제 목록에 있는 주소 목록 보기

Note

다음 절차에서는 AWS CLI를 이미 설치했다고 가정합니다. AWS CLI 설치 및 구성에 대한 자세한내용은 AWS Command Line Interface 사용 설명서를 참조하십시오.

계정 수준 금지 목록에 있는 모든 이메일 주소 목록을 보려면

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

aws sesv2 list-suppressed-destinations

위의 명령은 계정의 계정 수준 금지 목록에 있는 모든 이메일 주소를 반환합니다. 출력은 다음 예제와 같이유사합니다.

{ "SuppressedDestinationSummaries": [ { "EmailAddress": "[email protected]", "Reason": "COMPLAINT", "LastUpdateTime": 1586552585.077 }, { "EmailAddress": "[email protected]", "Reason": "COMPLAINT", "LastUpdateTime": 1586552666.613 }, { "EmailAddress": "[email protected]", "Reason": "BOUNCE", "LastUpdateTime": 1586556479.141 } ]}

StartDate 옵션을 사용하면 특정 날짜 이후 목록에 추가된 이메일 주소만 표시할 수 있습니다.

특정 날짜 이후 계정 수준 금지 목록에 추가된 주소 목록을 보려면

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

aws sesv2 list-suppressed-destinations --start-date 1604394130

앞의 명령에서 1604394130 Unix 타임스탬프가 시작 날짜인 경우

EndDate 옵션을 사용하면 특정 날짜 이전 목록에 추가된 이메일 주소만 표시할 수도 있습니다.

특정 날짜 이전 계정 수준 금지 목록에 추가된 주소 목록을 보려면

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

aws sesv2 list-suppressed-destinations --end-date 1611126000

앞의 명령에서 1611126000 Unix 타임스탬프가 종료 날짜인 경우

Linux, macOS, or Unix 명령줄에서 기본 제공 grep 유틸리티를 사용하여 특정 주소 또는 도메인을 검색할수도 있습니다.

182

Page 191: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드계정 수준 금지 목록에서 이메일 주소 제거

계정 수준 금지 목록에서 특정 주소를 검색하려면

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

aws sesv2 list-suppressed-destinations | grep -A2 'example.com'

앞의 명령에서 example.com 를 검색할 텍스트 문자열(예: 주소 또는 도메인)로 지정합니다.

계정 수준 금지 목록에서 이메일 주소 제거주소가 계정에 대한 금지 목록에 추가되었지만 해당 주소가 이 목록에 있어서는 안 된다는 것을 알고 있는 경우 Amazon SES API v2의 DeleteSuppressedDestination 작업을 사용하여 해당 주소를 수동으로 제거할 수있습니다.

Note

다음 절차에서는 AWS CLI를 이미 설치했다고 가정합니다. AWS CLI 설치 및 구성에 대한 자세한내용은 AWS Command Line Interface 사용 설명서를 참조하십시오.

AWS CLI를 사용하여 계정 수준 금지 목록에서 주소를 제거하려면

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

Linux, macOS, or Unix

aws sesv2 delete-suppressed-destination \--email-address [email protected]

Windows

aws sesv2 delete-suppressed-destination `--email-address [email protected]

앞의 예에서 [email protected] 계정 수준 억제 목록에서 제거할 이메일 주소를 사용하여 을(를) 제거합니다.

계정 수준 억제 목록에서 대량으로 전자 메일 주소 제거먼저 연락처 목록을 Amazon S3 객체 다음에 이어 가져오기 잡 작성 작업 Amazon SES API v2.

Note

계정 수준 금지 목록에서 제거할 수 있는 주소 수에는 제한이 없지만, Amazon S3 API 호출당 개체.

계정 수준 억제 목록에서 전자 메일 주소를 대량으로 제거하려면 다음 단계를 완료하십시오.

• 주소 목록을 Amazon S3 CSV 또는 JSON 형식의 개체.

주소를 제거하기 위한 CSV 형식 예제:

[email protected]

새 줄로 구분된 JSON 파일만 지원됩니다. 이 형식에서 각 줄은 개별 주소 정의를 포함하는 전체 JSON 개체입니다.

183

Page 192: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드계정 수준 억제 목록에서 대량으로 전자 메일 주소 제거

주소 추가를 위한 JSON 형식 예제:

{“emailAddress”:“[email protected]”}

앞의 예에서 [email protected] 계정 수준 억제 목록에서 제거할 전자 메일 주소를 사용하여 을(를) 제거합니다.

• 기부 Amazon SES 을(를) 읽을 수 있는 권한 Amazon S3 개체.

에 적용된 경우 Amazon S3 다음과 같은 정책이 Amazon SES 해당 버킷을 읽을 수 있는 권한이 있습니다. 정책 첨부에 대한 자세한 내용은 Amazon S3 버킷, 참조 버킷 정책 및 사용자 정책 사용 에서 AmazonSimple Storage Service 개발자 가이드.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSESGet", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::BUCKET-NAME/OBJECT-NAME", "Condition": { "StringEquals": { "aws:Referer": "AWSACCOUNTID" } } } ]}

• 기부 Amazon SES AWS KMS 마스터 키 사용 권한

만약 Amazon S3 개체는 AWS KMS 키로 암호화되므로 AWS KMS 키를 사용하려면 Amazon SES 권한을부여해야 합니다. Amazon SES 은(는) 기본 마스터 키가 아닌 사용자 지정 마스터 키에서만 권한을 얻을수 있습니다. 여러분은 Amazon SES 키의 정책에 문을 추가하여 사용자 지정 마스터 키를 사용할 수 있는권한.

허용하려면 다음 정책 내용을 주요 정책에 붙여넣으십시오. Amazon SES 사용자 정의 마스터 키 을(를) 사용합니다.

{ "Sid": "AllowSESToDecrypt", "Effect": "Allow", "Principal": { "Service":"ses.amazonaws.com" }, "Action": [ "kms:Decrypt", ], "Resource": "*"}

• 사용 방법 가져오기 잡 작성 작업 Amazon SES API v2.

Note

다음 절차에서는 AWS CLI를 이미 설치했다고 가정합니다. AWS CLI 설치 및 구성에 대한 자세한내용은 AWS Command Line Interface 사용 설명서를 참조하십시오.

184

Page 193: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드계정에 대한 가져오기 작업 목록 보기

다음을 사용하여 계정 수준 억제 목록에서 대량 주소를 수동으로 제거하려면 AWS CLI

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

Linux, macOS, or Unix

aws sesv2 create-import-job \--import-destination "{\"SuppressionListDestination\": {\"SuppressionListImportAction\”:\”DELETE\"}}" \--import-data-source "{\"S3Url\": \"s3://s3bucket/s3object\",\"DataFormat\": \"CSV\"}"

Windows

aws sesv2 create-import-job `--import-destination "{\"SuppressionListDestination\": {\"SuppressionListImportAction\”:\”DELETE\"}}" `--import-data-source "{\"S3Url\": \"s3://s3bucket/s3object\",\"DataFormat\": \"CSV\"}"

앞의 예에서 s3bucket 그리고 s3object 을(를) 통해 Amazon S3 버킷 이름 및 Amazon S3 개체 이름.

계정에 대한 가져오기 작업 목록 보기다음을 사용하여 계정에 대한 계정 수준 억제 목록에 있는 모든 전자 메일 주소의 목록을 볼 수 있습니다. 직무 가져오기 목록 작업 Amazon SES API v2.

Note

다음 절차에서는 AWS CLI를 이미 설치했다고 가정합니다. AWS CLI 설치 및 구성에 대한 자세한내용은 AWS Command Line Interface 사용 설명서를 참조하십시오.

어카운트에 대한 모든 가져오기 작업 목록을 보려면

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

aws sesv2 list-import-jobs

앞의 명령은 계정에 대한 모든 가져오기 작업을 반환합니다. 출력은 다음 예제와 같이 유사합니다.

{ "ImportJobs": [ { "CreatedTimestamp": 1596175615.804, "ImportDestination": { "SuppressionListDestination": { "SuppressionListImportAction": "PUT" } }, "JobStatus": "COMPLETED", "JobId": "755380d7-fbdb-4ed2-a9a3-06866220f5b5" }, { "CreatedTimestamp": 1596134732.398, "ImportDestination": { "SuppressionListDestination": {

185

Page 194: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드어카운트의 가져오기 작업에 대한 정보 가져오기

"SuppressionListImportAction": "DELETE" } }, "JobStatus": "COMPLETED", "JobId": "076683bd-a7ee-4a40-9754-4ad1161ba8b6" }, { "CreatedTimestamp": 1596645918.134, "ImportDestination": { "SuppressionListDestination": { "SuppressionListImportAction": "PUT" } }, "JobStatus": "COMPLETED", "JobId": "6e261869-bd30-4b33-b1f2-9e035a83a395" } ]}

어카운트의 가져오기 작업에 대한 정보 가져오기다음을 사용하여 계정에 대한 가져오기 작업에 대한 정보를 얻을 수 있습니다. 가져오기 작업 가져오기 작업Amazon SES API v2.

Note

다음 절차에서는 AWS CLI를 이미 설치했다고 가정합니다. AWS CLI 설치 및 구성에 대한 자세한내용은 AWS Command Line Interface 사용 설명서를 참조하십시오.

어카운트의 가져오기 작업에 대한 정보를 가져오려면

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

aws sesv2 get-import-job --job-id JobId

앞의 명령은 계정에 대한 가져오기 작업에 대한 정보를 반환합니다. 출력은 다음 예제와 같이 유사합니다.

{ "ImportDataSource": { "S3Url": "s3://bucket/object", "DataFormat": "CSV" }, "ProcessedRecordsCount": 2, "FailureInfo": { "FailedRecordsS3Url": "s3presignedurl" }, "JobStatus": "COMPLETED", "JobId": "jobid", "CreatedTimestamp": 1597251915.243, "FailedRecordsCount": 1, "ImportDestination": { "SuppressionListDestination": { "SuppressionListImportAction": "PUT" } }, "CompletedTimestamp": 1597252002.583}

186

Page 195: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드계정 수준 억제 목록 비활성화

계정 수준 억제 목록 비활성화Amazon SES API v2의 PutAccountSuppressionAttributes 작업을 사용하면 suppressed-reasons 속성에서 값을 제거하여 계정 수준 금지 목록을 효율적으로 비활성화할 수 있습니다.

Note

다음 절차에서는 AWS CLI를 이미 설치했다고 가정합니다. AWS CLI 설치 및 구성에 대한 자세한내용은 AWS Command Line Interface 사용 설명서를 참조하십시오.

AWS CLI를 사용하여 계정 수준 금지 목록을 비활성화하려면

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

aws sesv2 put-account-suppression-attributes --suppressed-reasons

Using the Amazon SES global suppression listAmazon SES 포함 global suppression list. 언제 Amazon SES 고객이 하드 바운스, Amazon SES 님이 글로벌 억제 목록에 바운스를 생성하는 이메일 주소를 추가합니다. 글로벌 억제 목록은 global 모든 것이 AmazonSES 고객. 즉, 다른 고객이 전역 금지 목록에 있는 주소로 이메일을 보내려고 시도하면 Amazon SES는 메시지를 수락하지만 이메일 주소가 표시되지 않으므로 메시지를 보내지 않습니다. 전역 금지 목록은 기본적으로모든 Amazon SES 계정에 적용되므로—이를 사용하기 위해 추가 구성을 수행할 필요가 없다는 장점이 있습니다. 하지만 다른 Amazon SES 사용자의 계정과 연결된 이메일 주소가 포함되어 있기 때문에 전역 금지 목록을 쿼리할 수 없다는 단점이 있습니다. 또한 전역 금지 목록에 주소를 수동으로 추가할 수 없으며 AmazonSES 콘솔을 사용하여 전역 금지 목록에서 주소만 제거할 수 있습니다.

Amazon SES에는 계정 수준 금지 목록도 포함되어 있습니다. 자세한 정보는 계정 수준 금지 목록 사용 (p. 177) 단원을 참조하십시오.

Global suppression list considerations전역 금지 목록을 사용하는 경우 다음 요소를 고려해야 합니다.

• The global suppression list is enabled by default for all Amazon SES accounts. You can't disable it.• Because Amazon SES applies the global suppression list to all customers, you can't query the global

suppression list or add addresses to it manually.• When an email address produces a hard bounce, Amazon SES adds the address to the global

suppression list of a short period of time. After that period of time elapses, Amazon SES removes theaddress from the list. If the address produces another hard bounce, Amazon SES adds it back to theglobal suppression list for a longer period of time, and removes it at the end of that period. The amount oftime that an address remains on the global suppression list increases each time the address produces ahard bounce. An address can remain on the global suppression list for up to 14 days.

• If you attempt to send a message to an address that's on the global suppression list, Amazon SESaccepts the message, but doesn't send it. Amazon SES generates a bounce notification with abounceType value of Permanent, and a bounceSubType value of Suppressed. Receiving this typeof bounce notification is the only way to know if an address is on the global suppression list. You can'tquery the global suppression list.

• Amazon SES counts the messages that you send to addresses on the global suppression list toward thebounce rate for your account.

• Amazon SES counts the messages that you send to addresses on the global suppression list toward yourdaily sending quota.

187

Page 196: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Removing an address from the global suppression list

• As with any email address that produces a hard bounce, you should remove addresses that cause asuppression list bounce from your mailing list unless you're certain that the address is valid. Suppressionlist bounces count towards your account's bounce rate. If your bounce rate gets too high, we might placeyour account under review or pause your account's ability to send email.

Removing an address from the global suppression list전역 금지 목록에 있는 주소가 유효한 수신자가 확실하다면 다음 절차를 사용해 해당 주소를 제거할 수 있습니다. 한 리전의 전역 금지 목록에서 주소를 제거하면, 제거가 모든 리전의 모든 AWS 계정에 적용됩니다.

전역 금지 목록에서 이메일 주소를 제거하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 창의 오른쪽 상단에 있는 리전 선택기를 사용하여 AWS 리전(미국 동부(버지니아 북부), 미국 서부(오레곤) 또는 유럽(아일랜드)) 중 하나를 선택합니다. 모든 리전에 금지 목록이 동일하게 적용되므로 선택한특정 리전은 중요하지 않습니다.

Note

이 절차를 완료하려면 이전 단락에 나열되어 있는 AWS 리전 중 하나를 사용해야 합니다. 다른AWS 리전에서는 이 절차를 완료할 수 없습니다.

3. 탐색 창에서 Suppression List Removal(금지 목록 제거)을 선택합니다.4. [Email Address] 필드에 전역 금지 목록에서 제거하려는 이메일 주소를 입력합니다.5. [Type characters] 필드에 위 이미지에서 보이는 문자를 입력합니다.6. 제출을 선택합니다.

지정한 이메일 주소가 글로벌 금지 목록에 있는 경우 AWS에서 즉시 해당 주소를 제거합니다.

Amazon SES and security protocols이 주제에서는 Amazon SES와 연결할 때, 그리고 Amazon SES가 이메일을 받는 사람에게 전송할 때 사용할수 있는 보안 프로토콜을 설명합니다.

Email Sender to Amazon SESAmazon SES와 연결할 때 사용하는 보안 프로토콜은 다음에서 설명하듯이 Amazon SES API 또는 AmazonSES SMTP 인터페이스를 사용하는가에 따라 달라집니다.

HTTPSAmazon SES API를 사용하는 경우(직접 또는 AWS SDK를 통해) 모든 통신은 Amazon SES HTTPS 엔드포인트를 통해 TLS로 암호화됩니다. Amazon SES HTTPS 엔드포인트는 TLS 1.2, TLS 1.1 및 TLS 1.0을 지원합니다.

SMTP InterfaceSMTP 인터페이스를 통해 Amazon SES에 액세스하는 경우 TLS(전송 계층 보안)를 사용하여 연결을 암호화해야 합니다. TLS는 종종 이전 프로토콜 이름 Secure Sockets Layer(SSL)로 불립니다.

Amazon SES TLS 암호화 연결을 설정하는 두 가지 메커니즘을 지원합니다. STARTTLS 및 TLS 래퍼.

188

Page 197: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SES to Receiver

• STARTTLS—STARTTLS is a means of upgrading an unencrypted connection to an encryptedconnection. There are versions of STARTTLS for a variety of protocols; the SMTP version is definedin RFC 3207. For STARTTLS connections, Amazon SES supports TLS 1.2, TLS 1.1, TLS 1.0 andSSLv2Hello.

• TLS Wrapper—TLS Wrapper (also known as SMTPS or the Handshake Protocol) is a means of initiatingan encrypted connection without first establishing an unencrypted connection. With TLS Wrapper, theAmazon SES SMTP endpoint does not perform TLS negotiation: it is the client's responsibility to connectto the endpoint using TLS, and to continue using TLS for the entire conversation. TLS Wrapper is anolder protocol, but many clients still support it. For TLS Wrapper connections, Amazon SES supports TLS1.2, TLS 1.1 and TLS 1.0.

이러한 방법을 사용한 Amazon SES SMTP 인터페이스 연결에 대한 자세한 내용은 Connecting to anAmazon SES SMTP endpoint (p. 87) 단원을 참조하십시오.

Amazon SES to ReceiverAmazon SES는 TLS 연결에 대해 TLS 1.2, TLS 1.1 및 TLS 1.0을 지원합니다.

기본적으로 Amazon SES 사용 opportunistic TLS. 이는 Amazon SES 항상 수신 메일 서버에 보안 연결을 시도합니다. 만약 Amazon SES가 보안 연결을 설정할 수 없는 경우 암호화하지 않고 해당 메시지를 전송합니다.

이 동작은 구성 세트를 사용하여 변경할 수 있습니다. 사용 putconfigurationsetdelivery옵션 API 작업 설정TlsPolicy 구성 세트를 위한 속성 Require. 귀하는 AWS CLI 을(를) 변경합니다.

구성 세트에 대한 TLS 연결을 요청하여 Amazon SES를 구성하려면

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

aws ses put-configuration-set-delivery-options --configuration-set-name MyConfigurationSet --delivery-options TlsPolicy=Require

이전 예에서, 교체 MyConfigurationSet 구성 세트 이름 을(를) 가지고 있습니다.

구성 세트를 사용하여 이메일을 전송할 경우, Amazon SES가 보안 연결을 설정할 수 있다면 수신 이메일 서버에 해당 메시지만을 전송합니다. Amazon SES가 수신 이메일 서버에 보안 연결을 할 수 없는 경우 해당 메시지를 삭제합니다.

End-to-End EncryptionAmazon SES를 사용하여 S/MIME 또는 PGP를 통해 암호화된 메시지를 전송할 수 있습니다. 이러한 프로토콜을 사용하는 메시지는 발신자에 의해 암호화됩니다. 해당 콘텐츠는 메시지를 암호 해독하는 데 필요한 퍼블릭 키를 소유하는 수신자만 볼 수 있습니다.

Amazon SES는 S/MIME으로 암호화된 이메일을 전송하는 데 사용할 수 있는 다음 MIME 유형을 지원합니다.

• application/pkcs7-mime

• application/pkcs7-signature

• application/x-pkcs7-mime

• application/x-pkcs7-signature

Amazon SES는 PGP로 암호화된 이메일을 전송하는 데 사용할 수 있는 다음 MIME 유형도 지원합니다.

189

Page 198: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드End-to-End Encryption

• application/pgp-encrypted

• application/pgp-keys

• application/pgp-signature

190

Page 199: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Email receiving concepts

Receiving email with Amazon SESAmazon Simple Email Service(Amazon SES)는 사용자 대신 메일을 보내고 받을 수 있는 메일 서버입니다.메일을 받는 데 Amazon SES를 사용하면 Amazon SES이 다음과 같은 기본 메일 수신 작업을 처리합니다.

• communicating with other mail servers• scanning for spam and viruses• rejecting mail from untrusted sources• accepting mail for recipients in your domain

이메일을 수신하면 Amazon SES는 제공된 지침에 따라 이메일을 처리합니다. 예를 들어 Amazon SES는 수신 메일을 Amazon S3 버킷에 전달하고 Amazon SNS 주제에 게시하거나 Amazon WorkMail으로 보낼 수 있습니다. 또한 특정 IP 주소 범위의 모든 메시지를 명시적으로 차단 또는 허용하는 규칙을 만들거나 특정 이메일 주소로 메시지를 보낼 때 자동으로 반송 메시지를 보내는 규칙을 만들 수 있습니다.

Note

Amazon SES에는 들어오는 이메일을 수신하기 위한 POP 또는 IMAP 서버가 포함되어 있지 않습니다. 즉, Microsoft Outlook과 같은 이메일 클라이언트를 사용하여 들어오는 이메일을 수신할 수 없습니다. 이메일 클라이언트를 사용하여 이메일을 전송하고 수신할 수 있는 해결 방법이 필요한 경우Amazon WorkMail 사용을 고려해 보십시오.

Amazon SES는 특정 AWS 리전에서만 이메일 수신을 지원합니다. 이메일 수신이 지원되는 리전의 전체 목록은 AWS General Reference의 Amazon Simple Email Service 엔드포인트 및 할당량을 참조하십시오.

이 단원의 주제:• Amazon SES email receiving concepts (p. 191)• Amazon SES에서 이메일 수신 시작하기 (p. 193)• Amazon SES 이메일 수신 설정하기 (p. 198)• Managing email receiving in Amazon SES (p. 218)

Amazon SES email receiving concepts사용 시 Amazon SES 이메일 수신자로서, 우편과 함께 무엇을 해야 하는지 서비스 부서에 알려야 합니다. 메일에 대해 세분화된 제어를 제공하는 기본 방법은 수신자를 기반으로 할 조치를 지정하는 것입니다. 다른 방법은 원본 IP 주소를 기반으로 메일을 차단하거나 허용하는 것입니다. 이 주제에서는 두 가지 방법을 모두 설명합니다.

Recipient-based control수신 메일을 통제하는 주된 방법은 수신자를 기준으로 우편을 처리하는 방법을 지정하는 것입니다. 예를 들어, example.com을(를) 지정할 수 있습니다. [email protected] 다른 모든 메일이 example.com 및 하위 도메인을 전달해야 합니다. 귀하가 제공하는 수신자 목록은 condition.

설정 receipt rules 조건을 충족하는 경우 메일 취급 방법을 지정합니다. 영수증 규칙은 상태 및 동작 목록으로구성됩니다. 수신자가 수신한 수신자가 조건에 지정된 수신자와 일치하는 경우 Amazon SES 규칙 에 지정된작업을 수행합니다. 다음 작업을 사용할 수 있습니다.

• S3 action—Delivers the mail to an Amazon S3 bucket and, optionally, notifies you through Amazon SNS.

191

Page 200: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드IP address-based control

• SNS action—Publishes the mail to an Amazon SNS topic.

Note

The SNS action includes a complete copy of the email content in the Amazon SNS notifications.The other Amazon SNS notifications mentioned here simply notify you of email delivery; theycontain information about the email, not the email content itself.

• Lambda action—Calls your code through a Lambda function and, optionally, notifies you through AmazonSNS.

• Bounce action—Rejects the email by returning a bounce response to the sender and, optionally, notifiesyou through Amazon SNS.

• Stop action—Terminates the evaluation of the receipt rule set and, optionally, notifies you throughAmazon SNS.

• Add header action—Adds a header to the received email. You typically use this action only incombination with other actions.

• WorkMail action—Handles the mail with Amazon WorkMail. You will typically not use this action directlybecause Amazon WorkMail takes care of the setup.

영수증 규칙은 receipt rule sets. 귀하는 AWS 계정이나, 하나의 영수증 규칙 세트는 언제든지 활성화됩니다.다음 그림은 영수증 규칙, 영수증 규칙 세트 및 조치가 서로 어떻게 관련되어 있는지 보여줍니다.

IP address-based control다음을 설정하여 더 넓은 수준에서 메일 흐름을 제어할 수 있습니다. IP address filters. IP 주소 필터는 선택사항이며 IP 주소 또는 IP 주소 범위에서 메일 수락을 허용 또는 거부할지 여부를 지정할 수 있습니다. IP 주소 필터에는 다음이 포함될 수 있습니다. block lists (수신을 차단할 IP 주소) 및 allow lists (항상 메일을 수락할 IP 주소). IP 주소 필터는 스팸을 차단하는 데 유용합니다. Amazon SES 은(는) 스팸을 전송하는 것으로 알려진 IP 주소의 자체 블록 목록을 유지하지만, 해당 IP 주소로부터 메일 수신을 선택할 수 있습니다.

Note

일터에서 유래한 메일을 허용하려면 Amazon EC2 IP 주소, 허용 목록에 추가해야 합니다. 모든 메일은 Amazon EC2 은(는) 기본적으로 차단되었습니다.

Email-receiving process언제 Amazon SES 님이 도메인을 위한 이메일을 수신합니다. 다음 이벤트가 발생합니다.

1. Amazon SES 먼저 발신자의 IP 주소를 확인합니다. Amazon SES 다음의 경우를 제외하고 이 단계를 통과할 수 있습니다.

192

Page 201: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드이메일 수신 시작하기

• The IP address is in your block list.• The IP address is in the Amazon SES block list and not on your allow list.

2. Amazon SES 활성 영수증 규칙 세트를 검토하여 수신 전자 메일의 수취인과 일치하는 조건을 수신 규칙에 포함하는지 확인합니다.

3. 일치하는 항목이 없으면 Amazon SES 메일 을(를) 거부합니다. 그렇지 않으면 Amazon SES 메일 을(를)수락합니다.

4. IF Amazon SES 메일을 수락하면 활성 영수증 규칙 집합을 평가합니다. 수취인 조건들 중 적어도 하나 이상에 해당하는 모든 영수증 규칙은 정의된 순서대로 적용됩니다. 단, 조치 또는 영수증 규칙이 수신 규칙세트 평가를 명시적으로 종료하지 않는 한, 이 명령을 적용합니다.

이제 프로세스에 대해 간략하게 살펴보겠습니다. 이메일 수신 설정하기 (p. 198).

Amazon SES에서 이메일 수신 시작하기이 자습서에서는 AWS 계정을 생성하고 Amazon Route 53을 사용하여 도메인을 등록하며 해당 도메인으로전송된 모든 이메일을 Amazon Simple Storage Service 버킷으로 전달하도록 Amazon Simple Email Service를 구성합니다.

Note

Amazon SES는 특정 AWS 리전에서만 이메일 수신을 지원합니다. 이메일 수신이 지원되는 리전의전체 목록은 AWS General Reference의 Amazon Simple Email Service 엔드포인트 및 할당량을 참조하십시오.

주제• Step 1: Before you begin (p. 193)• Step 2: Verify your domain (p. 194)• Step 3: Set up a receipt rule (p. 195)• Step 4: Send a test email (p. 197)• Step 5: View the received email (p. 197)• Step 6: Clean up (p. 198)

Step 1: Before you begin이 자습서를 시작하려면 먼저 AWS 계정에 가입하고(아직 없는 경우) Amazon Route 53을 사용하여 이메일수신에 사용할 도메인을 등록해야 합니다.

Note

Amazon SES는 특정 AWS 리전에서만 이메일 수신을 지원합니다. 이메일 수신이 지원되는 리전의전체 목록은 AWS General Reference의 Amazon Simple Email Service 엔드포인트 및 할당량을 참조하십시오.

Sign up for AWSAWS 계정이 이미 있는 경우에는 이 단원을 건너뛸 수 있습니다.

AWS 계정을 생성하려면

1. https://console.aws.amazon.com/ses/로 이동한 다음 Amazon SES 시작하기를 선택합니다.

193

Page 202: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Step 2: Verify your domain

2. AWS 계정 생성 페이지에서 필수 필드를 작성하고 화면에 표시되는 지침에 따라 새 계정을 생성합니다.

Register a domain using Route 53이 자습서에서는 Route 53을 사용하여 등록한 도메인을 사용한다고 가정합니다. 다른 서비스를 사용하여 등록한 도메인을 사용할 수도 있지만, 도메인을 확인하는 절차가 이 자습서에서 설명하는 내용과 다릅니다. 사용에 대한 자세한 정보 Route 53 도메인을 등록하려면 새 도메인 등록 in the Amazon Route 53 개발자 안내서.

기존 도메인을 Route 53으로 이전할 수도 있습니다. 도메인 전송에 대한 자세한 내용은 Route 53, 참조: 도메인에 대한 등록 전송 Route 53 in the Amazon Route 53 개발자 안내서.

다음 단계: Step 2: Verify your domain (p. 194)

Request production access귀하의 계정이 여전히 Amazon SES 샌드박스. 샌드박스에서 계정을 제거하려면 다음 절차를 완료하십시오.Amazon SES 샌드박스 환경에서 나가기 (p. 69).

Step 2: Verify your domain도메인의 이메일을 수신하도록 Amazon SES를 구성하려면 먼저 도메인 소유자임을 입증해야 합니다. 소유한 모든 도메인을 확인할 수 있지만 Route 53을 사용하여 등록한 도메인을 확인하는 것이 더 쉽습니다.

Note

계정이 Amazon SES 샌드박스, 시술 완료 Amazon SES 샌드박스 환경에서 나가기 (p. 69) 이 섹션의 절차를 마치기 전에.

Amazon SES에서 도메인을 확인하려면

1. https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.

Note

이 단원의 절차를 완료하려면 Route 53에 도메인을 등록할 때 사용한 것과 같은 AWS 계정을사용하여 AWS 관리 콘솔에 로그인합니다.

2. 탐색 창의 [Identity Management] 아래에서 [Domains]를 선택합니다.3. [Verify a New Domain]을 선택합니다.4. Verify a New Domain(새 도메인 확인) 대화 상자에서 도메인에 Route 53을 사용하여 등록한 도메인 이

름을 입력한 다음 Verify This Domain(이 도메인 확인)을 선택합니다.5. Verify a New Domain(새 도메인 확인) 대화 상자에서 Route 53 사용을 선택합니다.

Note

Use Route 53(Route 53 사용) 버튼이 보이지 않으면 도메인이 Route 53에 등록되지 않은 것일수 있습니다. 다른 서비스를 사용하여 도메인을 등록한 경우 Verifying a domain with AmazonSES (p. 58)의 절차를 완료하여 도메인을 확인할 수 있습니다.

6. Use Route 53(Route 53 사용) 대화 상자에서 Domain Verification Record(도메인 확인 레코드)와 EmailReceiving Record(이메일 수신 레코드)를 선택합니다. 그런 다음 Hosted Zones(호스팅 영역) 아래에서사용하려는 호스팅 영역의 이름을 선택합니다. Route 53을 사용하여 등록한 도메인을 변경하지 않은 경우 Hosted Zones(호스팅 영역) 섹션에 옵션이 한 개만 제공됩니다.

Important

도메인의 MX(Mail Exchanger) 레코드를 이미 설정한 경우, 다음 단계에서 이러한 레코드가 새레코드로 바뀝니다.

194

Page 203: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Step 3: Set up a receipt rule

7. [Create Record Sets]를 선택합니다. 도메인 이름 목록으로 돌아갑니다.8. 5분간 기다린 후 새로 고침 ( button Status(상태) 열의 값이 verified(확인됨)인지 확인합니다. 상태가

pending verification(확인 보류중)인 경우 몇 분 더 기다린 후 목록을 다시 새로 고치십시오. 도메인의 상태가 verified(확인됨)가 될 때까지 이 작업을 반복합니다.

다음 단계: Step 3: Set up a receipt rule (p. 195)

Step 3: Set up a receipt rule사용 방법 Amazon SES 이메일 수신자는 활성 상태여야 합니다. receipt rule set. 영수증 규칙 세트는 receiptrules 이는 Amazon SES 은(는) 검증된 도메인에 대해 수신된 메일과 함께 해야 합니다. Amazon SES에서 이메일 수신을 처음 설정하므로 Amazon SES가 기본 수신 규칙 세트를 자동으로 생성합니다. 이 단원에서 만드는 수신 규칙은 기본 수신 규칙 세트에 포함됩니다.

Note

이 단원의 절차는 수신 규칙 세트를 처음 생성하는 경우를 기준으로 합니다. 계정에 수신 규칙 세트가 이미 있으면 이 단원에서 생성하는 수신 규칙을 활성 수신 규칙으로 설정해야 Amazon SES가 해당 도메인으로 수신되는 이메일에 적용할 수 있습니다. 수신 규칙 세트 활성화/비활성화에 대한 자세한 내용은 Activating and disabling a receipt rule set (p. 219) 단원을 참조하십시오.

수신 규칙을 만들려면

1. 탐색 창에서 이메일 수신 아래의 Rule Sets(규칙 세트)를 선택합니다.2. [Create a Receipt Rule]을 선택합니다.3. [Recipients] 페이지에서 [Next Step]을 선택합니다.

Note

수신자를 추가하지 않을 것이므로 Amazon SES는 확인된 모든 도메인의 모든 수신자에게 이수신 규칙을 적용합니다.

4. 직업 추가에서 S3를 선택합니다.

5. [S3 bucket]에 대해 [Create S3 bucket]을 선택합니다.

195

Page 204: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Step 3: Set up a receipt rule

6. 버킷 이름에 Amazon S3 버킷의 이름을 입력합니다. 다음 요구 사항에 맞는 버킷 이름을 입력해야 합니다.

• It can only contain lowercase letters, numbers, periods (.), and hyphens (-).• It must be unique across all of AWS.• It must start and end with a number or a lowercase letter.• It must contain at least 3 characters, and no more than 63 characters.• It can't be formatted as an IP address (for example, 192.168.5.4).• It can't contain two adjacent periods (..) or a dash adjacent to a period (-. or .-).

완료했으면 Create Bucket(버킷 만들기)을 선택합니다.

Note

Amazon SES 콘솔을 사용하여 Amazon S3 버킷을 생성하기 때문에 Amazon SES가 자동으로정책을 생성하고 적용합니다. 이 정책은 버킷에 작성할 수 있는 권한을 부여합니다. 하지만 기존 Amazon S3 버킷을 선택한 경우에는 Amazon S3 콘솔 또는 API를 사용하여 버킷에 정책을연결 (p. 202)함으로써 버킷에 작성할 수 있는 권한을 Amazon SES에 부여해야 합니다.

7. [Next Step]을 선택합니다.8. On 규칙 세부 정보 페이지, 규칙 이름, 유형 my-rule. 옆의 확인란을 선택합니다. 활성화됨을 선택한 후

다음 단계.

196

Page 205: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Step 4: Send a test email

9. [Review] 페이지에서 [Create Rule]을 선택합니다.

다음 단계: Step 4: Send a test email (p. 197)

Step 4: Send a test email도메인을 확인하고 구성했으므로 이제 이메일을 보내서 도메인의 이메일 수신 기능을 테스트할 수 있습니다.

테스트 이메일을 보내려면 이메일을 보낼 수 있는 이메일 계정(개인 이메일 주소 등)을 사용합니다. 확인된 도메인의 이메일 주소로 테스트 메시지를 보냅니다. 예를 들어, example.com님은 이메일 주소로[email protected] 또는 [email protected] (또는 example.com 도메인).

Note

추가 단계를 완료하여 도메인에 개인 이메일 주소를 생성할 필요는 없습니다. Amazon SES는확인된 도메인의 주소로 전송되는 모든 이메일을 수신하며 사용자가 Step 3: Set up a receiptrule (p. 195)에서 생성한 수신 규칙을 적용합니다.

다음 단계: Step 5: View the received email (p. 197)

Step 5: View the received email도메인의 주소로 테스트 메시지를 보낸 후 Amazon S3 버킷에서 이 메시지를 검색하고 해당 내용을 볼 수 있습니다.

Amazon SES를 통해 수신한 메시지를 보려면

1. https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.2. Amazon S3 콘솔에서 Step 3: Set up a receipt rule (p. 195)에서 생성한 버킷을 선택합니다.3. Amazon S3 버킷에서 수신한 이메일을 찾습니다. 이메일 이름은 문자와 숫자로 구성된 고유한 문자열입

니다.Note

버킷에는 이름이 지정된 파일이 포함될 수 있습니다. AMAZON_SES_SETUP_NOTIFICATION.이 파일을 무시하거나 삭제할 수 있습니다.

197

Page 206: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Step 6: Clean up

4. 파일 이름 옆의 확인란을 선택합니다. [Actions] 메뉴에서 [Download]를 선택합니다.5. 전 단계에서 다운로드한 파일을 포함하는 컴퓨터 폴더를 엽니다. 다운로드한 메시지를 보는 방법은 다음

과 같이 여러 방법이 있습니다.

• Open the file in a text editor and read its contents directly. Depending on the method you used tosend the email, part of the message may be encoded. If part of the message is encoded, you'll needto decode them manually (for example, by using a base64 decoder).

• Add the .eml extension to the end of the file name, and then open the file using an email clientsuch as Microsoft Outlook or Mozilla Thunderbird. Most email clients will automatically decode theencoded parts of a message, and will display things like HTML formatting and file attachments.

다음 단계: Step 6: Clean up (p. 198)

Step 6: Clean up이 자습서를 완료한 후에는 생성했던 리소스를 삭제해야 추가 요금이 발생하는 것을 막을 수 있습니다.

Amazon SES receipt rule set도메인으로 메일을 받을 때 더 이상 Amazon SES를 사용하지 않으려면 활성 수신 규칙 세트를 비활성화 (p. 219)합니다.

Amazon S3 bucket새로 만든 Amazon S3 버킷이 더 이상 필요 없을 때는 삭제할 수 있습니다. 버킷을 삭제하려면 먼저 버킷의콘텐츠를 삭제해야 합니다. 폴더 및 버킷을 삭제하는 방법에 대한 자세한 내용은 다음을 참조하십시오. 개체및 버킷 삭제 in the Amazon Simple Storage Service 시작 안내서.

Route 53 domainRoute 53을 사용하여 더 이상 도메인을 등록하지 않으려면 등록을 삭제하거나 도메인을 다른 등록 기관으로이전합니다.

Amazon SES 이메일 수신 설정하기이 섹션에서는 Amazon SES이 메일을 수신하도록 설정하기 위해 알아야 할 사항을 설명합니다. 예를 들어 우선 메일의 수신, 필터, 처리 방법을 결정해야 합니다. 그에 따라 Amazon SES 구성이 달라지기 때문입니다. 또한 Amazon SES의 도메인 확인 절차를 거쳐 해당 도메인의 소유 사실을 증명하고, 도메인이 수신메일을 Amazon SES로 전송하도록 구성해야 합니다. 그런 다음 AWS 리소스에 액세스할 수 있는 권한을Amazon SES에 부여합니다. 마지막으로, 수신 규칙 세트와 IP 주소 필터를 생성하여 메일 수신을 설정할 수있습니다.

다음 주제에서 이 단계를 설명합니다:• Considering your use case for Amazon SES email receiving (p. 199)• Verifying your domain for Amazon SES email receiving (p. 201)• Publishing an MX record for Amazon SES email receiving (p. 201)• Giving permissions to Amazon SES for email receiving (p. 202)• Creating IP address filters for Amazon SES email receiving (p. 205)• Creating a receipt rule set for Amazon SES email receiving (p. 205)• Creating receipt rules for Amazon SES email receiving (p. 206)

198

Page 207: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Considering your use case

이 작업이 전체 이메일 수신 프로세스에서 어느 부분에 해당하는지 확인하려면 다음(Email receivingconcepts (p. 191))을 참조하십시오.

Considering your use case for Amazon SES emailreceivingAmazon SES이 메일을 수신하도록 설정하기에 앞서 다음 질문에 대해 생각해 보는 것이 바람직합니다.

General considerations귀하의 Amazon SES 여전히 샌드박스 안에 계정이 있습니까?

아직 완료하지 않은 경우, Amazon SES 샌드박스 환경에서 나가기 (p. 69) 귀하의 계정을 Amazon SES 샌드박스.

Email content어떻게 Amazon SES 이메일 콘텐츠를 전달하시겠습니까?

Amazon SES는 이메일 콘텐츠를 두 가지 방식으로 전달합니다. 즉, 이메일을 사용자가 지정하는Amazon S3 버킷에 저장하거나 이메일 사본이 포함된 Amazon SNS 알림을 전송합니다. Amazon SES는Multipurpose Internet Mail Extensions(MIME) 형식으로 작성된 원시 이메일을 그대로 전송합니다. MIME 형식에 대한 자세한 내용은 RFC 2045를 참조하십시오.

수신하게 될 이메일의 크기는 얼마나 됩니까?

Amazon S3 버킷에 이메일을 저장하는 경우 이메일(헤더 포함)의 최대 용량은 30MB입니다. Amazon SNS알림을 통해 이메일을 수신하는 경우 이메일(헤더 포함)의 최대 용량은 150KB입니다.

메일 처리 프로세스를 어떻게 트리거하고자 하십니까?

메일을 수신한 후에는 자체 코드로 처리하고 싶을 것입니다. 예를 들어 사용자 애플리케이션이 Base64 인코딩의 이메일을 표시할 수 있는 형식으로 변환해서 최종 사용자가 이메일 클라이언트로 확인할 수 있도록 할것입니다. 이 프로세스를 시작하는 두 가지 방법이 있습니다.

• If your emails are delivered to Amazon S3, your application can listen for Amazon SNS notificationsgenerated by S3 actions, extract the message ID of the email from the notifications, and then use themessage ID to retrieve the email from Amazon S3.

Alternatively, you can incorporate email processing into your receipt rules by writing a Lambda function.In this case, your receipt rule should first write the email to Amazon S3, and then trigger the Lambdafunction. Lambda actions can be executed synchronously or asynchronously from within your receiptrules, depending on whether the Lambda function needs to return a result that influences how otheractions are executed. We recommend that you use asynchronous execution unless synchronous isabsolutely necessary for your use case. For more information about AWS Lambda, see the AWS LambdaDeveloper Guide.

• If your emails are delivered through an Amazon SNS notification by using the SNS action, yourapplication can listen for Amazon SNS notifications, and then extract the email messages from thenotifications.

이메일을 암호화하고자 하십니까?

Amazon SES는 AWS Key Management Service(AWS KMS)와 통합하여 Amazon S3 버킷에 작성하는 메일을 암호화할 수 있습니다. Amazon SES는 클라이언트 측 암호화를 사용하여 메일을 암호화한 후에 AmazonS3에 작성합니다. 따라서 Amazon S3에서 메일을 가져온 다음 사용자 측에서 콘텐츠를 해독해야 합니다.

199

Page 208: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Considering your use case

AWS SDK for Java 및 Ruby용 AWS SDK는 해독을 처리할 수 있는 클라이언트를 제공합니다. Amazon SES는 이메일을 Amazon S3 버킷으로 전송하는 경우에만 이메일을 암호화할 수 있습니다.

Unwanted mailAt what point in the email-receiving process do you want to reject unwanted mail?

발신자가 수신자에게 이메일을 전송하려고 시도할 때 발신자의 이메일 서버는 수신자의 서버와 명령 시퀀스를 교환합니다. 이 시퀀스는 SMTP conversation.

이메일 수신 프로세스의 두 시점에서 수신되는 이메일을 거부할 수 있는데 SMTP 대화 중과 SMTP 대화 이후, 이렇게 두 시점입니다. 사용 IP address filters SMTP 대화 중 메시지 거부 receipt rules SMTP 대화를 이후에는 을(를) 거부합니다.

IP 주소 필터를 사용하면 특정 IP 주소에서 발신된 이메일을 거부할 수 있습니다. IP 주소 필터를 사용하여원치 않는 메일을 거부하면 SMTP 대화 중 거부된 메시지에는 비용이 청구되지 않는다는 이점이 있습니다.IP 주소 필터 사용의 단점은 메시지의 실제 내용을 분석하지 않고 지정한 IP 주소에서 발신된 이메일을 거부한다는 점입니다. IP 주소 필터에 대한 자세한 내용은 Creating IP address filters for Amazon SES emailreceiving (p. 205) 단원을 참조하십시오.

거부 규칙을 사용하면 메시지가 전송된 주소(혹은 도메인 또는 하위 도메인)를 기반으로 이메일 발신자에게반송 메일 알림을 보낼 수 있습니다. 거부 규칙을 사용하면 발신자에게 반송 메일 알림을 보내기 전에 수신되는 메시지에 대해 추가 분석을 수행할 수 있다는 이점이 있습니다. 예를 들어, 메시지가 DKIM 인증에 실패하거나 스팸으로 식별된 경우에만 AWS Lambda를 사용하여 반송 메일 알림을 보낼 수 있습니다. 하지만 거부규칙을 사용하면 SMTP 대화 이후에 거부 규칙이 처리되기 때문에 수신한 각 메시지에 대해 비용이 청구된다는 단점이 있습니다. Lambda를 사용하여 수신되는 메시지의 내용을 분석하는 경우에도 비용이 청구될 수있습니다. 수신 규칙에 대한 자세한 내용은 Creating receipt rules for Amazon SES email receiving (p. 206)단원을 참조하십시오. Lambda를 사용하여 수신되는 이메일 분석에 대한 자세한 내용은 Lambda functionexamples (p. 213)를 참조하십시오.

Using other AWS services권한을 적절히 설정하셨습니까?

메일을 Amazon S3 버킷으로 전송하거나 본인 소유가 아닌 Amazon SNS 주제로 게시하거나 Lambda 함수를 트리거하거나 사용자 지정 마스터 AWS KMS 키를 사용하고자 하는 경우 Amazon SES에 해당 리소스에대한 액세스 권한을 주어야 합니다. Amazon SES에 액세스 권한을 부여하려면 해당 AWS 서비스의 콘솔 또는 API에서 리소스 정책을 생성해야 합니다. 자세한 정보는 Giving permission (p. 202) 단원을 참조하십시오.

Mail streams메일 스트림을 어떻게 나누고 싶으십니까?

도메인은 다양한 종류의 메일을 수신합니다. 예를 들어, 이메일 등의 일부 도메인 메일[email protected]님, 개인 받은 편지함 을(를) 위한 것일 수 있습니다. 이메일과 같은 기타 우편[email protected]은(는) 대신 자동 시스템으로 더 잘 연결될 수 있습니다. 이처럼 이메일을 종류에따라 다르게 처리할 수 있도록 수신 규칙을 사용해 수신 메일을 분류할 수 있습니다. 수신 규칙 설정 방법에대한 자세한 내용은 다음(Creating receipt rules (p. 206))을 참조하십시오.

Regional availabilityDoes Amazon SES 지역 내 이메일 수신을 지원합니까?

Amazon SES는 특정 AWS 리전에서만 이메일 수신을 지원합니다. 이메일 수신이 지원되는 리전의 전체 목록은 AWS General Reference의 Amazon Simple Email Service 엔드포인트 및 할당량을 참조하십시오.

200

Page 209: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verifying your domain

Verifying your domain for Amazon SES email receiving도메인의 이메일을 전송 또는 수신할 때 Amazon SES을 사용할 경우 먼저 해당 도메인의 소유 사실을 증명해야 합니다. Amazon SES의 도메인 확인 절차를 시작하고 DNS 서버에 TXT 레코드를 게시하는 과정을 포함하는 확인 절차는 다음(Verifying domains in Amazon SES (p. 57))을 참조하십시오.

Note

Amazon SES에서 이메일 주소 하나는 확인할 수 있지만 Amazon SES를 이메일 수신에 사용하려면도메인을 확인해야 합니다.

또한 Creating receipt rules (p. 206)에서 수신 규칙을 설정할 때도 도메인 확인 절차를 시작할 수 있습니다.수신자 목록에서 미확인 수신자를 확인하고 확인 절차를 시작할 수 있습니다. 어느 경우든 Amazon SES 도메인 확인 TXT 레코드 (p. 61)의 설명을 따라 DNS 서버에 TXT 레코드를 게시하여 도메인 확인 절차를 완료해야 합니다.

Amazon SES 콘솔이나 Amazon SES GetIdentityVerificationAttributes API를 사용하여 EmailAddress Identities(이메일 주소 자격 증명) 또는 Domain Identities(도메인 자격 증명) 목록에서 이메일 주소또는 도메인의 상태를 살펴봄으로써 확인된 이메일 주소 또는 도메인임을 알 수 있습니다.

Publishing an MX record for Amazon SES emailreceivingA mail exchanger 기록(MX record)는 도메인에 전송된 이메일을 수락할 수 있는 메일 서버를 지정하는 구성입니다.

Amazon SES가 수신 이메일을 관리하도록 하려면 도메인의 DNS 구성에 MX 레코드를 추가해야 합니다. 생성한 MX 레코드는 Amazon SES를 사용하는 AWS 리전에 대한 이메일을 수신하는 엔드포인트를 참조합니다. 예를 들어, 미국 서부(오레곤) 지역은 inbound-smtp.us-west-2.amazonaws.com. 전체 끝점의 전체 목록은 다음을 참조하십시오. Amazon SES regions and endpoints (p. 432).

Note

Amazon SES에서 이메일을 수신하는 엔드포인트는 IMAP 또는 POP3 이메일 서버가 아닙니다. 이러한 URL은 이메일 클라이언트의 수신되는 메일 서버로 사용할 수 없습니다.이메일 클라이언트를 사용하여 이메일을 전송하고 수신할 수 있는 해결 방법이 필요한 경우Amazon WorkMail 사용을 고려해 보십시오.

다음 절차에는 MX 레코드를 생성하기 위한 일반적인 단계가 포함되어 있습니다. MX 레코드 생성하는 구체적인 절차는 DNS 또는 호스팅 공급자에 따라 다릅니다. 도메인에 대한 DNS 구성에 MX 레코드를 추가하는것에 관한 정보는 공급자의 설명서를 참조하십시오.

Note

다음 절차를 완료하려면 도메인의 DNS 레코드를 수정할 수 있어야 합니다. 도메인의 DNS 레코드에 액세스할 수 없거나 그렇게 하는 것이 불편한 경우 시스템 관리자에게 연락해 도움을 요청하십시오.

도메인의 DNS 구성에 MX 레코드를 추가하려면

1. DNS 공급자의 관리 콘솔에 로그인합니다.2. 새 MX 레코드를 생성합니다.3. MX 레코드 이름으로 도메인을 입력하고 그 뒤에 마침표를 추가합니다. 예를 들어, Amazon SES 도메인

에 전송되는 이메일을 관리하려면 example.com, 다음을 입력합니다.

example.com.

201

Page 210: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Giving permission

Note

일부 DNS 공급자는 Name(이름) 필드를 Host(호스트), Domain(도메인) 또는 Mail Domain(메일도메인)으로 지칭합니다.

4. Type(유형)으로 MX를 선택합니다.Note

일부 DNS 공급자는 Type(유형) 필드를 Record Type(레코드 유형) 또는 유사한 이름으로 지칭합니다.

5. Value(값)로 다음을 입력합니다.

10 inbound-smtp.regionInboundUrl.amazonaws.com

이전 예에서, 교체 regionInboundUrl 이메일을 수신하는 AWS 사용하는 지역 Amazon SES. 예를 들어, 미국 동부(버지니아 북부) 지역, 교체 region with us-east-1. 끝점을 수신하는 이메일 전체 목록은 다음을 참조하십시오. Amazon SES regions and endpoints (p. 432).

Note

일부 DNS 공급자의 관리 콘솔에는 별도의 레코드 Value(값) 및 레코드 Priority(우선 순위) 필드가 있습니다. 사용 중인 DNS 공급자가 여기에 해당하는 경우 Priority(우선 순위) 값으로 10을입력하고 Value(값)로 수신되는 메일 엔드포인트 URL을 입력합니다.

Instructions for creating MX records for various providers도메인의 MX 레코드를 생성하는 절차는 이용하는 DNS 공급자에 따라 다릅니다. 이 단원에는 몇몇 공통DNS 공급자의 설명서에 대한 링크가 포함되어 있습니다. 이것이 공급자의 전체 목록은 아닙니다. 공급자가아래 목록에 없더라도 Amazon SES에서 여전히 이를 사용할 수 있습니다. 이 목록에 포함되어 있다고 해서어떤 회사의 제품 또는 서비스를 승인 또는 추천하는 것은 아닙니다.

DNS/호스팅 공급자 이름 설명서 링크

Amazon Route 53 Amazon Route 53 콘솔을 사용하여 레코드 생성

GoDaddy MX 레코드 추가(외부 링크)

DreamHost MX 레코드를 변경하는 방법(외부 링크)

Cloudflare 메일 또는 MX 레코드를 편집하는 방법(외부 링크)

HostGator MX 레코드 변경 - Windows(외부 링크)

Namecheap 메일 서비스에 필요한 MX 레코드를 설정하는 방법(외부 링크)

Names.co.uk 도메인의 DNS 설정 변경(외부 링크)

Wix Wix 계정에서 MX 레코드 추가 또는 업데이트(외부링크)

Giving permissions to Amazon SES for email receivingAmazon SES이 Amazon S3 버킷에 이메일을 쓰거나 AWS KMS 키로 이메일을 암호화하거나 Lambda 함수를 호출하거나 다른 계정의 Amazon SNS 주제에 게시하려면 Amazon SES에 해당 리소스에 대한 액세스 권

202

Page 211: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Giving permission

한이 있어야 합니다. 해당 리소스에 정책을 연결해서 권한을 부여할 수 있습니다. 이 주제에서는 몇 가지 정책을 예로 들겠습니다.

Give Amazon SES permission to write to your Amazon S3 bucketAmazon S3 버킷에 적용한 경우 다음 정책은 Amazon SES에 해당 버킷에 작성할 수 있는 권한을 부여합니다. Amazon S3로 수신 이메일을 전송하는 수신 규칙을 생성하는 방법에 대한 자세한 내용은 S3action (p. 216) 단원을 참조하십시오. 정책 연결에 대한 자세한 내용은 Amazon S3 버킷, 참조 버킷 정책 및사용자 정책 사용 in the Amazon Simple Storage Service 개발자 가이드.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSESPuts", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::BUCKET-NAME/*", "Condition": { "StringEquals": { "aws:Referer": "AWSACCOUNTID" } } } ]}

Give Amazon SES permission to use your AWS KMS master keyAmazon SES이 이메일을 암호화하기 위해서는 수신 규칙을 설정할 때 지정한 AWS KMS 키에 대한 사용 권한이 있어야 합니다. 계정의 기본 마스터 키(aws/ses)를 사용하거나, 직접 생성하는 사용자 지정 마스터 키를사용할 수 있습니다. 기본 마스터 키를 사용하는 경우 Amazon SES에 사용 권한을 부여하는 절차가 필요하지 않습니다. 사용자 지정 마스터 키를 사용하는 경우 키의 정책에 설명을 추가하여 Amazon SES에 사용 권한을 부여해야 합니다.

다음 정책 설명을 키 정책에 붙여 넣어 Amazon SES이 AWS 계정을 대신해 이메일을 수신할 때 AmazonSES이 사용자 지정 마스터 키를 사용할 수 있도록 허가하십시오.

{ "Sid": "AllowSESToEncryptMessagesBelongingToThisAccount", "Effect": "Allow", "Principal": { "Service":"ses.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*"}

Note

Amazon SES에서는 Amazon S3 멀티파트 업로드 API를 사용하여 대용량 메시지(5MB 이상)를Amazon S3 버킷에 보냅니다. AWS KMS를 사용하여 암호화된 메시지를 Amazon S3 버킷에 보낼때 5MB가 넘는 메시지를 수신할 경우 이전 예제의 문 대신 다음 정책 설명을 사용해야 합니다.

203

Page 212: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Giving permission

{ "Sid": "AllowSESToEncryptMessagesBelongingToThisAccount", "Effect": "Allow", "Principal": { "Service":"ses.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*"}

다중 부품 업로드에 대한 자세한 내용은 Amazon S3, 참조: 다중 부품 업로드 API 및 권한 in the AmazonSimple Storage Service 개발자 가이드. 정책 연결에 대한 자세한 내용은 AWS KMS 키, 참조 주요 정책 사용AWS KMS in the AWS Key Management Service Developer Guide.

Give Amazon SES permission to invoke your Lambda functionAmazon SES에 Lambda 함수 호출 권한을 부여하려면 수신 규칙 설정 단계에서 Amazon SES 콘솔을 사용해 Lambda 함수를 구성하거나(이 경우 Amazon SES가 자동으로 필요 권한을 함수에 추가합니다) AWSLambda AddPermission API를 사용해 함수에 정책을 연결하면 됩니다. 다음 AddPermission API 호출은 Amazon SES에 Lambda 함수 호출 권한을 부여합니다. Replace AWSACCOUNTID 12자리 AWS 계정ID. 정책 연결에 대한 자세한 내용은 Lambda 기능, 참조 AWS Lambda 권한 in the AWS Lambda DeveloperGuide.

{ "Action": "lambda:InvokeFunction", "Principal": "ses.amazonaws.com", "SourceAccount": "AWSACCOUNTID", "StatementId": "GiveSESPermissionToInvokeFunction"}

Give Amazon SES permission to publish to an Amazon SNS topicthat belongs to a different AWS account사용하려는 Amazon SNS 주제의 소유자가 Amazon SES에 사용하는 AWS 계정과 동일하다면 AmazonSES에 주제 게시 권한을 부여하는 절차를 밟을 필요가 없습니다. 그러나 본인 소유가 아닌 주제에 알림을 게시하려면 Amazon SNS 콘솔 또는 API를 사용해 해당 Amazon SNS 주제에 정책을 연결해야 합니다. 다음 정책은 Amazon SES에 Amazon SNS 주제 게시 권한을 부여합니다. Replace AWSACCOUNTID 12자리 AWS 계정 ID TOPIC-NAME 이름 Amazon SNS 주제. 에 대한 정책 작성 관련 자세한 정보 Amazon SNS 주제, 인증및 액세스 제어 Amazon SNS in the Amazon Simple Notification Service 개발자 안내서.

{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-east-1:AWSACCOUNTID:TOPIC-NAME" } ]

204

Page 213: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Creating IP address filters

}

Creating IP address filters for Amazon SES emailreceivingIP 주소 필터는 특정 IP 주소 또는 특정 범위의 IP 주소에서 발신한 메일의 수락 여부를 지정할 수 있게 합니다.

Amazon SES 콘솔 또는 CreateReceiptFilter API를 사용해 IP 주소 필터를 생성할 수 있습니다.

Note

정해진 일부 IP 주소에서만 메일을 받고 싶다면 차단 목록에는 0.0.0.0/0를 입력하고, 허용 목록에는 신뢰하는 IP 주소를 입력하십시오. 이 구성은 기본적으로 모든 IP 주소를 차단하고, 명시적으로 지정하는 IP 주소에서 발신하는 메일만 허용합니다.

IP 주소 필터 생성 방법(콘솔)

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Email Receiving]에서 [IP Address Filters]를 선택합니다.3. 콘텐츠 창에서 [Create Filter]를 선택합니다.4. [Filter Name]에 해당 IP 주소 필터의 이름을 입력합니다. 이름은 64자 미만의 영숫자, 하이픈(-), 밑줄(_),

마침표(.) 문자를 포함해야 합니다. 이름은 글자 또는 숫자로 시작하고 끝나야 합니다.5. [IP Address Range]에 차단 또는 허용하고자 하는 IP 주소나 IP 주소 범위를 CIDR(Classless Inter-

Domain Routing) 표기법으로 입력합니다. 단일 IP 주소의 예는 10.0.0.1입니다. IP 주소 범위의 예는10.0.0.1/24입니다. CIDR 표기법에 대한 자세한 내용은 RFC 2317을 참조하십시오.

6. [Policy Type]에서 허용일 경우 [Allow], 차단일 경우 [Block]를 선택합니다.7. 필터 생성을 선택합니다.

CreateReceiptFilter API를 사용하여 IP 주소 필터를 생성하는 방법에 대한 자세한 내용은 AmazonSimple Email Service API Reference를 참조하십시오.

Creating a receipt rule set for Amazon SES emailreceiving수신 규칙 세트란 모든 도메인에서 수신하는 메일을 Amazon SES가 어떻게 처리해야 할지를 지정하는 일련의 수신 규칙입니다. 이메일 수신기로 Amazon SES를 사용하려면 계정에 대한 수신 규칙 세트를 생성해야합니다. 이메일 수신 프로세스에서 수신 규칙 세트가 하는 역할에 대한 자세한 내용은 다음(Email receivingconcepts (p. 191))을 참조하십시오.

한 번에 하나의 수신 규칙 세트만 활성화할 수 있습니다. 하지만 수신 규칙 세트를 여러 개 만들 수는 있습니다. 예를 들어 과거에 사용한 수신 규칙 기록을 보관하려는 경우 또는 테스트용으로 수신 규칙을 바로 변경해야 하는 경우, 수신 규칙 세트가 여러 개 있으면 유용합니다.

Note

이메일 수신 서비스로 Amazon SES을 사용하고 싶지 않다면 수신 규칙 세트를 모두 비활성화하면 됩니다. 수신 규칙 세트를 비활성화하는 방법에 대한 자세한 내용은 다음(Managing receipt rulesets (p. 218))을 참조하십시오.

205

Page 214: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Creating receipt rules

Amazon SES 콘솔 또는 API를 사용하여 수신 규칙 세트를 생성할 수 있습니다.

• Using the Amazon SES console• Receipt rules exist in receipt rule sets only, so to create a receipt rule set, you can start by creating a

receipt rule. For more information, see Creating receipt rules (p. 206). When you reach the end ofthis procedure, you can create a new receipt rule set.

• Copy an existing receipt rule set as explained in Managing receipt rule sets (p. 218).• In the left navigation pane, under Email Receiving, choose Rule Sets, and then choose Create a New

Rule Set.• Using the Amazon SES API—Use the CreateReceiptRuleSet API to create an empty receipt rule set,

as described in the Amazon Simple Email Service API Reference. Then, you can use the Amazon SESconsole or the CreateReceiptRule API to add receipt rules to it.

Creating receipt rules for Amazon SES email receiving수신 규칙을 사용하면 사용자 소유의 이메일 주소 또는 도메인으로 수신되는 이메일에 대한 Amazon SES의 처리 방법을 지정할 수 있습니다. 수신 규칙은 조건과 순서를 매긴 작업 목록으로 이루어집니다. 수신 이메일의 수신자가 수신 규칙 조건에서 지정한 수신자와 일치하면 Amazon SES가 해당 수신 규칙에서 지정한 작업을 수행합니다. 이메일 수신 프로세스에서 수신 규칙이 하는 역할에 대한 자세한 내용은 다음(Emailreceiving concepts (p. 191))을 참조하십시오.

Important

수신 규칙을 설정하려면 먼저 도메인의 유효성 여부를 확인한 후 MX 레코드를 해당 도메인에게시합니다. 도메인 확인에 대한 자세한 내용은 Verifying domains in Amazon SES (p. 57) 단원을 참조하십시오. MX 레코드 게시에 대한 자세한 내용은 the section called “Publishing an MXrecord” (p. 201) 단원을 참조하십시오.

Amazon SES 콘솔 또는 CreateReceiptRule API 작업을 사용하여 수신 규칙을 생성할 수 있습니다. 이번단원에서는 콘솔을 사용해 새로운 수신 규칙을 만드는 절차를 제공합니다. 단, 이 절차는 Amazon SES 계정에 기존 수신 규칙이 없다는 가정을 전제로 합니다.

Setting up a receipt ruleAmazon SES 콘솔 또는 CreateReceiptRule API로 규칙을 생성할 수 있습니다.

콘솔을 사용하여 수신 규칙을 생성하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Email Receiving]에서 [Rule Sets]를 선택합니다.3. [Create a Receipt Rule]을 선택합니다.4. 다음 절차를 따라 수신자를 한 명 이상 추가합니다. 종합적으로, 이러한 수령자는 condition. 영수증 규칙

에 따라 최대 100명의 수령인이 있을 수 있습니다.

a. [Recipients] 아래에서 수신 규칙을 설정할 수신 이메일 주소 또는 도메인을 지정합니다. 다음 표는주소를 사용합니다. [email protected] 받는 사람을 지정하는 방법을 보여 줍니다.

다음을 수행하려는 경우 지정할 수신자 참고

특정 이메일 주소와 일치시키는 경우

[email protected] 또한 레이블이 포함된 주소(예:[email protected] [email protected]) ). 하

206

Page 215: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Creating receipt rules

다음을 수행하려는 경우 지정할 수신자 참고지만 단일 레이블이 포함된 주소 하나를 지정하는 경우에는해당하는 특정 주소만 일치시킵니다.

하위 도메인의 주소를 제외한도메인 내 모든 주소와 일치시키는 경우

example.com  

상위 도메인의 주소를 제외한특정 하위 도메인 내 모든 주소와 일치시키는 경우

subdomain.example.com  

상위 도메인의 주소를 제외한모든 하위 도메인 내 모든 주소와 일치시키는 경우

.example.com 도메인 이름 앞에 마침표(.)를입력합니다.

도메인 내 모든 주소와 모든 하위 도메인 내 모든 주소를 일치시키는 경우

example.com

.example.com

하나는 도메인 이름으로, 나머지 하나는 도메인 이름 앞에 마침표(.)를 입력하여 수신자 2개를 따로 생성합니다.

확인된 모든 도메인 내 모든 수신자를 일치시키는 경우

없음 수신자 필드를 비워둡니다.

     

Important

다수의 Amazon SES 계정이 공통 도메인을 통해 이메일을 수신하는 경우(예: 한 회사의 여러 팀들이 각각 별도의 Amazon SES 계정을 가지고 있는 경우) Amazon SES는 각 계정마다 일치하는 수신 규칙을 모두 동시에 처리합니다. 이때 하나의 계정이 반송 메일을 생성하는 반면 다른 계정이 이메일을 허용하는 상황이 발생할 수도 있습니다.따라서 조직 내에서 Amazon SES를 사용하는 다른 팀과 협의하여 각 계정마다 고유한 수신 규칙을 사용하고 이러한 규칙이 서로 겹치지 않도록 하는 것이 바람직합니다. 이러한 상황에서는 그룹 또는 팀에 고유한 이메일 주소나 하위 도메인만 사용하도록 수신 규칙을 구성하는 것이 가장 좋습니다.

b. [Add Recipient]를 선택합니다.c. 추가할 수신자마다 a~b단계를 반복합니다. 수신자 추가를 마치면 [Next Step]을 선택합니다.

5. 다음 절차를 따라 수신 규칙에 작업을 하나 이상 추가합니다.

a. 메뉴에서 작업을 선택합니다.b. 작업 설정을 선택합니다. 각 작업의 옵션에 대한 자세한 내용은 다음(Action options (p. 208))을 참

조하십시오.c. 필요에 따라 작업을 더 추가한 다음 [Next Step]을 선택합니다.

6. [Rule Details]에서 다음 절차를 따라 설정을 선택합니다.

a. [Rule Name] 란에 해당 수신 규칙의 이름을 입력합니다. 이름은 64자 미만의 영숫자, 하이픈(-), 밑줄(_), 마침표(.) 문자를 포함해야 합니다. 이름은 글자 또는 숫자로 시작하고 끝나야 합니다.

b. 수신 규칙을 활성화하려면 [Enabled] 옵션을 선택하십시오.c. Amazon SES이 TLS(전송 계층 보안) 암호화 연결을 통해 전송되지 않은 이메일을 모두 거부하려면

[TLS]를 선택합니다.d. Amazon SES이 수신 이메일에 대해 스팸 및 바이러스 검사를 수행하려면 [Enable Spam and Virus

Scanning]을 선택합니다.

207

Page 216: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Creating receipt rules

7. [Rule Set] 항목에서는 기존 수신 규칙 세트를 선택하거나 [Create New Rule Set]을 클릭합니다.8. [Rule Position] 항목에서는 해당 수신 규칙을 순서가 매겨진 수신 규칙 목록에서 어디에 넣을지 선택합

니다. 수신 규칙은 순서에 따라 평가됩니다.9. [Next Step]을 선택하고 [Create Rule]을 선택합니다.

CreateReceiptRule API를 사용하여 규칙을 생성하는 방법에 대한 자세한 내용은 Amazon Simple EmailService API Reference를 참조하십시오.

Action optionsAmazon SES 이메일 수신을 위한 수신 규칙은 순서를 매긴 작업 목록을 포함합니다. 수신 규칙 설정 절차는다음(Creating receipt rules for Amazon SES email receiving (p. 206))을 참조하십시오. 이 섹션에서는 작업 유형에 따른 구체적인 옵션에 대해 설명합니다.

작업의 유형은 다음과 같습니다.

• Add header action (p. 208)• Bounce action (p. 208)• Lambda action (p. 209)• S3 action (p. 216)• SNS action (p. 217)• Stop action (p. 217)• WorkMail action (p. 218)

Add header action[Add Header] 작업은 수신 이메일에 사용자 지정 헤더를 추가합니다. 이 작업은 보통 다른 작업과 연계해서사용합니다. 이 작업의 옵션은 다음과 같습니다.

• Header name—The name of the header to add. It must be between 1 and 50 characters, inclusive, andconsist of alphanumeric (a-z, A-Z, 0-9) characters and dashes only.

• Header value—The value of the header to add. It must be less than 2048 characters, and must notcontain newline characters ("\r" or "\n").

Bounce action[Bounce] 작업은 발신자에게 반송 응답을 돌려보내 이메일 수신을 거부하고 설정에 따라 사용자에게Amazon SNS 알림을 전송합니다. 이 작업의 옵션은 다음과 같습니다.

• SMTP Reply Code—The SMTP reply code, as defined by RFC 5321.• SMTP Status Code—The SMTP enhanced status code, as defined by RFC 3463.• Message—Human-readable text to include in the bounce email.• Reply Sender—The email address of the sender of the bounced email. This is the address from which

the bounce email will be sent. It must be verified with Amazon SES.• SNS Topic—The name or ARN of the Amazon SNS topic to optionally notify when a bounce email is

sent. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic. Youcan also create an Amazon SNS topic when you set up your action by choosing Create SNS Topic. Formore information about Amazon SNS topics, see the Amazon Simple Notification Service 개발자 안내서.

Note

The Amazon SNS topic you choose must be in the same AWS region as the Amazon SESendpoint you use to receive email.

208

Page 217: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Creating receipt rules

이 필드에는 직접 값을 입력할 수도 있고, 반송 이유에 따라 SMTP 응답 코드, SMTP 상태 코드, 메시지를 자동으로 채워 넣는 템플릿을 선택할 수도 있습니다. 다음의 템플릿을 사용할 수 있습니다.

• Mailbox Does Not Exist— SMTP Reply Code = 550, SMTP Status Code = 5.1.1• Message Too Large— SMTP Reply Code = 552, SMTP Status Code = 5.3.4• Mailbox Full— SMTP Reply Code = 552, SMTP Status Code = 5.2.2• Message Content Rejected— SMTP Reply Code = 500, SMTP Status Code = 5.6.1• Unknown Failure— SMTP Reply Code = 554, SMTP Status Code = 5.0.0• Temporary Failure— SMTP Reply Code = 450, SMTP Status Code = 4.0.0

필드에 사용자 지정 값을 입력하여 사용할 수 있는 추가 반송 코드는 RFC 3463을 참조하십시오.

Lambda action

The Lambda 행동 강령 Lambda 기능을 통해 Amazon SNS. 이 작업의 옵션은 다음과 같습니다.

• Lambda function—The ARN of the Lambda function. An example of a Lambda function ARN isarn:aws:lambda:us-west-2:account-id:function:MyFunction. For information about AWS Lambda, see theAWS Lambda Developer Guide.

• Invocation type—The invocation type of the Lambda function. An invocation type of RequestResponsemeans that the execution of the function will immediately result in a response, and a value of Eventmeans that the function will be invoked asynchronously. We recommend that you use Event invocationtype unless synchronous execution is absolutely necessary for your use case.

Note

There is a 30-second timeout on RequestResponse invocations.

For information about AWS Lambda invocation types, see the AWS Lambda Developer Guide.• SNS Topic—The name or ARN of the Amazon SNS topic to notify when the specified Lambda function is

triggered. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic.You can also create an Amazon SNS topic when you set up your action by choosing Create SNS Topic.For more information about Amazon SNS topics, see the Amazon Simple Notification Service 개발자 안내서.

Note

The Amazon SNS topic you choose must be in the same AWS region as the Amazon SESendpoint you use to receive email.

Writing your Lambda function

이메일을 처리할 때 (Event 호출 유형을 사용해) Lambda 함수를 비동기식으로 호출할 수 있습니다.Lambda 함수에 전달하는 이벤트 객체는 인바운드 이메일 이벤트에 대한 메타데이터를 담고 있습니다. 이 메타데이터를 사용해 Amazon S3 버킷의 메시지 콘텐츠에 액세스할 수도 있습니다.

메일 흐름을 실제로 제어하려면 Lambda 기능을 동기식으로 호출해야 합니다(즉, RequestResponse 호출 유형) Lambda 기능은 callback 두 가지 인수를 포함하는 방법: 첫 번째 인수는 null두 번째 인수는disposition 다음 중 하나로 설정된 속성 STOP_RULE, STOP_RULE_SET, 또는 CONTINUE. 두 번째 인수가 null 유효하지 않은 경우 disposition 속성, 메일 흐름이 계속되고 추가 조치 및 규칙이 처리되고,CONTINUE.

예를 들어 Lambda 함수 코드의 끝에 다음 줄을 추가하면 수신 규칙 세트 처리를 중단시킬 수 있습니다.

callback( null, { "disposition" : "STOP_RULE_SET" });

209

Page 218: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Creating receipt rules

AWS Lambda 코드 샘플은 다음(Lambda function examples (p. 213))을 참조하십시오. 고급 사용 사례 예시는 다음(Use case examples (p. 210))을 참조하십시오.

Input format

Amazon SES는 JSON 형식으로 Lambda 함수에 정보를 전달합니다. 최상위 물체에 포함된 Records 스토리지, 속성 및 eventSource, eventVersion, 그리고 ses. ses 개체에 포함된 receipt and mail 객체와동일한 형식으로 Amazon SNS 알림 설명 Notification contents (p. 225).

Note

데이터는 Amazon SES 패스 Lambda 에는 메일 헤더 뿐만 아니라 메시지 관련 메타데이터가 포함됩니다. 하지만 메시지 본문이 포함되어 있지 않습니다.

다음은 Amazon SES가 Lambda 함수에 제공하는 입력 데이터의 구조를 세부적으로 나타낸 것입니다.

{ "Records": [ { "eventSource": "aws:ses", "eventVersion": "1.0", "ses": { "receipt": { <same contents as SNS notification> }, "mail": { <same contents as SNS notification> } } } ]}

Return values

Lambda 함수는 다음 값 중 하나를 반환하여 메일 흐름을 제어합니다.

• STOP_RULE—No further actions in the current receipt rule will be processed, but further receipt rules canbe processed.

• STOP_RULE_SET—No further actions or receipt rules will be processed.• CONTINUE or any other invalid value—This means that further actions and receipt rules can be

processed.

Use case examples

다음은 Lambda 함수의 처리 결과로 메일 흐름을 제어하기 위해 설정할 수 있는 규칙의 예시입니다. 설명을위해서 이 예시에서는 대부분 S3 작업을 처리 결과로 사용합니다.

Use case 1: Drop spam across all domains

이 예시는 사용자의 모든 도메인에서 스팸을 거부하는 전역 규칙입니다. 규칙 2와 규칙 3은 모든 도메인에서스팸을 거부한 후 도메인별 규칙을 적용할 수 있음을 보여 주기 위해 포함했습니다.

Rule 1

Recipient list: 비어 있습니다. 따라서 이 규칙은 확인 절차를 마친 모든 도메인의 모든 수신자에게 적용됩니다.

Actions

210

Page 219: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Creating receipt rules

1. 이메일이 스팸인 경우 STOP_RULE_SET를 반환하는 Lambda 작업(동기식). 그렇지 않으면 CONTINUE. 예보기 Lambda 스팸 제거 기능 Lambda function examples (p. 213).

Rule 2

Recipient list: 예1.com

Actions

1. 아무 작업이나.

Rule 3

Recipient list: example2.com

Actions

1. 아무 작업이나.

Use case 2: Bounce spam across all domains

이 예시는 모든 도메인에서 스팸을 반송하는 전역 규칙을 보여 줍니다. 규칙 2와 규칙 3은 모든 도메인에서스팸을 반송한 후 도메인별 규칙을 적용할 수 있음을 보여 주기 위해 포함했습니다.

Rule 1

Recipient list: 비어 있습니다. 따라서 이 규칙은 확인 절차를 마친 모든 도메인의 모든 수신자에게 적용됩니다.

Actions

1. 이메일이 스팸인 경우 CONTINUE를 반환하는 Lambda 작업(동기식). 그렇지 않은 경우에는STOP_RULE를 반환합니다.

2. 바운스 액션("500 5.6.1. 메시지 내용이 거부되었습니다").3. 중지 작업.

Rule 2

Recipient list: 예1.com

Actions

1. 아무 작업이나.

Rule 3

Recipient list: example2.com

Actions

1. 아무 작업이나.

Use case 3: Apply the most specific rule

이 예시에서는 중지 작업을 사용해 이메일이 다수의 규칙으로 처리되는 것을 방지합니다. 이 예시에서는 특정 주소에 대한 규칙이 하나 있고, 도메인 내의 모든 이메일 주소에 대한 규칙도 하나 있습니다. 중지 작업을

211

Page 220: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Creating receipt rules

사용하면 메시지가 특정 이메일 주소에 대한 규칙과 일치할 경우 도메인 전체에 대한 전반적인 규칙으로는처리하지 않습니다.

Rule 1

Recipient list: example com

Actions

1. Lambda 작업(비동기식).2. 중지 작업.

Rule 2

Recipient list: example.com

Actions

1. 아무 작업이나.

Use case 4: Log mail events to CloudWatch

이 예시에서는 이메일 수신 시 메일을 Amazon SES에 저장하기에 앞서, 시스템을 통과하는 모든 메일에 대해 감사 로그를 작성하는 방법을 보여 줍니다.

Rule 1

Recipient list: example.com

Actions

1. 이벤트 객체를 CloudWatch 로그에 기록하는 Lambda 작업(비동기식). Lambda 함수의 예는 Lambdafunction examples (p. 213) CloudWatch 로그에서 확인할 수 있습니다.

2. S3 작업

Use case 5: Drops mail that fails DKIM

이 예시는 수신 이메일을 모두 Amazon S3 버킷에 저장하되, 특정 이메일 주소로 가며 DKIM 인증을 통과하는 메일만 사용자의 자동화 이메일 애플리케이션으로 전송하는 방법을 보여 줍니다.

Rule 1

Recipient list: example.com

Actions

1. S3 작업2. 메시지가 DKIM 인증을 통과하지 못한 경우 STOP_RULE_SET를 반환하는 Lambda 작업(동기식). 그렇지

않은 경우에는 CONTINUE를 반환합니다.

Rule 2

Recipient list: [email protected]

Actions

212

Page 221: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Creating receipt rules

1. 자동화 애플리케이션을 트리거하는 Lambda 작업(비동기식).

Use case 6: Filters mail based on subject line

이 예시에서는 도메인의 수신 메일 중 제목에 '할인'이 들어간 메일을 모두 거부한 다음, 자동화 시스템으로가야 할 메일을 따로 처리하고, 도메인의 나머지 수신자에게 가야 할 메일을 처리합니다.

Rule 1

Recipient list: example.com

Actions

1. 제목에 '할인'이라는 단어가 들어간 경우 STOP_RULE_SET를 반환하는 Lambda 작업(동기식). 그렇지 않은 경우에는 CONTINUE를 반환합니다.

Rule 2

Recipient list: [email protected]

Actions

1. 버킷 1에 대한 S3 작업.2. 자동화 애플리케이션을 트리거하는 Lambda 작업(비동기식).3. 중지 작업.

Rule 3

Recipient list: example.com

Actions

1. 버킷 2에 대한 S3 작업.2. 도메인의 나머지 수신자에게 보낼 이메일을 처리하는 Lambda 작업(비동기식).

Lambda function examples

이 주제는 메일 흐름을 제어하는 Lambda 함수의 예시를 소개합니다.

Example 1: Drop spam

이 예제는 스팸 지표를 하나 이상 가진 메시지에 대한 처리를 중단합니다.

exports.handler = function(event, context, callback) { console.log('Spam filter'); var sesNotification = event.Records[0].ses; console.log("SES Notification:\n", JSON.stringify(sesNotification, null, 2)); // Check if any spam check failed if (sesNotification.receipt.spfVerdict.status === 'FAIL' || sesNotification.receipt.dkimVerdict.status === 'FAIL' || sesNotification.receipt.spamVerdict.status === 'FAIL' || sesNotification.receipt.virusVerdict.status === 'FAIL') { console.log('Dropping spam'); // Stop processing rule set, dropping message callback(null, {'disposition':'STOP_RULE_SET'});

213

Page 222: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Creating receipt rules

} else { callback(null, null); }};

Example 2: Continue if a particular header is found

이 예제는 이메일이 특정 헤더 값을 포함하는 경우에만 현재 규칙을 계속 처리합니다.

exports.handler = function(event, context, callback) { console.log('Header matcher'); var sesNotification = event.Records[0].ses; console.log("SES Notification:\n", JSON.stringify(sesNotification, null, 2)); // Iterate over the headers for (var index in sesNotification.mail.headers) { var header = sesNotification.mail.headers[index]; // Examine the header values if (header.name === 'X-Header' && header.value === 'X-Value') { console.log('Found header with value.'); callback(null, null); return; } } // Stop processing the rule if the header value wasn't found callback(null, {'disposition':'STOP_RULE'}); };

Example 3: Retrieve email from Amazon S3

이 예제는 Amazon S3에서 이메일 원본을 가져와서 처리합니다.

Note

그러려면 우선 S3 작업을 사용하는 Amazon S3에 이메일을 써야 합니다.

var AWS = require('aws-sdk');var s3 = new AWS.S3(); var bucketName = '<YOUR BUCKET GOES HERE>'; exports.handler = function(event, context, callback) { console.log('Process email'); var sesNotification = event.Records[0].ses; console.log("SES Notification:\n", JSON.stringify(sesNotification, null, 2)); // Retrieve the email from your bucket s3.getObject({ Bucket: bucketName, Key: sesNotification.mail.messageId }, function(err, data) { if (err) { console.log(err, err.stack); callback(err); } else { console.log("Raw email:\n" + data.Body); // Custom email processing goes here

214

Page 223: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Creating receipt rules

callback(null, null); } });};

Example 4: Bounce messages that fail DMARC authentication

이 예제에서는 수신 이메일이 DMARC 인증에 실패한 경우 반송 메일 메시지를 보냅니다.Note

이 예제를 사용하는 경우 emailDomain 환경 변수의 값을 이메일 수신 도메인으로 설정합니다.

'use strict';

const AWS = require('aws-sdk');

// Assign the emailDomain environment variable to a constant.const emailDomain = process.env.emailDomain;

exports.handler = (event, context, callback) => { console.log('Spam filter starting');

const sesNotification = event.Records[0].ses; const messageId = sesNotification.mail.messageId; const receipt = sesNotification.receipt;

console.log('Processing message:', messageId);

// If DMARC verdict is FAIL and the sending domain's policy is REJECT // (p=reject), bounce the email. if (receipt.dmarcVerdict.status === 'FAIL' && receipt.dmarcPolicy.status === 'REJECT') { // The values that make up the body of the bounce message. const sendBounceParams = { BounceSender: `mailer-daemon@${emailDomain}`, OriginalMessageId: messageId, MessageDsn: { ReportingMta: `dns; ${emailDomain}`, ArrivalDate: new Date(), ExtensionFields: [], }, // Include custom text explaining why the email was bounced. Explanation: "Unauthenticated email is not accepted due to the sending domain's DMARC policy.", BouncedRecipientInfoList: receipt.recipients.map((recipient) => ({ Recipient: recipient, // Bounce with 550 5.6.1 Message content rejected BounceType: 'ContentRejected', })), };

console.log('Bouncing message with parameters:'); console.log(JSON.stringify(sendBounceParams, null, 2)); // Try to send the bounce. new AWS.SES().sendBounce(sendBounceParams, (err, data) => { // If something goes wrong, log the issue. if (err) { console.log(`An error occurred while sending bounce for message: ${messageId}`, err); callback(err); // Otherwise, log the message ID for the bounce email. } else { console.log(`Bounce for message ${messageId} sent, bounce message ID: ${data.MessageId}`);

215

Page 224: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Creating receipt rules

// Stop processing additional receipt rules in the rule set. callback(null, { disposition: 'stop_rule_set', }); } }); // If the DMARC verdict is anything else (PASS, QUARANTINE or GRAY), accept // the message and process remaining receipt rules in the rule set. } else { console.log('Accepting message:', messageId); callback(); }};

S3 action

[S3] 작업은 메일을 Amazon S3 버킷으로 전송하고, 설정에 따라 사용자에게 Amazon SNS 알림을 전송합니다. 이 작업의 옵션은 다음과 같습니다.

• S3 Bucket—The name of the Amazon S3 bucket to which to save received emails. You can also createa new Amazon S3 bucket when you set up your action by choosing Create S3 Bucket. Amazon SESprovides you the raw, unmodified email, which is typically in Multipurpose Internet Mail Extensions(MIME) format. For more information about MIME format, see RFC 2045.

Important

When you save your emails to an Amazon S3 bucket, the maximum email size (includingheaders) is 30 MB.

• Object Key Prefix—A key name prefix to use within the Amazon S3 bucket. Key name prefixes enableyou to organize your Amazon S3 bucket in a folder structure. For example, if you use Email as yourObject Key Prefix, your emails will appear in your Amazon S3 bucket in a folder named Email.

• KMS Key (if "Encrypt Message" is selected in the Amazon SES console)—The customer master key thatAmazon SES should use to encrypt your emails before saving them to the Amazon S3 bucket. You canuse the default master key or a custom master key you created in AWS KMS.

Note

The master key you choose must be in the same AWS region as the Amazon SES endpoint youuse to receive email.

• To use the default master key, choose aws/ses when you set up the receipt rule in the AmazonSES console. If you use the Amazon SES API, you can specify the default master key by providingan ARN in the form of arn:aws:kms:REGION:AWSACCOUNTID:alias/aws/ses. For example,if your AWS account ID is 123456789012 and you want to use the default master key in the미국 서부(오레곤) region, the ARN of the default master key would be arn:aws:kms:us-west-2:123456789012:alias/aws/ses. If you use the default master key, you don't need toperform any extra steps to give Amazon SES permission to use the key.

• To use a custom master key you created in AWS KMS, provide the ARN of the master key andensure that you add a statement to your key's policy to give Amazon SES permission to use it.For more information about giving permissions, see Giving permissions to Amazon SES for emailreceiving (p. 202).

For more information about using AWS KMS with Amazon SES, see the AWS Key Management ServiceDeveloper Guide. If you do not specify a master key in the console or API, Amazon SES will not encryptyour emails.

Important

Your mail is encrypted by Amazon SES using the Amazon S3 encryption client before themail is submitted to Amazon S3 for storage. It is not encrypted using Amazon S3 server-side

216

Page 225: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Creating receipt rules

encryption. This means that you must use the Amazon S3 encryption client to decrypt the emailafter retrieving it from Amazon S3, as the service has no access to use your AWS KMS keys fordecryption. This encryption client is available in the AWS SDK for Java and the Ruby용 AWSSDK. For more information about client-side encryption using AWS KMS master keys, see theAmazon Simple Storage Service 개발자 가이드.

• SNS Topic—The name or ARN of the Amazon SNS topic to notify when an email is saved to the AmazonS3 bucket. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic.You can also create an Amazon SNS topic when you set up your action by choosing Create SNS Topic.For more information about Amazon SNS topics, see the Amazon Simple Notification Service 개발자 안내서.

Note

The Amazon SNS topic you choose must be in the same AWS region as the Amazon SESendpoint you use to receive email.

SNS action

[SNS] 작업은 Amazon SNS 알림을 사용해 메일을 게시합니다. 이때 알림은 이메일 콘텐츠 전체를 포함합니다. 이 작업의 옵션은 다음과 같습니다.

• SNS Topic—The name or ARN of the Amazon SNS topic to which to publish the emails. The AmazonSNS notifications will contain a raw, unmodified copy of the email, which is typically in MultipurposeInternet Mail Extensions (MIME) format. For more information about MIME format, see RFC 2045.

Important

If you choose to receive your emails through Amazon SNS notifications, the maximum emailsize (including headers) is 150 KB. Larger emails will bounce. If you anticipate emails largerthan this size, save the emails to an Amazon S3 bucket instead.

An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic. You canalso create an Amazon SNS topic when you set up your action by choosing Create SNS Topic. For moreinformation about Amazon SNS topics, see the Amazon Simple Notification Service 개발자 안내서.

Note

The Amazon SNS topic you choose must be in the same AWS region as the Amazon SESendpoint you use to receive email.

• Encoding—The encoding to use for the email within the Amazon SNS notification. UTF-8 is easier touse, but may not preserve all special characters when a message was encoded with a different encodingformat. Base64 preserves all special characters. For information about UTF-8 and Base64, see RFC3629 and RFC 4648, respectively.

Stop action

[Stop] 작업은 해당 수신 규칙 세트의 평가를 중단하고, 설정에 따라 사용자에게 Amazon SNS 알림을 전송합니다. 이 작업의 옵션은 다음과 같습니다.

• SNS Topic—The name or ARN of the Amazon SNS topic to notify when the Stop action is performed.An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic. You canalso create an Amazon SNS topic when you set up your action by choosing Create SNS Topic. For moreinformation about Amazon SNS topics, see the Amazon Simple Notification Service 개발자 안내서.

Note

The Amazon SNS topic you choose must be in the same AWS region as the Amazon SESendpoint you use to receive email.

217

Page 226: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Managing email receiving

WorkMail action

The WorkMail 동작이 Amazon WorkMail. Amazon WorkMail이 모든 이메일 처리를 수행하는 경우 AmazonWorkMail에서 설정이 자동으로 처리되므로 일반적으로 이 작업을 직접 사용할 필요는 없습니다. 이 작업의옵션은 다음과 같습니다.

• Organization ARN—The ARN of the Amazon WorkMail organization. Amazon WorkMail organizationARNs are in the formarn:aws:workmail:region:account_ID:organization/organization_ID, where:• region is the region in which you are using Amazon SES and Amazon WorkMail. (You must use them

from the same region.) An example is us-west-2.• account_ID is the AWS account ID. You can find your AWS account ID on the Account page of the

AWS Management Console.• organization_ID is a unique identifier that Amazon WorkMail generates when you create an

organization. You can find the organization ID in the Amazon WorkMail console on the OrganizationSettings page of your organization.

An example of a complete Amazon WorkMail organization ARN is arn:aws:workmail:us-west-2:123456789012:organization/m-68755160c4cb4e29a2b2f8fb58f359d7. For information aboutAmazon WorkMail organizations, see the Amazon WorkMail Administrator Guide.

• SNS Topic—The name or ARN of the Amazon SNS topic to notify when the Amazon WorkMail action istaken. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic. Youcan also create an Amazon SNS topic when you set up your action by choosing Create SNS Topic. Formore information about Amazon SNS topics, see the Amazon Simple Notification Service 개발자 안내서.

Note

The Amazon SNS topic you choose must be in the same AWS region as the Amazon SESendpoint you use to receive email.

Managing email receiving in Amazon SES수신 규칙 세트, 수신 규칙, IP 주소 필터를 생성한 후에는 Amazon SES 콘솔 또는 API를 사용해 편집, 삭제등의 작업을 수행할 수 있습니다. 또한 수신한 Amazon SNS 알림을 검토하고 Amazon CloudWatch로 오류지표를 확인할 수 있습니다.

이 단원의 주제:• Managing receipt rule sets for Amazon SES email receiving (p. 218)• Managing receipt rules for Amazon SES email receiving (p. 221)• Managing IP address filters for Amazon SES email receiving (p. 223)• Viewing metrics for Amazon SES email receiving (p. 223)• Using notifications for Amazon SES email receiving (p. 224)

Managing receipt rule sets for Amazon SES emailreceiving에 설명된 대로 영수증 규칙 세트를 만든 후 Creating a receipt rule set (p. 205), 필요에 따라 업데이트할 수있습니다. 영수증 규칙 집합을 편집하는 것은 일반적으로 다음과 같이 개별 영수증 규칙을 편집하는 것으로구성됩니다. Managing receipt rules (p. 221)영수증 규칙 세트를 삭제, 활성화, 비활성화 및 복사할 수도 있습니다. 또한 영수증 규칙 집합에서 영수증 규칙을 재주문할 수 있습니다. 이러한 작업은 다음 섹션에 설명되어 있습니다.

218

Page 227: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Managing receipt rule sets

이 단원의 주제:• Deleting a receipt rule set (p. 219)• Activating and disabling a receipt rule set (p. 219)• Copying a receipt rule set (p. 220)• Reordering receipt rules (p. 220)

Deleting a receipt rule set귀하는 Amazon SES 콘솔 또는 DeleteReceiptRuleSet 영수증 규칙 세트를 삭제할 API.

Note

현재 활성화된 영수증 규칙 집합을 삭제할 수 없습니다.

영수증 규칙 세트(콘솔)를 삭제하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Email Receiving]에서 [Rule Sets]를 선택합니다.3. 에서 비활성 규칙 세트 목록에서 삭제할 영수증 규칙 세트를 선택합니다.4. 에서 조치 메뉴, 선택 삭제을(를) 선택한 다음 영수증 규칙 세트를 삭제할지 확인합니다.

사용 방법에 대한 정보는 DeleteReceiptRuleSet 영수증 규칙 세트를 삭제하려면 API를 참조하십시오.Amazon Simple Email Service API Reference.

Activating and disabling a receipt rule set각 영수증 규칙 세트는 활성 또는 비활성화된 상태 중 하나에 속합니다. 영수증 규칙 세트 중 하나만 지정된시간에 활성화할 수 있습니다. 비활성 영수증 규칙 세트는 활성 영수증 규칙 세트를 변경하려는 경우에 유용할 수 있지만 업데이트가 올바른지 확인할 때까지 이러한 변경 사항이 활성화되지 않도록 합니다. 이 경우,활성 영수증 규칙 세트를 복사하고 복사된 비활성화된 영수증 규칙 세트를 변경할 수 있습니다. 변경 사항에만족하면 복사한 영수증 규칙 세트를 활성화할 수 있습니다. 영수증 규칙 세트를 활성화하면 다른 모든 영수증 규칙 세트가 자동으로 비활성화됩니다.

Note

다음을 통한 이메일 수신을 비활성화하려면 Amazon SES 모든 영수증 규칙 세트를 모두 비활성화합니다.

귀하는 Amazon SES 콘솔 또는 SetActiveReceiptRuleSet 어떤 규칙 세트가 활성 상태인지 API를 제어합니다.

비활성화된 영수증 규칙 세트(콘솔)를 활성화하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Email Receiving]에서 [Rule Sets]를 선택합니다.3. 에서 비활성 규칙 세트 목록에서 활성화할 영수증 규칙 세트를 선택합니다.4. 선택 활성 규칙 집합으로 설정.

활성 영수증 규칙 세트(콘솔)를 비활성화하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Email Receiving]에서 [Rule Sets]를 선택합니다.

219

Page 228: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Managing receipt rule sets

3. 아래 활성 규칙 세트, 선택 활성 규칙 세트 비활성화을(를) 선택한 다음 영수증 규칙 세트를 비활성화할지 확인합니다.

사용 방법에 대한 정보는 SetActiveReceiptRuleSet 규칙 세트를 활성화하거나 비활성화하려면 API를참조하십시오. Amazon Simple Email Service API Reference.

Copying a receipt rule set귀하는 Amazon SES 콘솔 또는 CloneReceiptRuleSet 영수증 규칙 세트를 복사할 API. 귀하가 AmazonSES 콘솔은 복사할 영수증 규칙 세트가 활성 또는 비활성화되는지에 따라 약간 다릅니다.

활성 영수증 규칙 세트(콘솔)를 복사하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Email Receiving]에서 [Rule Sets]를 선택합니다.3. 컨텐츠 창에서 활성 규칙 세트 복사.4. 에서 규칙 세트 복사 대화 상자에서 복사한 영수증 규칙 세트에 할당할 이름을 입력합니다.5. 선택 규칙 세트 복사. 복사한 영수증 규칙 세트가 비활성 규칙 세트 목록.

비활성화된 영수증 규칙 세트(콘솔)를 복사하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Email Receiving]에서 [Rule Sets]를 선택합니다.3. 에서 비활성 규칙 세트 목록에서 복사할 영수증 규칙 세트를 선택합니다.4. [Actions] 메뉴에서 [Copy]를 선택합니다.5. 에서 규칙 세트 복사 대화 상자에서 복사한 영수증 규칙 세트에 할당할 이름을 입력합니다.6. 선택 규칙 세트 복사. 복사한 영수증 규칙 세트가 비활성 규칙 세트 목록.

사용 방법에 대한 정보는 CloneReceiptRuleSet 영수증 규칙 세트를 복사하려면 API를 참조하십시오.Amazon Simple Email Service API Reference.

Reordering receipt rules귀하는 Amazon SES 콘솔 또는 ReorderReceiptRuleSet 영수증 규칙 세트 에서 영수증 규칙을 재주문하려면 API를 선택합니다. 귀하가 Amazon SES 콘솔은 영수증 규칙 세트가 활성 또는 비활성화되었는지에 따라 약간 다릅니다.

활성 영수증 규칙 세트(콘솔)에서 영수증 규칙을 재주문하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Email Receiving]에서 [Rule Sets]를 선택합니다.3. 컨텐츠 창에서 활성 규칙 세트 보기.4. 선택 재주문 규칙.5. 영수증 규칙 이름 옆에 있는 위쪽 및 아래쪽 화살표를 사용하여 영수증 규칙을 재주문한 다음 주문 저장.

비활성화 영수증 규칙 세트(콘솔)에서 영수증 규칙을 재주문하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

220

Page 229: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Managing receipt rules

2. 좌측 탐색 창의 [Email Receiving]에서 [Rule Sets]를 선택합니다.3. 에서 비활성 규칙 세트 목록, 영수증 규칙 세트를 선택합니다.4. 선택 재주문 규칙.5. 영수증 규칙 이름 옆에 있는 위쪽 및 아래쪽 화살표를 사용하여 영수증 규칙을 재주문한 다음 주문 저장.

사용 방법에 대한 정보는 ReorderReceiptRuleSet 영수증 규칙 집합에서 영수증 규칙을 재주문하려면API를 참조하십시오. Amazon Simple Email Service API Reference.

Managing receipt rules for Amazon SES emailreceiving에 설명된 대로 영수증 규칙 생성 Creating receipt rules (p. 206)다음 섹션에 설명된 대로 영수증 규칙 집합에서 영수증 규칙의 위치를 편집, 삭제, 활성화, 비활성화, 복사 및 설정할 수 있습니다.

Note

이 섹션의 지침은 수령 규칙이 활성 영수증 규칙 세트에 있다고 가정합니다. 비활성화된 영수증 규칙 집합의 영수증 규칙을 편집하려면 비활성 규칙 세트 목록. 여기서, 영수증 규칙 편집 지침은 활성영수증 규칙 세트와 동일합니다.

이 단원의 주제:• Editing a receipt rule (p. 221)• Deleting a receipt rule (p. 221)• Enabling and disabling a receipt rule (p. 222)• Copying a receipt rule (p. 222)• Setting the position of a receipt rule (p. 222)

Editing a receipt rule귀하는 Amazon SES 콘솔 또는 Amazon SES 영수증 규칙을 편집할 API. 더 쉽게 Amazon SES 콘솔.

영수증 규칙(콘솔)을 편집하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Email Receiving]에서 [Rule Sets]를 선택합니다.3. 컨텐츠 창에서 활성 규칙 세트 보기 또는 비활성 규칙 세트 목록.4. 세부 정보 창에서 편집할 영수증 규칙을 선택합니다.5. 에서 규칙 편집 정책을 편집하고 정책을 편집한 다음 규칙 저장.

사용하려는 경우 Amazon SES API는 대신 DescribeReceiptRule API를 사용하여 규칙을 검색하고 텍스트 편집기를 사용하여 규칙을 편집한 다음 UpdateReceiptRule API를 사용하여 이전 버전의 규칙을 덮어씁니다. 자세한 정보는 Amazon Simple Email Service API Reference를 참조하십시오.

Deleting a receipt rule귀하는 Amazon SES 콘솔 또는 DeleteReceiptRule 영수증 규칙을 삭제할 API.

영수증 규칙(콘솔)을 삭제하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

221

Page 230: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Managing receipt rules

2. 좌측 탐색 창의 [Email Receiving]에서 [Rule Sets]를 선택합니다.3. 컨텐츠 창에서 활성 규칙 세트 보기 또는 비활성 규칙 세트 목록.4. 세부 정보 창에서 영수증 규칙을 선택합니다.5. 에서 조치 메뉴, 선택 삭제을(를) 선택한 후 영수증 규칙을 삭제할지 확인합니다.

사용 방법에 대한 정보는 DeleteReceiptRule 규칙을 삭제하려면 API를 참조하십시오. Amazon SimpleEmail Service API Reference.

Enabling and disabling a receipt rule귀하는 Amazon SES 콘솔 또는 Amazon SES 영수증 규칙을 활성화 또는 비활성화하려면 API를 선택합니다. 더 쉽게 Amazon SES 콘솔.

영수증 규칙(콘솔)을 활성화 또는 비활성화하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Email Receiving]에서 [Rule Sets]를 선택합니다.3. 컨텐츠 창에서 활성 규칙 세트 보기 또는 비활성 규칙 세트 목록.4. 세부 정보 창에서 편집할 영수증 규칙을 선택합니다.5. 에서 규칙 편집 선택 또는 지우기 활성화됨을 선택한 후 규칙 저장.

사용하려는 경우 Amazon SES API는 대신 DescribeReceiptRule 영수증 규칙을 검색하려면 텍스트편집기를 사용하여 영수증 규칙을 편집합니다. Enabled 필드를 사용하여 UpdateReceiptRule API를 사용하여 이전 버전의 영수증 규칙을 덮어씁니다. 자세한 정보는 Amazon Simple Email Service APIReference를 참조하십시오.

Copying a receipt rule귀하는 Amazon SES 콘솔 또는 Amazon SES 영수증 규칙을 복사할 API. 더 쉽게 Amazon SES 콘솔.

영수증 규칙(콘솔)을 복사하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Email Receiving]에서 [Rule Sets]를 선택합니다.3. 컨텐츠 창에서 활성 규칙 세트 보기 또는 비활성 규칙 세트 목록.4. 세부 정보 창에서 영수증 규칙을 선택합니다.5. 에서 조치 메뉴, 선택 규칙 복사.6. 에서 규칙 복사 대화 상자에서 새 영수증 규칙 이름을 입력하고 대상 영수증 규칙 세트를 선택합니다. 새

영수증 규칙은 영수증 규칙 세트의 시작 부분에 삽입되며 처음에 비활성화될 것입니다.

사용하려는 경우 Amazon SES API는 대신 DescribeReceiptRule API를 사용하여 영수증 규칙을 검색하고 텍스트 편집기를 사용하여 영수증 규칙 및 영수증 규칙 세트(원하는 경우)를 편집한 다음 해당 영수증 규칙을 CreateReceiptRule API 자세한 정보는 Amazon Simple Email Service API Reference를 참조하십시오.

Setting the position of a receipt rule귀하는 Amazon SES 콘솔 또는 SetReceiptRulePosition 영수증 규칙 세트 에서 영수증 규칙의 위치를변경할 API.

222

Page 231: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Managing IP address filters

영수증 규칙(콘솔)의 위치를 설정하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Email Receiving]에서 [Rule Sets]를 선택합니다.3. 컨텐츠 창에서 활성 규칙 세트 보기 또는 비활성 규칙 세트 목록.4. 컨텐츠 창에서 재주문 규칙.5. 영수증 규칙 이름 옆에 있는 위쪽 및 아래쪽 화살표를 사용하여 영수증 규칙을 재주문한 다음 주문 저장.

사용 방법에 대한 정보는 SetReceiptRulePosition 영수증 규칙 세트의 영수증 규칙의 위치를 변경하려면 API를 참조하십시오. Amazon Simple Email Service API Reference.

Managing IP address filters for Amazon SES emailreceiving에 설명된 대로 IP 주소 필터를 생성하는 것 외에도 Creating IP address filters (p. 205)다음 단원에 설명된대로 을(를) 보고 삭제할 수 있습니다.

Viewing IP address filters귀하는 Amazon SES 콘솔 또는 ListReceiptFilters API에서 IP 주소 필터 목록을 받습니다.

IP 주소 필터를 보려면(콘솔)

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Email Receiving]에서 [IP Address Filters]를 선택합니다. IP 주소 필터 목록이 표시됩니다.

사용 방법에 대한 정보는 ListReceiptFilters IP 주소 필터 목록을 보려면 API를 참조하십시오. AmazonSimple Email Service API Reference.

Deleting an IP address filter귀하는 Amazon SES 콘솔 또는 DeleteReceiptFilter API를 사용하여 IP 주소 필터를 삭제합니다.

IP 주소 필터를 삭제하려면(콘솔)

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 좌측 탐색 창의 [Email Receiving]에서 [IP Address Filters]를 선택합니다.3. 세부 정보 창에서 IP 주소 필터를 선택합니다.4. 선택 삭제을(를) 선택한 다음 IP 주소 필터를 삭제합니다.

사용 방법에 대한 정보는 DeleteReceiptFilter IP 주소 필터를 삭제하려면 API를 참조하십시오.Amazon Simple Email Service API Reference.

Viewing metrics for Amazon SES email receiving사용할 수 있습니다. Amazon CloudWatch (CloudWatch)을(를) 참조하십시오. 아래의 메트릭을 찾을 수 있습니다. SES/규칙 메트릭.

두 가지 장애 메트릭이 있습니다.

223

Page 232: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using notifications

• PublishFailure – Amazon SES encountered an error when it tried to execute the actions you configured.• PublishExpired – Amazon SES encountered an error when it tried to execute the actions you configured,

and Amazon SES will no longer retry to deliver the email. This failure can be permanent or transient.Amazon SES will no longer retry because the action did not succeed within four hours.

이러한 오류는 예를 들어, 사용자가 Amazon S3 버킷, Amazon SNS 주제 또는 Lambda 수신 규칙 중 하나에서 작업이 사용되도록 구성되었습니다.

Important

영수증 규칙 집합을 수정하기 위한 변경사항은 Amazon SES 업데이트 후 수신합니다. 이메일은 항상 이메일을 수신한 시점에 설정된 영수증 규칙 세트에 대해 평가됩니다.

다음 그림은 메트릭의 메트릭을 보여 줍니다. CloudWatch 콘솔.

Using notifications for Amazon SES email receiving이메일을 받으면 Amazon SES 활성 영수증 규칙 세트의 규칙을 실행합니다. 다음을 사용하여 알림 규칙을구성할 수 있습니다. Amazon SNS. 영수증 규칙은 다음과 같은 두 가지 유형의 알림을 보낼 수 있습니다.

• Notifications sent from SNS actions – When you add an SNS (p. 217) action to a receipt rule, it sendsinformation about the email. If the message is 150KB or smaller, this notification type also includes thecomplete MIME body of the email.

• Notifications sent from other action types – When you add any other action type (includingBounce (p. 208), Lambda (p. 209), Stop Rule Set (p. 217), or WorkMail (p. 218) actions) to areceipt rule, you can optionally specify an Amazon SNS topic. If you do, you will receive notificationswhen these actions are performed. These notifications contain information about the email, but do notcontain the content of the email.

이 섹션에서는 이러한 알림의 내용을 설명하고 각 알림 유형의 예를 제공합니다.

이 단원의 주제:• Contents of notifications for Amazon SES email receiving (p. 225)

224

Page 233: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using notifications

• Examples of notifications for Amazon SES email receiving (p. 230)

Contents of notifications for Amazon SES email receiving이메일 수신에 대한 모든 알림이 Amazon Simple Notification Service (Amazon SNS자바스크립트 개체Notation(JSON) 형식 의 항목

Top-level JSON object최상위 JSON 개체에는 다음 필드가 포함되어 있습니다.

필드 이름 설명

notificationType 알림 유형입니다. 이러한 유형의 알림에서는 항상값이 Received.

receipt (p. 225) 이메일 전달에 대한 정보가 포함된 개체.

mail (p. 229) 알림과 관련된 이메일에 대한 정보를 포함하는 개체.

content 일반적으로 다목적 인터넷 메일 익스텐션(MIME)형식 에 있는 원시, 미수정 이메일을 포함하는 문자열입니다. MIME 형식에 대한 자세한 내용은 RFC2045를 참조하십시오.

Note

이 필드는 SNS 작업에 의해 알림이 트리거된 경우에만 존재합니다. 다른 모든 작업에의해 트리거된 알림에는 이 필드가 포함되어 있지 않습니다.

receipt objectreceipt 객체에는 다음의 필드가 있습니다.

필드 이름 설명

action (p. 226) 실행된 작업에 대한 정보를 캡슐화하는 개체.가능한 값 목록은 다음을 참조하십시오. actionobject (p. 226).

dkimVerdict (p. 227) DKIM(확인 메일) 확인을 통과했는지 여부를 나타내는 개체. 가능한 값 목록은 다음을 참조하십시오.dkimVerdict object (p. 227).

dmarcPolicy 전송 도메인에 대한 도메인 기반 메시지 인증, 보고및 적합성(DMARC) 설정을 나타냅니다. 이 필드는메시지가 DMARC 인증에 실패한 경우에만 나타납니다.

이 필드의 가능한 값은 다음과 같습니다.

• none: The owner of the sending domainrequests that no specific action be taken onmessages that fail DMARC authentication.

225

Page 234: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using notifications

필드 이름 설명• quarantine: The owner of the sending domain

requests that messages that fail DMARCauthentication be treated by receivers assuspicious.

• reject: The owner of the sending domainrequests that messages that fail DMARCauthentication be rejected.

dmarcVerdict (p. 227) 도메인 기반 메시지 인증, 보고 및 적합성(DMARC)확인을 통과했는지 여부를 나타내는 개체. 가능한 값 목록은 다음을 참조하십시오. dmarcVerdictobject (p. 227).

processingTimeMillis 시간(밀리초)을 지정하는 문자열 Amazon SES 님이동작을 트리거한 시간에 메시지를 받았습니다.

recipients 적극적으로 일치하는 수령자 목록(특히 봉투 RCPTTO 주소) 영수증 규칙 (p. 206). 여기에 나열된 주소는 destination 필드의 필드 the section called“mail object” (p. 229).

spamVerdict (p. 228) 메시지가 스팸인지 여부를 나타내는 개체. 가능한 값 목록은 다음을 참조하십시오. spamVerdictobject (p. 228).

spfVerdict (p. 228) 발신자 정책 프레임워크(SPF) 검사가 통과했는지여부를 나타내는 개체. 가능한 값 목록은 다음을 참조하십시오. spfVerdict object (p. 228).

timestamp 동작이 트리거된 날짜와 시간을 지정하는 문자열ISO 8601 형식.

바이러스화 (p. 229) 메시지에 바이러스가 포함되어 있는지 여부를 나타내는 개체. 가능한 값 목록은 다음을 참조하십시오.virusVerdict object (p. 229).

action object

action 객체에는 다음의 필드가 있습니다.

필드 이름 설명

type 실행된 작업의 유형을 나타내는 문자열. 가능한 값은 다음과 같습니다. S3, SNS, Bounce, Lambda,Stop, 그리고 WorkMail.

topicArn String이 Amazon SNS 알림이 게시된 주제입니다.

bucketName 문자열이 포함된 문자열 Amazon S3 메시지가 게시된 버킷입니다. S3 작업 유형에만 해당합니다.

objectKey 문자열을 포함하는 문자열로 Amazon S3 버킷.이는 messageId in the the section called “mailobject” (p. 229). S3 작업 유형에만 해당합니다.

226

Page 235: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using notifications

필드 이름 설명

smtpReplyCode SMTP 회신 코드가 포함된 문자열(정의된 대로)RFC 5321. 바운스 작업 유형에만 해당합니다.

statusCode SMTP Enhanced Status Code(SMTP 증강 상태 코드)가 포함된 문자열 RFC 3463. 바운스 작업 유형에만 해당합니다.

message 바운스 메시지에 포함할 사람이 읽을 수 있는 텍스트를 포함하는 문자열. 바운스 작업 유형에만 해당합니다.

sender 전자 메일의 발신자의 이메일 주소를 포함하는 문자열입니다. 이것은 바운스 메시지가 전송된 주소입니다. 바운스 작업 유형에만 해당합니다.

functionArn String이 Lambda 트리거되었습니다. Lambda 작업유형에만 해당.

invocationType 의 호출 유형을 포함하는 문자열 Lambda 기능. 가능한 값은 다음과 같습니다. RequestResponse andEvent. Lambda 작업 유형에만 해당.

organizationArn Amazon Workmail 조직의 ARN을 포함하는 문자열입니다. 작업 메일 작업 유형에만 표시됩니다.

dkimVerdict object

dkimVerdict 객체에는 다음의 필드가 있습니다.

필드 이름 설명

status DKIM verdict가 포함된 문자열. 가능한 값은 다음과같습니다.

• PASS: The message passed DKIMauthentication.

• FAIL: The message failed DKIM authentication.• GRAY: The message is not DKIM-signed.• PROCESSING_FAILED: There is an issue that

prevents Amazon SES from checking the DKIMsignature. For example, DNS queries are failingor the DKIM signature header is not formattedproperly.

dmarcVerdict object

dmarcVerdict 객체에는 다음의 필드가 있습니다.

필드 이름 설명

status DMARC Verdict가 포함된 문자열. 가능한 값은 다음과 같습니다.

227

Page 236: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using notifications

필드 이름 설명• PASS: The message passed DMARC

authentication.• FAIL: The message failed DMARC

authentication.• GRAY: The message failed DMARC

authentication, and the sending domain doesnot have a DMARC policy, or uses the p=nonepolicy.

• PROCESSING_FAILED: There is an issue thatprevents Amazon SES from providing a DMARCverdict.

spamVerdict object

spamVerdict 객체에는 다음의 필드가 있습니다.

필드 이름 설명

status 스팸 스캐닝 결과를 포함하는 문자열. 가능한 값은다음과 같습니다.

• PASS: The spam scan determined that themessage is unlikely to contain spam.

• FAIL: The spam scan determined that themessage is likely to contain spam.

• GRAY: Amazon SES scanned the email butcould not determine with confidence whether it isspam.

• PROCESSING_FAILED: Amazon SES wasunable to scan the email. For example, the emailis not a valid MIME message.

spfVerdict object

spfVerdict 객체에는 다음의 필드가 있습니다.

필드 이름 설명

status SPF가 포함된 문자열입니다. 가능한 값은 다음과같습니다.

• PASS: The message passed SPF authentication.• FAIL: The message failed SPF authentication.• GRAY: There is no SPF policy under the domain

used in the MAIL FROM command.• PROCESSING_FAILED: There is an issue that

prevents Amazon SES from checking the SPFrecord. For example, DNS queries are failing.

228

Page 237: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using notifications

virusVerdict object

virusVerdict 객체에는 다음의 필드가 있습니다.

필드 이름 설명

status 바이러스 스캐닝 결과가 포함된 문자열. 가능한 값은 다음과 같습니다.

• PASS: The message does not contain a virus.• FAIL: The message contains a virus.• GRAY: Amazon SES scanned the email but

could not determine with confidence whether itcontains a virus.

• PROCESSING_FAILED: Amazon SES is unableto scan the content of the email. For example,the email is not a valid MIME message.

mail object

mail 객체에는 다음의 필드가 있습니다.

필드 이름 설명

destination

수신 이메일의 MIME 머리글에서 모든 수신자 주소(받는 사람: 및 CC: 받는 사람 포함)의 전체 목록.

messageId 이메일에 할당된 고유 ID를 포함하는 문자열Amazon SES. 이메일이 전달된 경우 Amazon S3메시지 ID는 Amazon S3 메시지 작성에 사용된 개체키 Amazon S3 버킷.

source 이메일 주소(구체적으로 우편 주소)가 포함된 문자열로 이메일이 에서 발송되었습니다.

timestamp e-메일이 수신된 시간이 ISO8601 형식으로 포함된문자열입니다.

headers 목록 Amazon SES 헤더 및 사용자 지정 헤더. 목록의 각 헤더에는 name 필드와 value 필드가 존재합니다.

commonHeaders (p. 229) 모든 그림에 공통된 헤더 목록. 목록의 각 헤더는 이름 및 값으로 구성됩니다.

headersTruncated 헤더가 알림에서 잘렸는지 여부를 지정하는 문자열입니다. 헤더가 10KB보다 큰 경우에 발생합니다. 가능한 값은 true 및 false입니다.

commonHeaders object

The commonHeaders 개체는 다음 표에 표시된 필드를 가질 수 있습니다. 이 개체에 존재하는 필드는 들어오는 이메일에 있는 필드에 따라 다릅니다.

229

Page 238: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using notifications

필드 이름 설명

messageId 원본 메시지의 ID.

date 날짜 및 시간 Amazon SES 님이 메시지를 받았습니다.

to 전자 메일의 끝 머리글 값.

cc e-메일의 CC 헤더에서 값.

bcc e-메일의 BCC 헤더 값.

from 이메일의 시작 헤더에서 값.

sender 전자 메일의 발신자 헤더 값.

returnPath 전자 메일의 Return-Path 헤더에 있는 값입니다.

reply-to 이메일의 회신-끝 헤더에 있는 값.

subject 전자 메일의 제목 머리글 값입니다.

Examples of notifications for Amazon SES email receiving이 섹션에는 다음과 같은 유형의 통지가 포함되어 있습니다.

• A notification sent as a result of an SNS action. (p. 230)• A notification sent as a result of another type of action (p. 232) (an alert notification).

Notification of an SNS action

이 섹션에는 SNS 동작 알림의 예가 포함되어 있습니다. 이전에 표시된 경고 알림과 달리 content 일반적으로 다목적 인터넷 메일 익스텐션(MIME) 형식인 이메일을 포함하는 섹션입니다.

{ "notificationType":"Received", "receipt":{ "timestamp":"2015-09-11T20:32:33.936Z", "processingTimeMillis":222, "recipients":[ "[email protected]" ], "spamVerdict":{ "status":"PASS" }, "virusVerdict":{ "status":"PASS" }, "spfVerdict":{ "status":"PASS" }, "dkimVerdict":{ "status":"PASS" }, "action":{ "type":"SNS", "topicArn":"arn:aws:sns:us-east-1:012345678912:example-topic" }

230

Page 239: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using notifications

}, "mail":{ "timestamp":"2015-09-11T20:32:33.936Z", "source":"[email protected]", "messageId":"d6iitobk75ur44p8kdnnp7g2n800", "destination":[ "[email protected]" ], "headersTruncated":false, "headers":[ { "name":"Return-Path", "value":"<0000014fbe1c09cf-7cb9f704-7531-4e53-89a1-5fa9744f5eb6-000000@amazonses.com>" }, { "name":"Received", "value":"from a9-183.smtp-out.amazonses.com (a9-183.smtp-out.amazonses.com [54.240.9.183]) by inbound-smtp.us-east-1.amazonaws.com with SMTP id d6iitobk75ur44p8kdnnp7g2n800 for [email protected]; Fri, 11 Sep 2015 20:32:33 +0000 (UTC)" }, { "name":"DKIM-Signature", "value":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1442003552; h=From:To:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Date:Message-ID:Feedback-ID; bh=DWr3IOmYWoXCA9ARqGC/UaODfghffiwFNRIb2Mckyt4=; b=p4ukUDSFqhqiub+zPR0DW1kp7oJZakrzupr6LBe6sUuvqpBkig56UzUwc29rFbJF hlX3Ov7DeYVNoN38stqwsF8ivcajXpQsXRC1cW9z8x875J041rClAjV7EGbLmudVpPX 4hHst1XPyX5wmgdHIhmUuh8oZKpVqGi6bHGzzf7g=" }, { "name":"From", "value":"[email protected]" }, { "name":"To", "value":"[email protected]" }, { "name":"Subject", "value":"Example subject" }, { "name":"MIME-Version", "value":"1.0" }, { "name":"Content-Type", "value":"text/plain; charset=UTF-8" }, { "name":"Content-Transfer-Encoding", "value":"7bit" }, { "name":"Date", "value":"Fri, 11 Sep 2015 20:32:32 +0000" }, { "name":"Message-ID", "value":"<[email protected]>" }, { "name":"X-SES-Outgoing",

231

Page 240: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using notifications

"value":"2015.09.11-54.240.9.183" }, { "name":"Feedback-ID", "value":"1.us-east-1.Krv2FKpFdWV+KUYw3Qd6wcpPJ4Sv/pOPpEPSHn2u2o4=:AmazonSES" } ], "commonHeaders":{ "returnPath":"0000014fbe1c09cf-7cb9f704-7531-4e53-89a1-5fa9744f5eb6-000000@amazonses.com", "from":[ "[email protected]" ], "date":"Fri, 11 Sep 2015 20:32:32 +0000", "to":[ "[email protected]" ], "messageId":"<[email protected]>", "subject":"Example subject" } }, "content":"Return-Path: <[email protected]>\r\nReceived: from a9-183.smtp-out.amazonses.com (a9-183.smtp-out.amazonses.com [54.240.9.183])\r\n by inbound-smtp.us-east-1.amazonaws.com with SMTP id d6iitobk75ur44p8kdnnp7g2n800\r\n for [email protected];\r\n Fri, 11 Sep 2015 20:32:33 +0000 (UTC)\r\nDKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;\r\n\ts=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1442003552;\r\n\th=From:To:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Date:Message-ID:Feedback-ID;\r\n\tbh=DWr3IOmYWoXCA9ARqGC/UaODfghffiwFNRIb2Mckyt4=;\r\n\tb=p4ukUDSFqhqiub+zPR0DW1kp7oJZakrzupr6LBe6sUuvqpBkig56UzUwc29rFbJF\r\n\thlX3Ov7DeYVNoN38stqwsF8ivcajXpQsXRC1cW9z8x875J041rClAjV7EGbLmudVpPX\r\n\t4hHst1XPyX5wmgdHIhmUuh8oZKpVqGi6bHGzzf7g=\r\nFrom: [email protected]\r\nTo: [email protected]\r\nSubject: Example subject\r\nMIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8\r\nContent-Transfer-Encoding: 7bit\r\nDate: Fri, 11 Sep 2015 20:32:32 +0000\r\nMessage-ID: <[email protected]>\r\nX-SES-Outgoing: 2015.09.11-54.240.9.183\r\nFeedback-ID: 1.us-east-1.Krv2FKpFdWV+KUYw3Qd6wcpPJ4Sv/pOPpEPSHn2u2o4=:AmazonSES\r\n\r\nExample content\r\n"}

Alert notification이 섹션에는 Amazon SNS 알림을 통해 S3 작업. 통지 시작 날짜: Lambda 조치, 운동 동작, 동작 중지 및WorkMail 작업은 비슷합니다. 통지에는 이메일에 대한 정보가 포함되어 있지만 이메일 자체의 내용이 포함되어 있지 않습니다.

{"notificationType": "Received","receipt": {"timestamp": "2015-09-11T20:32:33.936Z","processingTimeMillis": 406,"recipients": [ "[email protected]"],"spamVerdict": { "status": "PASS"},"virusVerdict": { "status": "PASS"},"spfVerdict": { "status": "PASS"},"dkimVerdict": { "status": "PASS"

232

Page 241: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using notifications

},"action": { "type": "S3", "topicArn": "arn:aws:sns:us-east-1:012345678912:example-topic", "bucketName": "my-S3-bucket", "objectKey": "\email"}},"mail": {"timestamp": "2015-09-11T20:32:33.936Z","source": "0000014fbe1c09cf-7cb9f704-7531-4e53-89a1-5fa9744f5eb6-000000@amazonses.com","messageId": "d6iitobk75ur44p8kdnnp7g2n800","destination": [ "[email protected]"],"headersTruncated": false,"headers": [ { "name": "Return-Path", "value": "<0000014fbe1c09cf-7cb9f704-7531-4e53-89a1-5fa9744f5eb6-000000@amazonses.com>" }, { "name": "Received", "value": "from a9-183.smtp-out.amazonses.com (a9-183.smtp-out.amazonses.com [54.240.9.183]) by inbound-smtp.us-east-1.amazonaws.com with SMTP id d6iitobk75ur44p8kdnnp7g2n800 for [email protected]; Fri, 11 Sep 2015 20:32:33 +0000 (UTC)" }, { "name": "DKIM-Signature", "value": "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1442003552; h=From:To:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Date:Message-ID:Feedback-ID; bh=DWr3IOmYWoXCA9ARqGC/UaODfghffiwFNRIb2Mckyt4=; b=p4ukUDSFqhqiub+zPR0DW1kp7oJZakrzupr6LBe6sUuvqpBkig56UzUwc29rFbJF hlX3Ov7DeYVNoN38stqwsF8ivcajXpQsXRC1cW9z8x875J041rClAjV7EGbLmudVpPX 4hHst1XPyX5wmgdHIhmUuh8oZKpVqGi6bHGzzf7g=" }, { "name": "From", "value": "[email protected]" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Example subject" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "text/plain; charset=UTF-8" }, { "name": "Content-Transfer-Encoding", "value": "7bit" }, { "name": "Date", "value": "Fri, 11 Sep 2015 20:32:32 +0000" },

233

Page 242: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using notifications

{ "name": "Message-ID", "value": "<[email protected]>" }, { "name": "X-SES-Outgoing", "value": "2015.09.11-54.240.9.183" }, { "name": "Feedback-ID", "value": "1.us-east-1.Krv2FKpFdWV+KUYw3Qd6wcpPJ4Sv/pOPpEPSHn2u2o4=:AmazonSES" }],"commonHeaders": { "returnPath": "0000014fbe1c09cf-7cb9f704-7531-4e53-89a1-5fa9744f5eb6-000000@amazonses.com", "from": [ "[email protected]" ], "date": "Fri, 11 Sep 2015 20:32:32 +0000", "to": [ "[email protected]" ], "messageId": "<[email protected]>", "subject": "Example subject"}}}

234

Page 243: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드구성 집합 관리

Using Amazon SES configurationsets

구성 세트는 Amazon SES를 통해 전송하는 이메일에 적용 가능한 규칙 그룹입니다. 이메일 헤더에 구성 세트에 대한 참조를 포함하는 방식으로 구성 세트를 이메일에 적용합니다. 구성 세트를 이메일에 적용하면 해당 구성 세트의 모든 규칙이 이메일에 적용됩니다. 이메일에 구성 세트를 지정하는 방법에 대한 자세한 내용은 이메일을 보낼 때 구성 세트 지정 (p. 240) 단원을 참조하십시오.

구성 세트를 사용하여 이메일에 다음 유형의 규칙을 적용할 수 있습니다.

• Event publishing – Amazon SES can track the number of send, delivery, open, click, bounce, andcomplaint events for each email you send. You can use event publishing to send information about theseevents to other AWS services. For example, you can send your email metrics to an Amazon Kinesis DataFirehose destination, and then analyze it using Amazon Kinesis Data Analytics. Alternatively, you cansend bounce and complaint information to Amazon SNS and receive notifications immediately whenthose events occur.

• IP pool management – If you lease dedicated IP addresses to use with Amazon SES, you can creategroups of these addresses, called dedicated IP pools. You can then associate these dedicated IP poolswith configuration sets. A common use case is to create one pool of dedicated IP addresses for sendingmarketing communications, and another for sending transactional emails. Your sender reputation fortransactional emails is then isolated from that of your marketing emails.

구성 세트에는 이러한 유형의 규칙이 한 개 또는 모두 포함될 수 있고, 하나도 포함되지 않을 수도 있습니다.

구성 세트 및 관련 구성 요소의 관리에 대한 자세한 내용은 다음 주제를 참조하십시오.

• Amazon SES 구성 세트 관리 (p. 235)• Amazon SES 이벤트 대상 관리 (p. 238)• IP 풀 관리 (p. 239)

Amazon SES 구성 세트 관리이번 단원에서는 구성 세트를 생성하고, 기본 구성 세트의 목록을 보고, 개별 구성 세트의 세부 정보를 보고,구성 세트를 삭제하는 절차에 대해서 설명합니다.

구성 세트 생성Amazon SES 콘솔 또는 CreateConfigurationSet API를 사용하여 새 구성 세트를 생성할 수 있습니다.

Amazon SES 콘솔을 사용하여 구성 세트를 생성하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 탐색 창에서 [Configuration Sets]를 선택합니다.3. [Create Configuration Set]를 선택합니다.4. Configuration set name(구성 세트 이름)에 구성 세트의 이름을 입력합니다.

235

Page 244: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드구성 세트 목록 보기

Note

이름에는 최대 64개의 영숫자가 포함될 수 있습니다. 또한 하이픈(-) 및 밑줄(_)을 포함할 수 있습니다. 이름에는 공백, 억양 표시가 되어 있는 문자 또는 기타 특수 문자를 사용할 수 없습니다.

CreateConfigurationSet API를 사용하여 구성 세트를 생성할 수도 있습니다. 이 API를 호출하는 일반적인 방법은 AWS CLI를 사용하는 것입니다.

AWS CLI를 사용하여 구성 세트를 생성하려면

• 명령줄 프롬프트에 다음 명령을 입력합니다.

aws ses create-configuration-set --configuration-set Name=ConfigSet

앞의 명령에서 ConfigSet를 구성 세트에 부여하려는 이름으로 바꿉니다.

Note

이름에는 최대 64개의 영숫자가 포함될 수 있습니다. 또한 하이픈(-) 및 밑줄(_)을 포함할 수 있습니다. 이름에는 공백, 억양 표시가 되어 있는 문자 또는 기타 특수 문자를 사용할 수 없습니다.

CreateConfigurationSet API를 사용한 구성 세트 생성에 대한 자세한 내용은 Amazon Simple EmailService API Reference를 참조하십시오.

구성 세트 목록 보기Amazon SES 콘솔 또는 ListConfigurationSets API를 사용하여 구성 세트 목록을 볼 수 있습니다.

Amazon SES 콘솔을 사용하여 구성 세트를 보려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 왼쪽 탐색 창에서 Configuration Sets를 선택합니다.

세부 정보 창에서 구성 세트 목록을 볼 수 있습니다.

ListConfigurationSets API를 사용하여 구성 세트 목록을 볼 수도 있습니다. 이 API를 호출하는 일반적인 방법은 AWS CLI를 사용하는 것입니다.

AWS CLI를 사용하여 구성 세트 목록을 보려면

• 명령줄 프롬프트에 다음 명령을 입력합니다.

aws ses list-configuration-sets

ListConfigurationSets API를 사용한 구성 세트 목록 보기에 대한 자세한 내용은 Amazon SimpleEmail Service API Reference를 참조하십시오.

236

Page 245: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드구성 세트의 세부 정보 보기

구성 세트의 세부 정보 보기Amazon SES 콘솔을 사용하여 구성 세트의 세부 정보를 보거나 DescribeConfigurationSet API를 사용하여 구성 세트를 설명할 수 있습니다.

Amazon SES 콘솔을 사용하여 구성 세트의 세부 정보 보기

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 왼쪽 탐색 창에서 Configuration Sets를 선택합니다.3. 세부 정보 창에서 구성 세트 옆의 확장 아이콘을 선택합니다.

구성 세트의 세부 정보를 볼 수 있습니다.

DescribeConfigurationSet API를 사용하여 구성 세트에 대한 자세한 내용을 표시할 수도 있습니다. 이API를 호출하는 일반적인 방법은 AWS CLI를 사용하는 것입니다.

AWS CLI를 사용하여 구성 세트에 대한 자세한 내용을 확인하려면

• 명령줄 프롬프트에 다음 명령을 입력합니다.

aws ses describe-configuration-set --configuration-set-name ConfigSet

앞의 명령에서 ConfigSet를 자세히 알아보려는 구성 세트의 이름으로 바꿉니다.

DescribeConfigurationSet API를 사용하여 구성 세트를 설명하는 방법에 대한 자세한 내용은 AmazonSimple Email Service API Reference를 참조하십시오.

구성 세트 삭제Amazon SES 콘솔 또는 DeleteConfigurationSet API를 사용하여 구성 세트를 삭제할 수 있습니다.

Amazon SES 콘솔을 사용하여 구성 세트를 삭제하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 왼쪽 탐색 창에서 Configuration Sets를 선택합니다.3. 세부 정보 창에서 구성 세트를 선택합니다.4. Actions 메뉴에서 Delete를 선택하고, 확인을 거쳐 구성 세트를 삭제합니다.

DeleteConfigurationSet API를 사용하여 구성 세트를 삭제할 수도 있습니다. 이 API를 호출하는 일반적인 방법은 AWS CLI를 사용하는 것입니다.

AWS CLI를 사용하여 구성 세트를 삭제하려면

• 명령줄 프롬프트에 다음 명령을 입력합니다.

aws ses delete-configuration-set --configuration-set ConfigSet

앞의 명령에서 ConfigSet를 삭제하려는 구성 세트의 이름으로 바꿉니다.

237

Page 246: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드이벤트 대상 관리

DeleteConfigurationSet API를 사용한 구성 세트 삭제에 대한 자세한 내용은 Amazon Simple EmailService API Reference를 참조하십시오.

Amazon SES 이벤트 대상 관리이벤트 대상에서는 전송, 배달, 열기, 클릭, 반송 메일 및 수신 거부 수를 포함하여 이메일 전송 지표를 다른AWS 제품에 게시할 수 있습니다. 이벤트 게시 설정에 대한 자세한 내용은 the section called “Monitoringsending using event publishing” (p. 269) 단원을 참조하십시오.

이벤트 대상 업데이트Amazon SES 콘솔 또는 UpdateConfigurationSetEventDestination API를 사용하여 이벤트 대상을업데이트할 수 있습니다.

이벤트 대상을 업데이트하려면(콘솔)

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 왼쪽 탐색 창에서 Configuration Sets를 선택합니다.3. 구성 세트 목록에서 업데이트할 이벤트 대상이 포함된 구성 세트를 선택합니다.4. 대상 목록에서 편집할 대상의 오른쪽에 있는 편집 아이콘( )을 선택합니다.5. 이벤트 대상 세부 정보를 편집한 후 Save를 선택합니다.6. Edit Configuration Set 페이지를 종료하려면 브라우저의 뒤로 버튼을 사용합니다.

UpdateConfigurationSetEventDestination API를 사용하여 이벤트 대상을 업데이트하는 방법에 대한 자세한 내용은 Amazon Simple Email Service API Reference를 참조하십시오.

이벤트 대상 삭제Amazon SES 콘솔 또는 DeleteConfigurationSetEventDestination API를 사용하여 이벤트 대상을삭제할 수 있습니다.

이벤트 대상을 삭제하려면(콘솔)

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 왼쪽 탐색 창에서 Configuration Sets를 선택합니다.3. 구성 세트 목록에서 삭제할 이벤트 대상이 포함된 구성 세트를 선택합니다.4. 대상 목록에서 삭제 아이콘( )을 선택합니다.5. 구성 세트를 삭제하고자 한다는 것을 확인합니다.6. Edit Configuration Set 페이지를 종료하려면 브라우저의 뒤로 버튼을 사용합니다.

DeleteConfigurationSetEventDestination API를 사용하여 이벤트 대상을 삭제하는 방법에 대한 자세한 내용은 Amazon Simple Email Service API Reference를 참조하십시오.

이벤트 대상 활성화 또는 비활성화Amazon SES 콘솔 또는 UpdateConfigurationSetEventDestination API를 사용하여 이벤트 대상을활성화하거나 비활성화할 수 있습니다.

238

Page 247: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드IP 풀 관리

이벤트 대상을 활성화하거나 비활성화하려면(콘솔)

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 왼쪽 탐색 창에서 Configuration Sets를 선택합니다.3. 구성 세트 목록에서 활성화하거나 비활성화할 이벤트 대상이 포함된 구성 세트를 선택합니다.4. Destination 목록에서 편집할 대상의 오른쪽에 있는 편집 아이콘(연필)을 선택합니다.5. Enabled를 선택하거나 선택 해제한 후 Save를 선택합니다.6. Edit Configuration Set 페이지를 종료하려면 브라우저의 뒤로 버튼을 사용합니다.

UpdateConfigurationSetEventDestination API를 사용하여 이벤트 대상을 활성화하거나 비활성화하는 방법에 대한 자세한 내용은 Amazon Simple Email Service API Reference를 참조하십시오.

IP 풀 관리IP 풀을 사용하여 특정 유형의 이메일을 전송하기 위한 전용 IP 주소 그룹을 만들 수 있습니다. 모든 AmazonSES 고객이 공유하는 IP 주소의 풀을 사용할 수도 있습니다.

기존 구성 세트에 IP 풀 할당Amazon SES 콘솔을 사용하여 IP 풀을 기존 구성 세트와 연결할 수 있습니다.

구성 세트에 IP 풀을 할당하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 왼쪽 탐색 창에서 Configuration Sets를 선택합니다.3. 구성 세트 목록에서 IP 풀에 연결하려는 구성 세트를 선택합니다.4. [Sending IP pool] 탭의 [Pool name]에서 다음 옵션 중 하나를 선택합니다.

• 특정 전용 IP 풀 – 기존의 전용 IP 풀을 선택하면 구성 세트를 사용하는 이메일이 해당 풀에 속한 전용IP 주소만을 사용하여 전송됩니다. 새 IP 풀을 생성하는 절차는 전용 IP 풀 만들기 (p. 173) 단원을 참조하십시오.

• ses-default-dedicated-pool – 이 풀에는 계정에서 IP 풀에 아직 속하지 않은 전용 IP 주소가 모두 포함되어 있습니다. 풀에 연결되지 않은 구성 세트를 사용하여 이메일을 보내거나 구성 세트를 지정하지않고 이메일을 보내는 경우 기본 풀에 있는 주소 중 하나에서 이메일이 전송됩니다.

• ses-shared-pool – 이 풀에는 모든 Amazon SES 고객이 공유하는 많은 IP 주소가 포함되어 있습니다.이 옵션은 일반적인 전송 동작과 일치하지 않는 이메일을 보내야 할 때 유용할 수 있습니다.

작업을 마쳤으면 [Assign]을 선택합니다.

IP 풀 할당 수정Amazon SES 콘솔을 사용하여 이미 풀에 연결된 구성 세트에 다른 풀을 할당할 수도 있습니다. 구성 세트에다른 풀을 할당하면 이전 연결을 덮어씁니다.

IP 풀 할당을 수정하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

239

Page 248: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드이메일에 구성 세트 지정

2. 왼쪽 탐색 창에서 Configuration Sets를 선택합니다.3. 구성 세트 목록에서 수정하려는 구성 세트를 선택합니다.4. Sending IP pool(IP 풀 전송) 탭의 Assign an IP pool(IP 풀 할당)에서 편집 아이콘( )을 선택합니다.5. [Pool name]에서, 사용하려는 풀을 선택한 후 [Assign]을 선택합니다.

이메일을 보낼 때 구성 세트 지정이메일을 보낼 때 구성 세트를 사용하려면 구성 세트 이름을 이메일 헤더에 전달해야 합니다. AWS CLI,AWS SDK 및 Amazon SES SMTP 인터페이스 (p. 83)를 포함한 모든 Amazon SES 이메일 전송 방법에서는 전송하는 이메일의 헤더에서 구성 세트를 전달할 수 있습니다.

SMTP 인터페이스 (p. 83) 또는 SendRawEmail API 작업을 사용하는 경우 이메일에 다음 헤더를 포함하여(ConfigSet를 사용할 구성 세트의 이름으로 바꿈) 구성 세트를 지정할 수 있습니다.

X-SES-CONFIGURATION-SET: ConfigSet

이 안내서에는 Postfix, AWS SDK 및 Amazon SES SMTP 인터페이스를 사용하여 이메일을 보내는 코드 예제가 포함되어 있습니다. 이러한 각 예제에는 구성 세트를 지정하는 방법이 포함되어 있습니다. 구성 세트에대한 참조를 포함하는 이메일을 보내는 단계별 절차를 확인하려면 다음을 참조하십시오.

• Integrating Amazon SES with Postfix (p. 90)• Send an email through Amazon SES using an AWS SDK (p. 29)• Send an email through Amazon SES using SMTP (p. 19)

더 많은 코드 예제는 Amazon SES code examples (p. 391) 단원에서 볼 수 있습니다.

구성 세트의 평판 지표를 CloudWatch로 내보내기Amazon SES는 전체 계정의 전체 반송 메일 및 수신 거부 발생률에 대한 정보를 Amazon CloudWatch로 자동으로 내보냅니다. 이러한 지표를 사용하여 CloudWatch에서 경보를 생성하거나 Lambda 기능을 사용한 이메일 전송을 자동으로 일시 중지할 수 있습니다.

또한 개별 구성 세트의 평판 지표를 CloudWatch로 내보낼 수 있습니다. 구성 세트 수준에서 평판 데이터를내보내면 발신자 평판을 더욱 세부적으로 제어할 수 있습니다.

이 단원에는 Amazon SES API를 사용하여 개별 구성 세트의 평판 데이터를 CloudWatch로 내보내는 절차가포함되어 있습니다.

구성 세트의 평판 지표 내보내기 활성화구성 세트의 평판 지표 내보내기를 시작하려면UpdateConfigurationSetReputationMetricsEnabled API 작업을 사용합니다. Amazon SES API에액세스하려면 AWS CLI 또는 AWS SDK 중 하나를 사용하는 것이 좋습니다.

이 절차에서는 AWS CLI가 컴퓨터에 설치되어 있고 올바르게 구성된 것으로 가정합니다. AWS CLI 설치 및구성에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서를 참조하십시오.

구성 세트의 평판 지표 내보내기를 활성화하려면

• 명령줄에 다음 명령을 입력합니다. aws ses update-configuration-set-reputation-metrics-enabled --configuration-set-name ConfigSet --enabled

240

Page 249: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드구성 세트의 평판 지표 내보내기 비활성화

앞의 명령에서 ConfigSet를 평판 지표 내보내기를 시작할 구성 세트의 이름으로 바꿉니다.

구성 세트의 평판 지표 내보내기 비활성화UpdateConfigurationSetReputationMetricsEnabled API 작업을 사용하여 구성 세트의 평판 지표내보내기를 비활성화할 수도 있습니다.

구성 세트의 평판 지표 내보내기를 비활성화하려면

• 명령줄에 다음 명령을 입력합니다. aws ses update-configuration-set-reputation-metrics-enabled --configuration-set-name ConfigSet --no-enabled

앞의 명령에서 ConfigSet를 평판 지표 내보내기를 비활성화할 구성 세트의 이름으로 바꿉니다.

241

Page 250: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드

Monitoring your Amazon SESsending activity

Amazon SES는 전송 활동을 모니터링할 수 있는 방법을 제공합니다. 이러한 방법을 사용하여 계정의 반송,불만 제기 및 거부 메일의 비율 같은 주요 지표를 추적하는 것이 좋습니다. 반송 메일 및 수신 거부 발생률이지나치게 높으면 Amazon SES를 사용하여 이메일을 전송하는 데 어려움을 겪을 수 있습니다.

그 밖에도 이러한 방법을 사용하여 고객이 전송된 이메일에 응답하는 비율을 측정할 수 있습니다. 예를 들어이러한 전송 지표는 전체적인 이메일 확인 및 클릭 비율을 구분하는 데 효과적입니다.

측정할 수 있는 메트릭 Amazon SES 이(가) email sending events. 모니터링할 수 있는 이벤트를 보내는 전자메일은 다음과 같습니다.

• Sends(전송) – Amazon SES에 대한 호출이 성공했으며 Amazon SES가 이메일 배달을 시도합니다.• Rejects(거부) – Amazon SES가 이메일을 수락했으나 이메일에 바이러스가 포함되어 있어서 거부했습니

다. Amazon SES에서 이메일을 수신자의 메일 서버로 전송하려고 시도하지 않았습니다.• Bounces(반송) – 수신자의 메일 서버가 이메일을 영구적으로 거부했습니다. 이 이벤트는 하드 반송에 해

당합니다. 소프트 바운스는 Amazon SES가 일정 시간 동안 재시도한 후 이메일을 배달하는 데 실패한 경우에만 포함됩니다.

• Complaints(불만) – 이메일이 수신자에게 성공적으로 배달되었습니다. 수신자가 이메일을 스팸으로 표시했습니다.

• Deliveries(배달) – Amazon SES에서 이메일을 수신자의 메일 서버로 성공적으로 배달했습니다.• Opens – 수신자가 메시지를 수신하여 자신의 이메일 클라이언트에서 열었습니다.• Clicks – 수신자가 이메일의 링크를 1개 이상 클릭했습니다.• Rendering Failures – 템플릿 렌더링 문제로 인해 이메일이 전송되지 않았습니다. 이 이벤트 유형은

SendTemplatedEmail 또는 SendBulkTemplatedEmail API 작업을 사용하여 이메일을 전송할 때만 발생합니다. 이 이벤트 유형은 템플릿 데이터가 누락되었을 때 또는 템플릿 파라미터와 데이터 사이에 불일치가있을 때 발생할 수 있습니다.

• Delivery Delays – 일시적인 문제가 발생하여 수신자에게 이메일을 전송할 수 없습니다. 예를 들어 수신자의 받은 편지함이 가득 찼거나 이메일 수신 서버에 일시적인 문제가 발생했을 때 전송 지연이 발생할 수 있습니다.

Note

이벤트 대상에 DELIVERY_DELAY 이벤트 유형을 추가하려면 Amazon SES API V2에서 UpdateConfigurationSetEventDestination 작업을 사용해야 합니다. 현재는 Amazon SES 콘솔을사용하여 이 이벤트 유형을 구성 집합에 추가할 수 없습니다.

여러 방법으로 이메일 전송 이벤트를 모니터링할 수 있습니다. 방법의 선택은 모니터링할 이벤트 유형, 모니터링할 세부 수준 및 세부 정보의 수준, Amazon SES가 데이터를 게시하도록 할 위치에 따라 달라집니다. 피드백 알림 또는 이벤트 게시를 사용하여 반송 메일 및 수신 거부 이벤트를 추적해야 합니다. 여러 가지 모니터링 방법을 사용하기로 선택할 수도 있습니다. 각 방법의 특성이 다음 표에 나와 있습니다.

모니터링 방법 모니터링할 수 있는이벤트

데이터에 액세스하는 방법

세부 정보의 수준 세부 수준

Amazon SES 콘솔 전송 완료 및 거부 Amazon SES 콘솔의 발신 통계 페이지 (p. 244)

개수만 전체 AWS 계정

242

Page 251: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드

모니터링 방법 모니터링할 수 있는이벤트

데이터에 액세스하는 방법

세부 정보의 수준 세부 수준

Amazon SES 콘솔 반송 및 불만 제기비율

Amazon SES 콘솔의 평판 대시보드페이지 (p. 347)

계산 비율만 전체 AWS 계정

Amazon SES API: 전송 완료, 반송, 불만 제기, 거부

GetSendStatisticsAPI 연산

개수만 전체 AWS 계정

AmazonCloudWatch 콘솔

전송, 배달, 열기,클릭, 반송 메일, 반송 메일 비율, 수신거부, 수신 거부 비율 및 거부

CloudWatch 콘솔

Note

연관된 이벤트가 발생할 때까지 일부 지표가CloudWatch에 표시되지 않습니다. 예를들어, 반송 메일지표는 반송 메일을 전송하는 이메일이 하나 이상 있거나메일박스시뮬레이터 (p. 175)를사용하여시뮬레이션된 반송메일 이벤트를 생성할 때까지CloudWatch에 표시되지 않습니다.

개수만 전체 AWS 계정

피드백 알림 전송 완료, 반송 및불만 제기

Amazon SNS 알림(전달, 반송 메일 및수신 거부) 또는 이메일(반송 메일 및수신 거부만)

각 이벤트의 세부정보

전체 AWS 계정

이벤트 게시 전송, 배달, 열기,클릭, 반송 메일, 불만, 거부, 렌더링 실패.

AmazonCloudWatch 또는Amazon KinesisData Firehose, 혹은 Amazon SNS 알림을 통해

각 이벤트의 세부정보

자세히(사용자 정의 가능한 이메일특성에 근거)

243

Page 252: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Monitoring using the console

Note

이메일 전송 이벤트에서 측정되는 지표는 발신 할당량과 정확히 일치하지 않을 수도 있습니다. 이러한 불일치는 이메일 반송 및 수신 거부로 인해, 혹은 Amazon SES 받은 편지함 시뮬레이터를 사용하면서 발생할 수 있습니다. 발신 할당량에 얼마나 근접했는지 확인하는 방법에 대한 자세한 내용은발송 할당량 모니터링 (p. 141) 단원을 참조하십시오.

각 모니터링 방법의 사용법에 대한 정보는 다음 주제를 참조하십시오.• Monitoring your sending statistics using the Amazon SES console (p. 244)• Monitoring your usage statistics using the Amazon SES API (p. 244)• Monitoring Amazon SES email sending using notifications (p. 247)• Monitor email sending using Amazon SES event publishing (p. 269)

Monitoring your sending statistics using the AmazonSES console

계정에서 전송한 이메일의 수와 거부된 메시지의 수를 Amazon SES 콘솔에서 직접 모니터링할 수 있습니다.계정의 전송 비율과 거부 비율은 [Sending Statistics] 페이지에 표시됩니다.

평판 대시보드에서 반송 및 불만 제기에 대한 정보를 확인할 수 있습니다. 자세한 정보는 Monitoring yourAmazon SES sender reputation (p. 347) 단원을 참조하십시오.

전송 및 거부 측정치를 보려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 탐색 창에서 [Sending Statistics]를 선택합니다. 사용 통계가 Your Amazon SES Metrics(Amazon SES지표) 아래에 표시됩니다.

3. 지표에 대한 추세 데이터를 보려면 해당 그래프를 두 번 클릭합니다. 그래프를 두 번 클릭하여 분석 기간을 변경할 수도 있습니다.

Monitoring your usage statistics using the AmazonSES API

Amazon SES API는 서비스 사용에 대한 정보를 반환하는 GetSendStatistics 작업을 제공합니다. 따라서 필요할 때는 조정할 수 있도록 전송 통계를 정기적으로 확인하는 것이 바람직합니다.

GetSendStatistics 작업을 호출하면 지난 2주 동안의 전송 활동을 나타내는 데이터 요소 목록이 전송됩니다. 이 목록의 각 데이터 요소는 15분 단위의 활동을 나타내며 해당 기간에 대한 다음과 같은 정보를 포함합니다.

• The number of hard bounces• The number of complaints• The number of delivery attempts (corresponds to the number of emails you have sent)• The number of rejected send attempts• A timestamp for the analysis period

GetSendStatistics 작업의 전체 설명을 보려면 Amazon Simple Email Service API Reference를 참조하십시오.

244

Page 253: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Calling the GetSendStatisticsAPI operation using the AWS CLI

이 단원에는 다음과 같은 주제가 포함되어 있습니다.

• the section called “Calling the GetSendStatistics API operation using the AWS CLI” (p. 245)• the section called “Calling the GetSendStatistics operation programmatically” (p. 245)

Calling the GetSendStatistics API operation usingthe AWS CLIGetSendStatistics API 작업을 가장 쉽게 호출하려면 AWS Command Line Interface(AWS CLI)를 사용해야 합니다.

AWS CLI를 사용하여 GetSendStatistics API 작업을 호출하려면

1. AWS CLI를 아직 설치하지 않았다면 설치합니다. 자세한 내용은 " 참조설치 AWS Command LineInterface인치 AWS Command Line Interface User Guide.

2. AWS CLI를 아직 구성하지 않았다면 AWS 자격 증명을 사용하도록 구성합니다. 자세한 내용은 AWSCLI의 AWS Command Line Interface User Guide 구성 단원을 참조하십시오.

3. 명령줄에 aws ses get-send-statistics를 입력합니다.

AWS CLI를 올바로 구성하였다면 JSON 형식으로 전송 통계 목록이 나타납니다. JSON 객체에는 각각15분 동안 수집된 전송 통계가 포함됩니다.

Calling the GetSendStatistics operationprogrammaticallyGetSendStatistics 작업은 AWS SDK를 사용하여 호출할 수도 있습니다. 이 단원에는 Go, PHP, Python및 Ruby용 AWS SDK의 코드 예제가 포함되어 있습니다. 다음 링크 중 하나를 선택하면 해당 언어의 코드 예제를 볼 수 있습니다.

• Code example for the Go용 AWS SDK (p. 245)• Code example for the PHP용 AWS SDK (p. 246)• Code example for the AWS SDK for Python (Boto) (p. 247)• Code example for the Ruby용 AWS SDK (p. 247)

Note

위 코드 예제는 AWS 액세스 키 ID, AWS 보안 액세스 키, 원하는 AWS 리전이 포함된 AWS 공유 자격 증명 파일을 이미 생성했다는 가정을 전제로 합니다. 자세한 정보는 Create a shared credentialsfile (p. 29) 단원을 참조하십시오.

Calling GetSendStatistics using the Go용 AWS SDKpackage main import ( "fmt" //go get github.com/aws/aws-sdk-go/... "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/ses" "github.com/aws/aws-sdk-go/aws/awserr"

245

Page 254: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Calling the GetSendStatistics

operation programmatically

) const ( // Replace us-west-2 with the AWS Region you're using for Amazon SES. AwsRegion = "us-west-2") func main() { // Create a new session and specify an AWS Region. sess, err := session.NewSession(&aws.Config{ Region:aws.String(AwsRegion)}, ) // Create an SES client in the session. svc := ses.New(sess) input := &ses.GetSendStatisticsInput{} result, err := svc.GetSendStatistics(input) // Display error messages if they occur. if err != nil { if aerr, ok := err.(awserr.Error); ok { switch aerr.Code() { default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println(result)}

Calling GetSendStatistics using the PHP용 AWS SDK<?php

// Replace path_to_sdk_inclusion with the path to the SDK as described in // http://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/basic-usage.htmldefine('REQUIRED_FILE','path_to_sdk_inclusion'); // Replace us-west-2 with the AWS Region you're using for Amazon SES.define('REGION','us-west-2');

require REQUIRED_FILE;

use Aws\Ses\SesClient;

$client = SesClient::factory(array( 'version'=> 'latest', 'region' => REGION));

try { $result = $client->getSendStatistics([]); echo($result);} catch (Exception $e) { echo($e->getMessage()."\n");}

246

Page 255: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Monitoring using notifications

?>

Calling GetSendStatistics using the AWS SDK for Python(Boto)import boto3 개pip install boto3import jsonfrom botocore.exceptions import ClientError

client = boto3.client('ses')

try: response = client.get_send_statistics()except ClientError as e: print(e.response['Error']['Message'])else: print(json.dumps(response, indent=4, sort_keys=True, default=str))

Calling GetSendStatistics using the Ruby용 AWS SDKrequire 'aws-sdk' 개 gem install aws-sdkrequire 'json'

개 Replace us-west-2 with the AWS Region you're using for Amazon SES.awsregion = "us-west-2"

개 Create a new SES resource and specify a regionses = Aws::SES::Client.new(region: awsregion)

begin

resp = ses.get_send_statistics({ }) puts JSON.pretty_generate(resp.to_h)

개 If something goes wrong, display an error message.rescue Aws::SES::Errors::ServiceError => error puts error

end

Monitoring Amazon SES email sending usingnotifications

Amazon SES를 사용하여 이메일을 전송하려면 반송 메일 및 수신 거부를 관리하기 위한 시스템이 마련되어있어야 합니다. Amazon SES는 알림 이메일을 전송하거나 Amazon SNS 주제에 알리거나 전송 이벤트를 게시하여 반송 메일 또는 수신 거부 이벤트를 알릴 수 있습니다. 이 단원에는 이메일을 보내거나 Amazon SNS주제에 알려 특정 종류의 알림을 보내도록 Amazon SES를 설정하는 방법에 대한 정보가 들어 있습니다. 전송 이벤트 게시에 대한 자세한 내용은 Monitor email sending using Amazon SES event publishing (p. 269)단원을 참조하십시오.

Amazon SES 콘솔 또는 Amazon SES API를 사용하여 알림을 설정할 수 있습니다.

주제

247

Page 256: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Important considerations

• Important considerations (p. 248)• Amazon SES notifications sent by email (p. 248)• Amazon SES notifications sent through Amazon SNS (p. 250)

Important considerations알림을 보내도록 Amazon SES를 설정할 때 고려해야 할 몇 가지 중요한 사항이 있습니다.

• Email and Amazon SNS notifications apply to individual identities (the verified email addresses ordomains you use to send email). When you enable notifications for an identity, Amazon SES only sendsnotifications for emails sent from that identity, and only in the AWS Region you configured notifications in.

• You have to enable one method of receiving bounce or complaint notifications. You can send notificationsto the domain or email address that generated the bounce or complaint, or to an Amazon SNS topic.You can also use event publishing (p. 269) to send notifications about several different types of events(including bounces, complaints, deliveries, and more) to an Amazon SNS topic or an Kinesis DataFirehose stream.

If you don't set up one of these methods of receiving bounce or complaint notifications, Amazon SESautomatically forwards bounce and complaint notifications to the Return-Path address (or the Sourceaddress, if you didn't specify a Return-Path address) in the email that resulted in the bounce or complaintevent, even if you disabled email feedback forwarding.

If you disable email feedback forwarding and enable event publishing, you must apply the configurationset that contains the event publishing rule to all emails you send. In this situation, if you don't use theconfiguration set, Amazon SES automatically forwards bounce and complaint notifications to the Return-Path or Source address in the email that resulted in the bounce or complaint event.

• If you set up Amazon SES to send bounce and complaint events using more than one method (such asby sending email notifications and by using sending events), you may receive more than one notificationfor the same event.

Amazon SES notifications sent by emailAmazon SES 다음과 같은 절차를 사용하여 바운스와 불만을 받을 때 이메일을 보낼 수 있습니다. emailfeedback forwarding.

Amazon SES를 사용하여 이메일을 보내려면 다음 방법 중 하나를 사용하여 반송 메일 및 수신 거부 알림을보내도록 이를 구성해야 합니다.

• By enabling email feedback forwarding. The procedure for setting up this type of notification is included inthis section.

• By sending notifications to an Amazon SNS topic. For more information, see Amazon SES notificationssent through Amazon SNS (p. 250).

• By publishing event notifications. For more information, see Monitor email sending using Amazon SESevent publishing (p. 269).

Important

알림에 대한 몇 가지 중요 사항은 Monitoring Amazon SES email sending usingnotifications (p. 247) 단원을 참조하십시오.

주제• Enabling email feedback forwarding (p. 249)• Disabling email feedback forwarding (p. 249)

248

Page 257: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Notifications through email

• Email feedback forwarding destination (p. 250)

Enabling email feedback forwarding이메일 피드백 전달은 기본적으로 활성화되어 있습니다. 이전에 비활성화한 경우 이 단원의 절차에 따라 활성화할 수 있습니다.

Amazon SES 콘솔을 사용하여 이메일을 통한 반송 메일과 수신 거부 전달을 활성화하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 탐색 창의 [Identity Management] 아래에서 이메일 주소에 대해 반송 메일과 불만 제기 알림을 구성하려는 경우 [Email Addresses]를, 도메인에 대해 반송 메일과 불만 제기 알림을 구성하려는 경우 [Domains]를 선택합니다.

3. 확인된 이메일 주소 또는 도메인 목록에서 반송 메일 및 수신 거부 알림을 구성할 이메일 주소 또는 도메인을 선택합니다.

4. 세부 정보 창에서 [Notifications] 섹션을 확장합니다.5. [Edit Configuration]을 선택합니다.6. [Email Feedback Forwarding] 아래에서 [Enabled]를 선택합니다.

Note

이 페이지에서 수행한 변경 사항이 적용되려면 몇 분이 걸릴 수 있습니다.

SetIdentityFeedbackForwardingEnabled API 작업을 사용하여 이메일을 통한 반송 메일과 수신 거부 알림을활성화할 수도 있습니다.

Disabling email feedback forwarding반송 메일 및 수신 거부 알림을 제공하는 다른 방법을 설정한 경우, 반송 메일 또는 수신 거부 이벤트가 발생할 때 여러 알림을 수신하지 않도록 이메일 피드백 전달을 비활성화할 수 있습니다.

Amazon SES 콘솔을 사용하여 이메일을 통한 반송 메일과 수신 거부 전달을 비활성화하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 탐색 창의 [Identity Management] 아래에서 이메일 주소에 대해 반송 메일과 불만 제기 알림을 구성하려는 경우 [Email Addresses]를, 도메인에 대해 반송 메일과 불만 제기 알림을 구성하려는 경우 [Domains]를 선택합니다.

3. 확인된 이메일 주소 또는 도메인 목록에서 반송 메일 및 수신 거부 알림을 구성할 이메일 주소 또는 도메인을 선택합니다.

4. 세부 정보 창에서 [Notifications] 섹션을 확장합니다.5. [Edit Configuration]을 선택합니다.6. [Email Feedback Forwarding] 아래에서 [Disabled]를 선택합니다.

Note

Amazon SES를 통해 이메일을 보내려면 반송 메일 및 수신 거부 알림을 수신하는 방법 한 가지를 구성해야 합니다. 이메일 피드백 전달을 비활성화한 경우 이벤트 게시 (p. 269)를 사용하여 Amazon SNS 주제 또는 Kinesis Data Firehose 스트림에 반송 메일 및 수신 거부 이벤트를게시하거나 Amazon SNS를 통해 전송되는 알림을 활성화해야 합니다. 이벤트 게시를 사용하는 경우, 이벤트 게시 규칙이 포함된 구성 세트를 전송하는 각 이메일에 적용해야 합니다. 반송메일 및 수신 거부 알림을 수신하는 방법을 설정하지 않은 경우 Amazon SES는 반송 메일 또는수신 거부 이벤트를 발생시킨 메시지의 Return-Path 필드(또는 Return-Path 주소를 지정하지

249

Page 258: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

않은 경우 소스 필드)에 있는 주소로 이메일을 통해 피드백 알림을 자동으로 전달합니다. 이 상황에서는 이메일 피드백 알림을 비활성화했더라도 Amazon SES가 반송 메일 및 수신 거부 알림을 전달합니다.

7. [Save Config]를 클릭하여 알림 구성을 저장합니다.Note

이 페이지에서 수행한 변경 사항이 적용되려면 몇 분이 걸릴 수 있습니다.

SetIdentityFeedbackForwardingEnabled API 작업을 사용하여 이메일을 통한 반송 메일과 수신 거부 알림을비활성화할 수도 있습니다.

Email feedback forwarding destination이메일로 알림을 받으면 Amazon SES에서 From 헤더를 다시 쓰고 알림을 보냅니다. Amazon SES에서 알림을 전달하는 주소는 사용자가 원본 메시지를 보낸 방식에 따라 다릅니다.

SMTP 인터페이스를 사용하여 메시지를 보낸 경우, MAIL FROM 명령에 지정된 주소로 알림이 전송됩니다.

SendEmail API 작업을 사용하여 메시지를 보낸 경우, 알림이 다음 규칙에 따라 전송됩니다.

• If you specified the optional ReturnPath parameter in your call to the SendEmail API, thennotifications go to that address.

• Otherwise, notifications go to the address specified in the required Source parameter of SendEmail.

SendRawEmail API 작업을 사용하여 메시지를 보낸 경우, 알림이 다음 규칙에 따라 전송됩니다.

• If you specified a Source parameter in your call to the SendRawEmail API, then notifications go to thataddress. This is true even if you specified a Return-Path header in the body of the email.

• Otherwise, if you specified a Return-Path header in the raw message, then notifications go to thataddress.

• Otherwise, notifications go to the address in the From header of the raw message.

Note

Return-Path 주소를 이메일에 지정한 경우 해당 주소에서 알림을 받게 됩니다. 하지만 수신자가 받는 메시지 버전은 Return-Path (예: a0b1c2d3e4f5a6b7-c8d9e0f1-a2b3-c4d5-e6f7-a8b9c0d1e2f3-000000@amazonses.com) ). 이 익명화는 이메일 발신 방법과 상관없이 발생합니다.

Amazon SES notifications sent through Amazon SNS반송 메일 또는 수신 거부를 수신하거나 이메일이 전송되면 Amazon SNS 주제에 알리도록 Amazon SES를구성할 수 있습니다. Amazon SNS 알림은 JavaScript Object Notation(JSON) 형식이므로 프로그래밍 방식으로 알림을 처리할 수 있습니다.

Amazon SES를 사용하여 이메일을 보내려면 다음 방법 중 하나를 사용하여 반송 메일 및 수신 거부 알림을보내도록 이를 구성해야 합니다.

• By sending notifications to an Amazon SNS topic. The procedure for setting up this type of notification isincluded in this section.

• By enabling email feedback forwarding. For more information, see Amazon SES notifications sent byemail (p. 248).

• By publishing event notifications. For more information, see Monitor email sending using Amazon SESevent publishing (p. 269).

250

Page 259: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

Important

알림에 대한 중요한 정보는 Monitoring Amazon SES email sending using notifications (p. 247) 단원을 참조하십시오.

주제• Configuring Amazon SNS notifications for Amazon SES (p. 251)• Amazon SNS notification contents for Amazon SES (p. 253)• Amazon SNS notification examples for Amazon SES (p. 263)

Configuring Amazon SNS notifications for Amazon SESAmazon SES는 Amazon Simple Notification Service(Amazon SNS)를 통해 반송 메일, 수신 거부 및 배달에대해 알릴 수 있습니다.

Amazon SES 콘솔에서 또는 Amazon SES API를 사용하여 알림을 구성할 수 있습니다.

이 단원의 주제:• Prerequisites (p. 251)• Configuring notifications using the Amazon SES console (p. 252)• Configuring notifications using the Amazon SES API (p. 253)• Troubleshooting feedback notifications (p. 253)

Prerequisites

Amazon SES에서 Amazon SNS 알림을 설정하기 전에 다음 단계를 완료해야 합니다.

1. Amazon SNS에서 주제를 생성합니다. 자세한 내용은 주제 생성 in the Amazon Simple NotificationService 개발자 안내서.

2. 하나 이상의 엔드포인트를 주제에 구독시킵니다. 예를 들어 문자 메시지로 알림을 수신하고자 하는 경우SMS 엔드포인트(예: 휴대폰 번호)를 주제에 구독시킵니다. 이메일로 알림을 수신하려면 이메일 엔드포인트(이메일 주소)를 주제에 구독시킵니다.

자세한 내용은 시작하기(출처: Amazon Simple Notification Service 개발자 안내서)를 참조하십시오.3. (선택 사항) Amazon SNS 주제가 서버 측 암호화를 위해 AWS Key Management Service(AWS KMS)를

사용한다면 AWS KMS 키 정책에 권한을 추가해야 합니다. 다음 정책을 AWS KMS 키 정책에 연결하여권한을 추가할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSESToUseKMSKey", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" } ]

251

Page 260: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

}

Configuring notifications using the Amazon SES console

Amazon SES 콘솔을 사용하여 알림을 구성하려면

1. https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.2. 탐색 창의 [Identity Management]에서 [Domains] 또는 [Email Addresses]를 선택합니다.3. 확인된 발신자 목록에서 알림을 구성할 이메일 주소 또는 도메인을 선택합니다.

Important

검증된 도메인 알림 설정은 해당 도메인의 이메일 주소에서 보내는 모든 메일에 적용됩니다.except 확인되는 이메일 주소의 경우

4. [Notifications] 아래에서 [Edit Configuration]을 선택합니다.5. SNS Topic Configuration(SNS 주제 구성)에서 Amazon SNS 주제 구성을 다음과 같이 변경합니다.

a. 알림을 수신하는 데 사용하려는 Amazon SNS 주제를 선택합니다. 동일한 Amazon SNS 주제 또는다른 Amazon SNS 주제에 여러 이벤트 유형 알림을 게시할 수 있습니다.

Important

반송 메일, 수신 거부 및 전송 알림에 사용하는 Amazon SNS 주제는 Amazon SES를 사용하는 AWS 리전과 동일한 리전에 있어야 합니다.또한 알림을 받으려면 엔드포인트 하나 이상을 주제에 대해 구독하도록 해야 합니다. 예를들어, 이메일 주소로 알림을 전송하고자 하는 경우 이메일 엔드포인트를 주제에 대해 구독하도록 해야 합니다. 자세한 내용은 시작하기(출처: Amazon Simple Notification Service 개발자 안내서)를 참조하십시오.

소유하지 않은 Amazon SNS 주제를 사용하려면 해당 Amazon SNS 주제에 대한 Amazon 리소스이름(ARN)의 게시를 허용하도록 AWS Identity and Access Management(IAM) 정책을 구성해야 합니다.

b. Amazon SNS 알림에 Amazon SES로 전달한 이메일의 원래 헤더를 포함시키려면 Include originalheaders(원래 헤더 포함)를 선택합니다. 이 옵션은 연결된 알림 유형에 Amazon SNS 주제를 지정한 경우에만 사용할 수 있습니다. 원래 이메일 헤더의 내용에 대한 자세한 내용은 Amazon SNSnotification contents (p. 253)에서 mail 객체를 참조하십시오.

6. (선택 사항) 반송 메일과 수신 거부 둘 다에 Amazon SNS 주제를 선택한 경우 이메일 알림을 완전히 비활성화할 수 있습니다. 반송 메일 및 수신 거부에 대해 이메일 알림을 비활성화하려면 Email FeedbackForwarding(이메일 피드백 전달)에서 비활성화를 선택합니다. 전송 알림은 Amazon SNS를 통해서만 받을 수 있습니다.

7. [Save Config]를 선택합니다. 알림 설정의 변경 사항이 적용되려면 몇 분 정도 걸릴 수 있습니다.

설정 구성을 마치면 반송 메일, 수신 거부 및/또는 전송 알림이 사용자의 Amazon SNS 주제로 수신되기 시작할 것입니다. 이 알림은 JSON(JavaScript Object Notation) 형식이며 Amazon SNS notificationcontents (p. 253)에서 설명하는 구조를 따릅니다.

반송 메일, 수신 거부 및 전송 알림에 대한 표준 Amazon SNS 요금이 청구됩니다. 자세한 내용은 AmazonSNS 요금 페이지를 참조하십시오.

Note

Amazon SNS 주제가 삭제되거나 AWS 계정에 이 주제를 게시할 권한이 더 이상 없어서 이 주제에게시하려는 시도가 실패하면 Amazon SES가 이 주제에 구성을 제거합니다. 또한 Amazon SES는자격 증명의 반송 메일 및 수신 거부 이메일 알림을 다시 활성화하고, 변경 알림이 이메일로 수신됩니다. 주제를 사용하도록 여러 자격 증명이 구성되면 각 자격 증명이 주제에 게시하는 데 실패할 경우 각 자격 증명의 주제 구성이 변경됩니다.

252

Page 261: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

Configuring notifications using the Amazon SES API

Amazon SES API를 사용하여 반송 메일, 수신 거부 및 전송 알림을 구성할 수도 있습니다. 다음 작업을 사용하여 알림을 구성합니다.

• SetIdentityNotificationTopic• SetIdentityFeedbackForwardingEnabled• GetIdentityNotificationAttributes• SetIdentityHeadersInNotificationsEnabled

이러한 API 작업을 사용하여 알림을 위한 사용자 지정 프런트 엔드 애플리케이션을 작성할 수 있습니다. 알림과 관련된 API 작업에 대한 자세한 설명은 Amazon Simple Email Service API Reference를 참조하십시오.

Troubleshooting feedback notifications

알림이 수신되지 않음

알림이 수신되지 않으면 알림이 전송되는 주제에 대해 엔드포인트를 구독하도록 했는지 확인하십시오. 이메일 엔드포인트를 주제에 대해 구독하도록 하면 구독 확인을 요청하는 이메일을 받게 됩니다. 이메일 알림수신을 시작하기 전에 구독을 확인해야 합니다. 자세한 내용은 시작하기(출처: Amazon Simple NotificationService 개발자 안내서)를 참조하십시오.

주제를 선택할 때 InvalidParameterValue 오류 발생

InvalidParameterValue 오류가 발생했다는 내용의 메시지를 받으면 AWS KMS를 사용하여 암호화되었는지 Amazon SNS 주제를 확인하십시오. 그렇다면 AWS KMS 키의 정책을 수정해야 합니다. 샘플 정책은Prerequisites (p. 251) 단원을 참조하십시오.

Amazon SNS notification contents for Amazon SES반송 메일, 수신 거부 및 전송 알림이 Amazon Simple Notification Service(Amazon SNS) 주제에 JavaScriptObject Notation(JSON) 형식으로 게시됩니다. 최상위 JSON 객체는 notificationType 문자열, mail 객체 및 bounce 객체, complaint 객체 또는 delivery 객체를 포함합니다.

다양한 객체 유형에 대한 설명은 다음 단원을 참조하십시오.

• Top-level JSON object (p. 254)• 개개 object (p. 254)• 개개 개개 object (p. 256)• 개개 개개 object (p. 260)• .delivery object (p. 262)

다음은 Amazon SES용 Amazon SNS 알림의 내용에 관한 몇 가지 중요한 정보입니다.

• For a given notification type, you might receive one Amazon SNS notification for multiple recipients, oryou might receive a single Amazon SNS notification per recipient. Your code should be able to parsethe Amazon SNS notification and handle both cases; Amazon SES does not make ordering or batchingguarantees for notifications sent through Amazon SNS. However, different Amazon SNS notificationtypes (for example, bounces and complaints) are never combined into a single notification.

• You might receive multiple types of Amazon SNS notifications for one recipient. For example, thereceiving mail server might accept the email (triggering a delivery notification), but after processing theemail, the receiving mail server might determine that the email actually results in a bounce (triggeringa bounce notification). However, these are always separate notifications because they are differentnotification types.

253

Page 262: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

• Amazon SES reserves the right to add additional fields to the notifications. As such, applications thatparse these notifications must be flexible enough to handle unknown fields.

• Amazon SES overwrites the headers of the message when it sends the email. You can retrieve theheaders of the original message from the headers and commonHeaders fields of the mail object.

Top-Level JSON objectAmazon SES 알림 내 최상위 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

notificationType JSON 객체가 나타내는 알림 유형을 담고 있는문자열. 가능한 값은 Bounce, Complaint 또는Delivery입니다.

mail 알림과 관련이 있는 원래 메일에 대한 정보를 포함하는 JSON 객체. 자세한 정보는 Mailobject (p. 254) 단원을 참조하십시오.

bounce 이 필드는 notificationType이 Bounce이고반송 메일에 대한 정보를 담고 있는 JSON 객체를 포함하는 경우에만 존재합니다. 자세한 정보는Bounce object (p. 256) 단원을 참조하십시오.

complaint 이 필드는 notificationType이 Complaint이고 불만 제기에 대한 정보를 담고 있는 JSON 객체를 포함하는 경우에만 존재합니다. 자세한 정보는Complaint object (p. 260) 단원을 참조하십시오.

delivery 이 필드는 notificationType이 Delivery이고전송에 대한 정보를 담고 있는 JSON 객체를 포함하는 경우에만 존재합니다. 자세한 정보는 Deliveryobject (p. 262) 단원을 참조하십시오.

Mail object각 반송 메일, 불만 제기 또는 전송 알림은 mail 객체에 원래 메일에 대한 정보를 포함하고 있습니다. mail객체 정보를 포함하는 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

timestamp 원래 메시지가 전송된 시간(ISO8601 형식).

messageId Amazon SES에서 메시지에 할당한 고유 ID입니다.Amazon SES는 메시지를 보낼 때 이 값을 반환합니다.

Note

이 메시지 ID는 Amazon SES에서 할당한 것입니다. mail 객체의 headers 및commonHeaders 필드에서 원래 메시지의메시지 ID를 찾을 수 있습니다.

source 원래 메시지를 전송한 이메일 주소(엔벌로프 MAILFROM 주소).

254

Page 263: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

필드 이름 설명

sourceArn 이메일을 전송하는 데 사용된 자격 증명의 Amazon리소스 이름(ARN). 권한 부여 전송의 경우sourceArn은 자격 증명 소유자가 위임 발신자에게메일 전송 시 사용하도록 권한을 부여한 자격 증명의 ARN입니다. 권한 부여 전송에 대한 자세한 내용은 Using sending authorization (p. 144) 단원을 참조하십시오.

sourceIp Amazon SES에 이메일 전송 요청을 한 클라이언트의 원본 퍼블릭 IP 주소.

sendingAccountId 이메일을 전송하는 데 사용된 계정의 AWS 계정 ID.권한 부여 전송의 경우 sendingAccountId는 위임 발신자의 계정 ID입니다.

destination 원래 메일의 수신자인 이메일 주소의 목록.

headersTruncated 이 객체는 원본 이메일의 헤더를 포함하도록 알림설정을 구성한 경우에만 존재합니다.

헤더가 알림에서 잘렸는지 여부를 나타냅니다.Amazon SES는 원본 메시지의 헤더 크기가 10KB이상인 경우 알림에서 헤더를 자릅니다. 가능한 값은 true 및 false입니다.

headers 이 객체는 원본 이메일의 헤더를 포함하도록 알림설정을 구성한 경우에만 존재합니다.

이메일의 원래 헤더 목록입니다. 목록의 각 헤더에는 name 필드와 value 필드가 존재합니다.

Note

headers 객체 내의 모든 메시지 ID는Amazon SES로 전달한 원본 메시지에서가져온 것입니다. 이어서 Amazon SES가메시지에 할당한 메시지 ID는 mail 객체의messageId 필드에 들어 있습니다.

commonHeaders 이 객체는 원본 이메일의 헤더를 포함하도록 알림설정을 구성한 경우에만 존재합니다.

원본 이메일의 공통 이메일 헤더(예: 보내는 사람, 받는 사람, 제목 필드)에 대한 정보를 포함합니다. 이객체 내에서 각 헤더는 키입니다. 보내는 사람 및 받는 사람 필드는 여러 값을 포함할 수 있는 어레이로표현됩니다.

Note

commonHeaders 객체 내의 모든 메시지ID는 Amazon SES로 전달한 원본 메시지에서 가져온 것입니다. 이어서 AmazonSES가 메시지에 할당한 메시지 ID는 mail객체의 messageId 필드에 들어 있습니다.

255

Page 264: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

다음은 원래 이메일 헤더가 포함되어 있는 mail 객체의 예제입니다. 이 알림 유형에 원래 이메일 헤더가 포함되도록 구성하지 않은 경우, mail 객체에 headersTruncated, headers 및 commonHeaders 필드가 없습니다.

{ "timestamp":"2018-10-08T14:05:45 +0000", "messageId":"000001378603177f-7a5433e7-8edb-42ae-af10-f0181f34d6ee-000000", "source":"[email protected]", "sourceArn": "arn:aws:ses:us-west-2:888888888888:identity/example.com", "sourceIp": "127.0.3.0", "sendingAccountId":"123456789012", "destination":[ "[email protected]" ], "headersTruncated":false, "headers":[ { "name":"From", "value":"\"Sender Name\" <[email protected]>" }, { "name":"To", "value":"\"Recipient Name\" <[email protected]>" }, { "name":"Message-ID", "value":"custom-message-ID" }, { "name":"Subject", "value":"Hello" }, { "name":"Content-Type", "value":"text/plain; charset=\"UTF-8\"" }, { "name":"Content-Transfer-Encoding", "value":"base64" }, { "name":"Date", "value":"Mon, 08 Oct 2018 14:05:45 +0000" } ], "commonHeaders":{ "from":[ "Sender Name <[email protected]>" ], "date":"Mon, 08 Oct 2018 14:05:45 +0000", "to":[ "Recipient Name <[email protected]>" ], "messageId":" custom-message-ID", "subject":"Message sent using Amazon SES" }}

Bounce object

반송 메일에 대한 정보를 포함하는 JSON 객체는 다음 필드로 구성됩니다.

256

Page 265: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

필드 이름 설명

bounceType Amazon SES가 결정한 반송 메일의 유형. 자세한 정보는 Bounce types (p. 258) 단원을 참조하십시오.

bounceSubType Amazon SES가 결정한 반송 메일의 하위 유형. 자세한 정보는 Bounce types (p. 258) 단원을 참조하십시오.

bouncedRecipients 반송된 원래 메일의 수신자 정보를 포함하는 목록.자세한 정보는 Bounced recipients (p. 258) 단원을 참조하십시오.

timestamp 반송 메일이 전송된 날짜 및 시간(ISO8601 형식). 이값은 Amazon SES가 알림을 수신한 시간이 아니라ISP가 알림을 전송한 시간입니다.

feedbackId 반송 메일의 고유 ID.

Amazon SES에서 원격 메시지 전송 권한(MTA)에 연락할 수 있는 경우 다음 필드도 표시됩니다.

필드 이름 설명

remoteMtaIp Amazon SES에서 이메일 전송을 시도한 MTA의 IP주소입니다.

반송 메일에 전송 상태 알림(DSN)이 첨부된 경우 다음 필드도 존재합니다.

필드 이름 설명

reportingMTA DSN의 Reporting-MTA 필드의 값. DSN에서 설명하는 전송, 중계 또는 게이트웨이 작업을 시도하는MTA의 값입니다.

다음은 bounce 객체의 예입니다.

{ "bounceType":"Permanent", "bounceSubType": "General", "bouncedRecipients":[ { "status":"5.0.0", "action":"failed", "diagnosticCode":"smtp; 550 user unknown", "emailAddress":"[email protected]" }, { "status":"4.0.0", "action":"delayed", "emailAddress":"[email protected]" } ], "reportingMTA": "example.com", "timestamp":"2012-05-25T14:59:38.605Z", "feedbackId":"000001378603176d-5a4b5ad9-6f30-4198-a8c3-b1eb0c270a1d-000000", "remoteMtaIp":"127.0.2.0"

257

Page 266: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

}

Bounced recipients

반송 메일 알림은 단일 수신자 또는 여러 수신자와 관련이 있을 수 있습니다. bouncedRecipients 필드는객체(반송 메일 알림이 관련된 수신자당 1개)의 목록을 포함하고 있으며 항상 다음 필드로 구성됩니다.

필드 이름 설명

emailAddress 수신자의 이메일 주소. DSN이 사용 가능할 경우,DSN의 Final-Recipient 필드의 값입니다.

또는 반송 메일에 DSN이 첨부된 경우 다음 필드도 존재할 수 있습니다.

필드 이름 설명

action DSN의 Action 필드의 값. 이 수신자에게 메시지를전송하려는 시도의 결과로 보고-MTA가 수행하는 작업을 나타냅니다.

status DSN의 Status 필드의 값. 메시지의 전송 상태를나타내는 수신자별 전송 독립적 상태 코드입니다.

diagnosticCode 보고-MTA가 발행한 상태 코드. DSN의Diagnostic-Code 필드의 값입니다. 이 필드가DSN에는 없을 수 있습니다(따라서 JSON에도 없음).

다음은 bouncedRecipients 목록에 포함될 수 있는 객체의 예입니다.

{ "emailAddress": "[email protected]", "action": "failed", "status": "5.0.0", "diagnosticCode": "X-Postfix; unknown user"}

Bounce types

바운스 물체에 바운스 유형이 Undetermined, Permanent, 또는 Transient. Permanent andTransient 바운스 유형에는 여러 가지 바운스 아형 중 하나도 포함될 수 있습니다.

Transient 반송 메일 유형이 포함된 반송 메일 알림을 받을 경우, 나중에 메시지 반송의 원인이 해결될 경우 해당 수신자에게 이메일을 보낼 수 있습니다.

Permanent 반송 메일 유형이 포함된 반송 메일 알림을 받을 경우에는 나중에도 해당 수신자에게 이메일을보내지 못할 가능성이 큽니다. 이러한 이유로 메일 발송 목록에서 반송 메일을 생성한 주소의 수신자를 즉시제거해야 합니다.

Note

a soft bounce (받는 사람의 받은 편지함과 같은 임시 문제와 관련된 바운스)가 발생합니다. AmazonSES 일정 기간 동안 이메일을 다시 전달하려고 시도합니다. 이 기간이 끝나도 이메일을 전송할 수없으면 Amazon SES는 시도를 중단합니다.Amazon SES는 하드 바운스뿐만 아니라 소프트 바운스에 대해서도 전송 시도를 중지했다는 알림을 보냅니다. 소프트 바운스가 발생할 때마다 알림을 받으려면 이벤트 게시를 활성화 (p. 271)하고전송 지연 이벤트가 발생할 때 알림을 보내도록 구성합니다.

258

Page 267: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

bounceType bounceSubType 설명

Undetermined Undetermined 수신자의 이메일 공급자가 반송 메일 메시지를 보냈습니다. 반송 메일 메시지에 Amazon SES에서 반송의 원인을 파악하기에 충분한 정보가 포함되어 있지않습니다. 반송 메일이 발생한 이메일의 반환 경로헤더로 전송된 반송 이메일에 이메일 반송을 일으킨문제에 대한 추가 정보가 들어 있을 수 있습니다.

Permanent General 수신자의 이메일 공급자가 하드 바운스 메시지를 보냈지만, 하드 바운스의 원인을 명시하지 않았습니다.

Important

이러한 유형의 반송 메일 알림을 받은 경우,메일 발송 목록에서 이 수신자의 이메일 주소를 즉시 제거해야 합니다. 하드 바운스를생성하는 주소로 메시지를 보내면 발신자로서 평판에 부정적인 영향을 줄 수 있습니다. 하드 바운스를 생성하는 주소로 계속 이메일을 보내면 더 이상 이메일을 보내지 못하게 계정 사용을 일시 중지할 수 있습니다.

Permanent NoEmail 의도한 수신자의 이메일 공급자가 이메일 주소가 존재하지 않음을 의미하는 반송 메일 메시지를 보냈습니다.

Important

이러한 유형의 반송 메일 알림을 받은 경우,메일 발송 목록에서 이 수신자의 이메일 주소를 즉시 제거해야 합니다. 존재하지 않는주소로 메시지를 보내면 발신자로서 평판에 부정적인 영향을 줄 수 있습니다. 존재하지 않는 주소로 계속 이메일을 보내면 더 이상 이메일을 보내지 못하게 계정 사용을 일시 중지할 수 있습니다.

Permanent Suppressed 수신자의 이메일 주소가 최근에 하드 바운스를 생성했다는 이력 때문에 Amazon SES 금지 목록에 있습니다. Amazon SES 금지 목록에서 주소를 제거하는방법에 대한 자세한 내용은 Using the Amazon SESglobal suppression list (p. 187) 단원을 참조하십시오.

Permanent OnAccountSuppressionList Amazon SES는 계정 수준 금지 목록 (p. 177)에 있으므로 이 주소로 보내는 것을 금지했습니다.

Transient General 수신자의 이메일 공급자가 일반 반송 메일 메시지를보냈습니다. 나중에 메시지 반송의 원인이 해결될경우 같은 수신자에게 이메일을 보낼 수 있습니다.

Note

자동 응답 규칙(예: "out of the office" 메시지)이 활성화된 수신자에게 이메일을 보낼경우 이러한 유형의 알림을 받을 수 있습니다. 응답에 Bounce 유형의 알림이 있더라

259

Page 268: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

bounceType bounceSubType 설명도 Amazon SES는 계정의 반송 메일 발생률을 계산할 때 자동 응답을 계산하지 않습니다.

Transient MailboxFull 수신자의 받은 편지함이 꽉 찼기 때문에 수신자의이메일 공급자가 하드 바운스 메시지를 보냈습니다.나중에 받은 편지함이 비워지면 같은 수신자에게 이메일을 보낼 수 있습니다.

Transient MessageTooLarge 보낸 메시지의 크기가 너무 크기 때문에 수신자의이메일 공급자가 하드 바운스 메시지를 보냈습니다.메시지 크기를 줄일 경우 같은 수신자에게 메시지를보낼 수 있습니다.

Transient ContentRejected 보낸 메시지에 공급자가 허용하지 않는 콘텐츠가 포함되어 있기 때문에 수신자의 이메일 공급자가 반송메일 메시지를 보냈습니다. 메시지의 콘텐츠를 변경할 경우 같은 수신자에게 메시지를 보낼 수 있습니다.

Transient AttachmentRejected 메시지에 허용되지 않는 첨부 파일이 포함되어 있기때문에 수신자의 이메일 공급자가 하드 바운스 메시지를 보냈습니다. 예를 들어 일부 이메일 공급자는특정한 파일 형식으로 된 첨부 파일이 들어 있는 메시지나 첨부 파일 크기가 매우 큰 메시지를 거부할수 있습니다. 첨부 파일을 제거하거나 첨부 파일의콘텐츠를 변경할 경우 같은 수신자에게 메시지를 보낼 수 있습니다.

Complaint object

불만 제기에 대한 정보를 포함하는 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

complainedRecipients 불만 제기에 책임이 있을 수 있는 수신자에 대한 정보를 포함하는 목록. 자세한 정보는 ComplainedRecipients (p. 261) 단원을 참조하십시오.

timestamp ISP가 불만 제기 알림을 전송한 날짜와 시간으로,ISO 8601 형식으로 표시됩니다. 이 필드의 날짜 및시간이 Amazon SES에서 알림을 받은 날짜 및 시간과 다를 수 있습니다.

feedbackId 불만과 연결된 고유한 ID입니다.

complaintSubType 고객의 complaintSubType 필드는 null이거나 OnAccountSuppressionList. 값이OnAccountSuppressionList, Amazon SES 메시지를 수락했지만, 그 메시지를 전송하려고 시도하지 않았습니다. 계정 레벨 억제 목록 (p. 177).

또한, 불만 제기에 피드백 보고서가 첨부된 경우 다음 필드가 포함될 수 있습니다.

260

Page 269: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

필드 이름 설명

userAgent 피드백 보고서의 User-Agent 필드의 값입니다. 보고서를 생성한 시스템의 이름 및 버전을 나타냅니다.

complaintFeedbackType ISP로부터 수신된 피드백 보고서의 Feedback-Type 필드의 값. 이 값은 피드백의 유형을 포함합니다.

arrivalDate 피드백 보고서의 Arrival-Date 또는 Received-Date 필드의 값(ISO8601 형식). 이 필드가 보고서에는 없을 수 있습니다(따라서 JSON에도 없음).

다음은 complaint 객체의 예입니다.

{ "userAgent":"ExampleCorp Feedback Loop (V0.01)", "complainedRecipients":[ { "emailAddress":"[email protected]" } ], "complaintFeedbackType":"abuse", "arrivalDate":"2009-12-03T04:24:21.000-05:00", "timestamp":"2012-05-25T14:59:38.623Z", "feedbackId":"000001378603177f-18c07c78-fa81-4a58-9dd1-fedc3cb8f49a-000000"}

Complained Recipients

complainedRecipients 필드는 불만 제기를 제출했을 수 있는 수신자의 목록을 포함합니다. 이 정보를 사용하여 어떤 수신자가 불만을 제출했는지 확인한 후 메일 발송 목록에서 즉시 해당 수신자를 제거해야 합니다.

Important

대부분의 ISP는 불만 제기 알림에서 불만을 제출한 수신자의 이메일 주소를 제거합니다. 이러한 이유로 이 목록은 원래 메시지의 수신자 그리고 AWS가 수신 거부를 수신한 ISP를 기준으로 수신 거부를 발송했을 수 있는 수신자에 대한 정보를 포함합니다. Amazon SES는 원래 메시지를 조회하여이 수신자 목록을 결정합니다.

이 목록의 JSON 객체는 다음 필드를 포함합니다.

필드 이름 설명

emailAddress 수신자의 이메일 주소.

다음은 수신 거부를 제기한 수신자 객체의 예입니다.

{ "emailAddress": "[email protected]" }

261

Page 270: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

Note

이 동작 때문에 (bcc 행에 나열된 30개 이메일 주소로 메시지 1개를 전송하는 대신) 수신자당 메시지 1개로 전송을 제한할 경우 어느 이메일 주소가 메시지에 대해 수신 거부를 제기했는지 더 확실히알 수 있습니다.

Complaint Types

인터넷 할당 번호 관리기관 웹 사이트에 따라 complaintFeedbackType 필드에는 보고 ISP에서 지정한 다음과 같은 수신 거부 유형이 표시될 수 있습니다.

• abuse—Indicates unsolicited email or some other kind of email abuse.• auth-failure—Email authentication failure report.• fraud—Indicates some kind of fraud or phishing activity.• not-spam—Indicates that the entity providing the report does not consider the message to be spam.

This may be used to correct a message that was incorrectly tagged or categorized as spam.• other—Indicates any other feedback that does not fit into other registered types.• virus—Reports that a virus is found in the originating message.

Delivery object

전송에 대한 정보를 포함하는 JSON 객체에는 항상 다음 필드가 포함됩니다.

필드 이름 설명

timestamp Amazon SES가 수신자의 메일 서버로 메일을 전송한 시간(ISO8601 형식).

processingTimeMillis Amazon SES가 발신자로부터 요청을 수락한 때로부터 수신자의 메일 서버로 메시지를 전송한 때까지의 시간(단위: 밀리초).

recipients 전송 알림이 적용되는 이메일이 의도한 수신자의 목록.

smtpResponse Amazon SES로부터 이메일을 수락한 원격 ISP의SMTP 응답 메시지. 이 메시지는 이메일, 수신 메일서버, 수신 ISP마다 다릅니다.

reportingMTA 메일을 전송한 Amazon SES 메일 서버의 호스트 이름.

remoteMtaIp Amazon SES에서 이메일을 전송한 MTA의 IP 주소입니다.

다음은 delivery 객체의 예입니다.

{ "timestamp":"2014-05-28T22:41:01.184Z", "processingTimeMillis":546, "recipients":["[email protected]"], "smtpResponse":"250 ok: Message 64111812 accepted", "reportingMTA":"a8-70.smtp-out.amazonses.com", "remoteMtaIp":"127.0.2.0"}

262

Page 271: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

Amazon SNS notification examples for Amazon SES다음 단원에서는 다음과 같은 세 가지 유형의 알림 예를 다룹니다.

• For bounce notification examples, see Amazon SNS Bounce Notification Examples (p. 263).• For complaint notification examples, see Amazon SNS Complaint Notification Examples (p. 265).• For delivery notification examples, see Amazon SNS Delivery Notification Example (p. 268).

Amazon SNS Bounce Notification Examples이 섹션에서는 피드백을 보낸 이메일 수신자가 제공한 DSN(전송 상태 알림)이 포함되거나 포함되지 않은 반송 메일 알림의 예를 제시합니다.

Bounce Notification With a DSN

다음은 DSN과 원래 이메일 헤더가 포함되어 있는 반송 메일 알림의 예제입니다. 반송 메일 알림에 원래이메일 헤더가 포함되도록 구성하지 않은 경우, 알림의 mail 객체에 headersTruncated, headers 및commonHeaders 필드가 없습니다.

{ "notificationType":"Bounce", "bounce":{ "bounceType":"Permanent", "reportingMTA":"dns; email.example.com", "bouncedRecipients":[ { "emailAddress":"[email protected]", "status":"5.1.1", "action":"failed", "diagnosticCode":"smtp; 550 5.1.1 <[email protected]>... User" } ], "bounceSubType":"General", "timestamp":"2016-01-27T14:59:38.237Z", "feedbackId":"00000138111222aa-33322211-cccc-cccc-cccc-ddddaaaa068a-000000", "remoteMtaIp":"127.0.2.0" }, "mail":{ "timestamp":"2016-01-27T14:59:38.237Z", "source":"[email protected]", "sourceArn": "arn:aws:ses:us-west-2:888888888888:identity/example.com", "sourceIp": "127.0.3.0", "sendingAccountId":"123456789012", "messageId":"00000138111222aa-33322211-cccc-cccc-cccc-ddddaaaa0680-000000", "destination":[ "[email protected]", "[email protected]", "[email protected]"], "headersTruncated":false, "headers":[ { "name":"From", "value":"\"John Doe\" <[email protected]>" }, { "name":"To", "value":"\"Jane Doe\" <[email protected]>, \"Mary Doe\" <[email protected]>, \"Richard Doe\" <[email protected]>" }, { "name":"Message-ID", "value":"custom-message-ID"

263

Page 272: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

}, { "name":"Subject", "value":"Hello" }, { "name":"Content-Type", "value":"text/plain; charset=\"UTF-8\"" }, { "name":"Content-Transfer-Encoding", "value":"base64" }, { "name":"Date", "value":"Wed, 27 Jan 2016 14:05:45 +0000" } ], "commonHeaders":{ "from":[ "John Doe <[email protected]>" ], "date":"Wed, 27 Jan 2016 14:05:45 +0000", "to":[ "Jane Doe <[email protected]>, Mary Doe <[email protected]>, Richard Doe <[email protected]>" ], "messageId":"custom-message-ID", "subject":"Hello" } } }

Bounce Notification Without a DSN

다음은 원래 이메일 헤더가 포함되어 있지만 DSN은 없는 반송 메일 알림의 예제입니다. 반송 메일 알림에 원래 이메일 헤더가 포함되도록 구성하지 않은 경우, 알림의 mail 객체에 headersTruncated, headers 및commonHeaders 필드가 없습니다.

{ "notificationType":"Bounce", "bounce":{ "bounceType":"Permanent", "bounceSubType": "General", "bouncedRecipients":[ { "emailAddress":"[email protected]" }, { "emailAddress":"[email protected]" } ], "timestamp":"2016-01-27T14:59:38.237Z", "feedbackId":"00000137860315fd-869464a4-8680-4114-98d3-716fe35851f9-000000", "remoteMtaIp":"127.0.2.0" }, "mail":{ "timestamp":"2016-01-27T14:59:38.237Z", "messageId":"00000137860315fd-34208509-5b74-41f3-95c5-22c1edc3c924-000000", "source":"[email protected]", "sourceArn": "arn:aws:ses:us-west-2:888888888888:identity/example.com", "sourceIp": "127.0.3.0", "sendingAccountId":"123456789012", "destination":[

264

Page 273: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

"[email protected]", "[email protected]", "[email protected]" ], "headersTruncated":false, "headers":[ { "name":"From", "value":"\"John Doe\" <[email protected]>" }, { "name":"To", "value":"\"Jane Doe\" <[email protected]>, \"Mary Doe\" <[email protected]>, \"Richard Doe\" <[email protected]>" }, { "name":"Message-ID", "value":"custom-message-ID" }, { "name":"Subject", "value":"Hello" }, { "name":"Content-Type", "value":"text/plain; charset=\"UTF-8\"" }, { "name":"Content-Transfer-Encoding", "value":"base64" }, { "name":"Date", "value":"Wed, 27 Jan 2016 14:05:45 +0000" } ], "commonHeaders":{ "from":[ "John Doe <[email protected]>" ], "date":"Wed, 27 Jan 2016 14:05:45 +0000", "to":[ "Jane Doe <[email protected]>, Mary Doe <[email protected]>, Richard Doe <[email protected]>" ], "messageId":"custom-message-ID", "subject":"Hello" } } }

Amazon SNS Complaint Notification Examples이 섹션에서는 피드백을 보낸 이메일 수신자가 제공한 피드백 보고서가 포함되거나 포함되지 않은 불만 제기알림의 예를 제시합니다.

Complaint Notification With a Feedback Report

다음은 피드백 보고서와 원래 이메일 헤더가 포함되어 있는 불만 제기 알림의 예제입니다. 불만 제기 알림에원래 이메일 헤더가 포함되도록 구성하지 않은 경우, 알림의 mail 객체에 headersTruncated, headers및 commonHeaders 필드가 없습니다.

{ "notificationType":"Complaint",

265

Page 274: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

"complaint":{ "userAgent":"AnyCompany Feedback Loop (V0.01)", "complainedRecipients":[ { "emailAddress":"[email protected]" } ], "complaintFeedbackType":"abuse", "arrivalDate":"2016-01-27T14:59:38.237Z", "timestamp":"2016-01-27T14:59:38.237Z", "feedbackId":"000001378603177f-18c07c78-fa81-4a58-9dd1-fedc3cb8f49a-000000" }, "mail":{ "timestamp":"2016-01-27T14:59:38.237Z", "messageId":"000001378603177f-7a5433e7-8edb-42ae-af10-f0181f34d6ee-000000", "source":"[email protected]", "sourceArn": "arn:aws:ses:us-west-2:888888888888:identity/example.com", "sourceIp": "127.0.3.0", "sendingAccountId":"123456789012", "destination":[ "[email protected]", "[email protected]", "[email protected]" ], "headersTruncated":false, "headers":[ { "name":"From", "value":"\"John Doe\" <[email protected]>" }, { "name":"To", "value":"\"Jane Doe\" <[email protected]>, \"Mary Doe\" <[email protected]>, \"Richard Doe\" <[email protected]>" }, { "name":"Message-ID", "value":"custom-message-ID" }, { "name":"Subject", "value":"Hello" }, { "name":"Content-Type", "value":"text/plain; charset=\"UTF-8\"" }, { "name":"Content-Transfer-Encoding", "value":"base64" }, { "name":"Date", "value":"Wed, 27 Jan 2016 14:05:45 +0000" } ], "commonHeaders":{ "from":[ "John Doe <[email protected]>" ], "date":"Wed, 27 Jan 2016 14:05:45 +0000", "to":[ "Jane Doe <[email protected]>, Mary Doe <[email protected]>, Richard Doe <[email protected]>" ], "messageId":"custom-message-ID",

266

Page 275: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

"subject":"Hello" } } }

Complaint Notification Without a Feedback Report

다음은 원래 이메일 헤더가 포함되어 있지만 피드백 보고서는 없는 불만 제기 알림의 예제입니다. 불만 제기 알림에 원래 이메일 헤더가 포함되도록 구성하지 않은 경우, 알림의 mail 객체에 headersTruncated,headers 및 commonHeaders 필드가 없습니다.

{ "notificationType":"Complaint", "complaint":{ "complainedRecipients":[ { "emailAddress":"[email protected]" } ], "timestamp":"2016-01-27T14:59:38.237Z", "feedbackId":"0000013786031775-fea503bc-7497-49e1-881b-a0379bb037d3-000000" }, "mail":{ "timestamp":"2016-01-27T14:59:38.237Z", "messageId":"0000013786031775-163e3910-53eb-4c8e-a04a-f29debf88a84-000000", "source":"[email protected]", "sourceArn": "arn:aws:ses:us-west-2:888888888888:identity/example.com", "sourceIp": "127.0.3.0", "sendingAccountId":"123456789012", "destination":[ "[email protected]", "[email protected]", "[email protected]" ], "headersTruncated":false, "headers":[ { "name":"From", "value":"\"John Doe\" <[email protected]>" }, { "name":"To", "value":"\"Jane Doe\" <[email protected]>, \"Mary Doe\" <[email protected]>, \"Richard Doe\" <[email protected]>" }, { "name":"Message-ID", "value":"custom-message-ID" }, { "name":"Subject", "value":"Hello" }, { "name":"Content-Type", "value":"text/plain; charset=\"UTF-8\"" }, { "name":"Content-Transfer-Encoding", "value":"base64" }, { "name":"Date", "value":"Wed, 27 Jan 2016 14:05:45 +0000"

267

Page 276: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SNS notifications

} ], "commonHeaders":{ "from":[ "John Doe <[email protected]>" ], "date":"Wed, 27 Jan 2016 14:05:45 +0000", "to":[ "Jane Doe <[email protected]>, Mary Doe <[email protected]>, Richard Doe <[email protected]>" ], "messageId":"custom-message-ID", "subject":"Hello" } } }

Amazon SNS Delivery Notification Example다음은 원래 이메일 헤더가 포함되어 있는 전송 알림의 예제입니다. 전송 알림에 원래 이메일 헤더가 포함되도록 구성하지 않은 경우, 알림의 mail 객체에 headersTruncated, headers 및 commonHeaders 필드가없습니다.

{ "notificationType":"Delivery", "mail":{ "timestamp":"2016-01-27T14:59:38.237Z", "messageId":"0000014644fe5ef6-9a483358-9170-4cb4-a269-f5dcdf415321-000000", "source":"[email protected]", "sourceArn": "arn:aws:ses:us-west-2:888888888888:identity/example.com", "sourceIp": "127.0.3.0", "sendingAccountId":"123456789012", "destination":[ "[email protected]" ], "headersTruncated":false, "headers":[ { "name":"From", "value":"\"John Doe\" <[email protected]>" }, { "name":"To", "value":"\"Jane Doe\" <[email protected]>" }, { "name":"Message-ID", "value":"custom-message-ID" }, { "name":"Subject", "value":"Hello" }, { "name":"Content-Type", "value":"text/plain; charset=\"UTF-8\"" }, { "name":"Content-Transfer-Encoding", "value":"base64" }, { "name":"Date", "value":"Wed, 27 Jan 2016 14:58:45 +0000"

268

Page 277: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Monitoring sending using event publishing

} ], "commonHeaders":{ "from":[ "John Doe <[email protected]>" ], "date":"Wed, 27 Jan 2016 14:58:45 +0000", "to":[ "Jane Doe <[email protected]>" ], "messageId":"custom-message-ID", "subject":"Hello" } }, "delivery":{ "timestamp":"2016-01-27T14:59:38.237Z", "recipients":["[email protected]"], "processingTimeMillis":546, "reportingMTA":"a8-70.smtp-out.amazonses.com", "smtpResponse":"250 ok: Message 64111812 accepted", "remoteMtaIp":"127.0.2.0" } }

Monitor email sending using Amazon SES eventpublishing

세분화된 수준에서 이메일 전송을 추적할 수 있도록 설정하려면 Amazon SES 게시하려면 email sendingevents ~ Amazon CloudWatch, Amazon Kinesis Data Firehose, 또는 Amazon Simple Notification Service정의하는 특성을 기반으로 합니다.

발신, 전송, 열기, 클릭, 반송, 불만 제기, 거부, 렌더링 실패 및 전송 지연을 포함하는 다양한 이메일 전송 이벤트 유형을 추적할 수 있습니다. 이 정보는 운영 및 분석에 유용할 수 있습니다. 예를 들어 이메일 전송 데이터를 CloudWatch에 게시하고 이메일 캠페인의 성과를 추적하는 대시보드를 만들거나 Amazon SNS를 사용해 특정 이벤트가 발생할 때 알림을 전송할 수 있습니다.

How event publishing works이벤트 게시를 사용하려면 먼저 1개 이상의 configuration sets. 구성 세트는 이벤트를 게시할 위치와 게시할이벤트를 지정합니다. 그런 다음, 이메일을 전송할 때마다 구성 세트 이름과 하나 이상의 message tags이름/값 쌍의 형태로 이메일을 분류합니다. 예를 들어, 책을 광고하는 경우 메시지 태그 이름을 지정할 수 있습니다. genre, 및 sci-fi 또는 western관련 캠페인에 대한 이메일을 보낼 때. 사용 중인 이메일 전송 인터페이스에따라 API 호출에 대한 파라미터 또는 Amazon SES 지정 이메일 헤더로 메시지 태그를 제공합니다. 구성 세트에 대한 자세한 내용은 Using Amazon SES configuration sets (p. 235) 단원을 참조하십시오.

지정하는 메시지 태그는 Amazon SES 추가 auto-tags 메시지를 보내드립니다. 자동 태그를 사용하기 위해추가로 실행해야 할 단계도 없습니다.

다음 표는 Amazon SES를 사용하여 전송하는 메시지에 자동으로 적용되는 자동 태그를 나열한 것입니다.

Amazon SES 자동 태그

자동 태그 이름 설명

ses:configuration-set 이메일에 연결된 구성 세트의 이름

ses:caller-identity 이메일을 전송한 Amazon SES 사용자의 IAM 자격증명입니다.

269

Page 278: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드How to use event publishing

자동 태그 이름 설명

ses:from-domain "발신" 주소의 도메인

ses:source-ip 호출자가 이메일 전송에 사용한 IP 주소.

ses:outgoing-ip Amazon SES가 이메일 전송에 사용한 IP 주소입니다.

How to use event publishing다음 단원에는 Amazon SES 이벤트 게시를 설정하고 사용하는 데 필요한 정보가 포함되어 있습니다.

• Setting up event publishing (p. 271)• Working with event data (p. 279)• Tutorials (p. 319)

Event publishing terminology다음 목록은 Amazon SES 이벤트 게시에 관련된 용어를 정의한 것입니다.

이메일 전송 이벤트

Amazon SES에 제출한 이메일의 결과와 관련된 정보입니다. 전송 이벤트에는 다음이 포함됩니다.• Sends(전송) – Amazon SES에 대한 호출이 성공했으며 Amazon SES가 이메일 배달을 시도합니다.• Rejects(거부) – Amazon SES가 이메일을 수락했으나 이메일에 바이러스가 포함되어 있어서 거부했

습니다. Amazon SES에서 이메일을 수신자의 메일 서버로 전송하려고 시도하지 않았습니다.• Bounces(반송) – 수신자의 메일 서버가 이메일을 영구적으로 거부했습니다. 이 이벤트는 하드 반송에

해당합니다. 소프트 바운스는 Amazon SES가 일정 시간 동안 재시도한 후 이메일을 배달하는 데 실패한 경우에만 포함됩니다.

• Complaints(불만) – 이메일이 수신자에게 성공적으로 배달되었습니다. 수신자가 이메일을 스팸으로표시했습니다.

• Deliveries(배달) – Amazon SES에서 이메일을 수신자의 메일 서버로 성공적으로 배달했습니다.• Opens – 수신자가 메시지를 수신하여 자신의 이메일 클라이언트에서 열었습니다.• Clicks – 수신자가 이메일의 링크를 1개 이상 클릭했습니다.• Rendering Failures – 템플릿 렌더링 문제로 인해 이메일이 전송되지 않았습니다. 이 이벤트 유형은

SendTemplatedEmail 또는 SendBulkTemplatedEmail API 작업을 사용하여 이메일을 전송할 때만 발생합니다. 이 이벤트 유형은 템플릿 데이터가 누락되었을 때 또는 템플릿 파라미터와 데이터 사이에불일치가 있을 때 발생할 수 있습니다.

• Delivery Delays – 일시적인 문제가 발생하여 수신자에게 이메일을 전송할 수 없습니다. 예를 들어 수신자의 받은 편지함이 가득 찼거나 이메일 수신 서버에 일시적인 문제가 발생했을 때 전송 지연이 발생할 수 있습니다.

Note

이벤트 대상에 DELIVERY_DELAY 이벤트 유형을 추가하려면 Amazon SES API V2에서 UpdateConfigurationSetEventDestination 작업을 사용해야 합니다. 현재는 Amazon SES 콘솔을 사용하여 이 이벤트 유형을 구성 집합에 추가할 수 없습니다.

구성 세트

Amazon SES에서 이메일 전송 이벤트를 게시할 대상과 게시하려는 이메일 전송 이벤트 유형을 정의하는 규칙 집합입니다. 이벤트 게시와 함께 사용하려는 이메일을 전송할 때 이메일에 연결할 구성 세트를지정합니다.

270

Page 279: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up event publishing

이벤트 대상

Amazon SES에서 이벤트 전송 이메일을 게시하는 AWS 서비스입니다. 설정하는 각 이벤트 대상은 단하나의 구성 세트에만 속합니다.

메시지 태그

이벤트 게시를 목적으로 이메일을 분류하는 데 사용하는 이름/값 페어입니다. 예: campaign/book andcampaign/clothing. 이메일을 보낼 때 메시지 태그를 API 호출에 대한 매개 변수로 지정하거나 AmazonSES-특정 이메일 헤더.

자동 태그

이벤트 게시 보고서에 자동으로 포함되는 메시지 태그입니다. 구성 세트 이름, "발신" 주소의 도메인, 호출자의 발신 IP 주소, Amazon SES 발신 IP 주소, 호출자의 IAM 자격 증명을 표시하는 자동 태그가 있습니다.

Setting up Amazon SES event publishing이 단원에서는 이메일 전송 이벤트를 Amazon CloudWatch, Amazon Kinesis Data Firehose 또는 AmazonSimple Notification Service(Amazon SNS)에 게시하도록 Amazon SES를 구성하기 위해 수행해야 할 작업을설명합니다.

먼저, configuration set 사용 Amazon SES 콘솔 또는 API. 구성 세트를 생성한 후 하나 이상의 추가 eventdestinations (CloudWatch, Kinesis Data Firehose, 또는 Amazon SNS)를 구성하고 이벤트 대상에 고유한 매개 변수를 구성합니다. 그런 다음 이메일을 보낼 때마다 사용할 구성 집합을 지정합니다.

이 단원의 주제:• Step 1: Create a configuration set (p. 271)• Step 2: Add an event destination (p. 271)• Step 3: Specify your configuration set when you send email (p. 278)

Step 1: Create a configuration set구성 집합을 사용하면 Amazon CloudWatch 또는 Amazon Kinesis Data Firehose에 이메일 전송 이벤트(반송, 불만 제기, 전송, 보낸 이메일, 거부된 이메일, 렌더링 기능 및 배달 지연)를 게시할 수 있습니다.

Amazon SES 콘솔 또는 Amazon SES API V2의 CreateConfigurationSet 작업을 사용하여 구성을 만들 수도있습니다.

Amazon SES 콘솔을 사용하여 구성 세트를 생성하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 탐색 창에서 [Configuration Sets]를 선택합니다.3. 콘텐츠 창에서 Create Configuration Set를 선택합니다.4. 구성 집합의 이름을 입력한 후 Create Configuration Set를 선택합니다.5. 닫기를 선택합니다.

Step 2: Add an event destination이벤트 대상은 Amazon SES 이벤트를 게시하는 위치입니다. 설정하는 각 이벤트 대상은 단 하나의 구성 세트에만 속합니다. Amazon SES를 사용하여 이벤트 대상을 설정하면 AWS 서비스 대상을 선택하고 해당 대상과 연결된 파라미터를 지정합니다.

271

Page 280: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up event publishing

이벤트 대상을 설정할 때 Amazon CloudWatch, Amazon Kinesis Data Firehose 및 Amazon SimpleNotification Service(Amazon SNS) 등의 AWS 서비스 중 하나로 이벤트를 보내도록 선택할 수 있습니다. 여기서 선택하는 이벤트 대상은 이벤트에 대해 알고자 하는 세부 정보 수준과 이벤트 정보를 수신하는 방법에따라 달라집니다. 각 이벤트 유형의 누계 정보만 필요한 경우에는(예: 총계가 너무 높을 경우 경보를 설정할수 있도록) CloudWatch를 사용합니다. Amazon Elasticsearch Service 또는 Amazon Redshift 등의 다른 서비스에 출력할 수 있는 상세한 이벤트 레코드로 분석하려는 경우에는 Kinesis Data Firehose를 선택합니다.특정 이벤트 발생 시 알림을 수신하려면 Amazon SNS를 선택합니다.

이 섹션은 다음 주제를 포함합니다.• Set up a CloudWatch event destination for event publishing (p. 272)• Set up a Kinesis Data Firehose event destination for Amazon SES event publishing (p. 274)• Set up an Amazon SNS event destination for event publishing (p. 276)

Set up a CloudWatch event destination for event publishing

Amazon CloudWatch 이벤트 대상을 사용하면 Amazon SES 이메일 전송 이벤트를 CloudWatch에 게시할 수있습니다. CloudWatch 이벤트 대상은 구성 세트 내에만 존재하기 때문에 먼저 구성 세트를 생성 (p. 271)한다음 이벤트 대상을 구성 세트에 추가해야 합니다.

추가할 때 CloudWatch 이벤트 대상을 구성한 다음, CloudWatch dimensions 을(를) 보낼 때 사용하는 메시지태그에 해당합니다. 메시지 태그와 마찬가지로 CloudWatch 크기는 측정치를 고유하게 식별하는 데 도움을주는 이름/값 페어입니다.

예컨대 campaign이라는 메시지 태그와 크기를 이메일 캠페인 식별에 사용할 수 있습니다. 이메일 전송 이벤트를 CloudWatch에 게시할 때 메시지 태그와 차원을 선택하는 것이 중요합니다. 이 선택이 CloudWatch결제 금액에 영향을 미치고 CloudWatch 내에서 이메일 전송 이벤트 데이터를 필터링하는 방식을 결정하기때문입니다.

이 단원에서는 크기를 선택하는 데 도움이 되는 정보를 제공한 다음, CloudWatch 이벤트 대상을 구성 집합에추가하는 방법을 보여줍니다.

이 단원의 주제:• Adding a CloudWatch Event Destination (p. 272)• Choosing CloudWatch Dimensions (p. 274)

Adding a CloudWatch Event Destination

이 단원의 절차에서는 구성 세트에 CloudWatch 이벤트 대상을 추가하는 방법을 보여줍니다.

Amazon SES API V2의 UpdateConfigurationSetEventDestination 작업을 사용하여 이벤트 대상을 만들고 수정할 수도 있습니다.

콘솔을 사용하여 구성 집합에 CloudWatch 이벤트 대상을 추가하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 탐색 창에서 [Configuration Sets]를 선택합니다.3. 구성 세트 목록에서 CloudWatch 이벤트 대상을 생성하려는 구성 세트를 선택합니다. 목록이 빈 경우 먼

저 구성 집합을 만듭니다 (p. 271).4. Event Destinations(이벤트 대상) 탭의 대상 추가에서 Select a destination type(대상 유형 선택)을 선택

한 다음 CloudWatch를 선택합니다.5. CloudWatch 대상 대화 상자에서 활성을 선택합니다.6. Name에 이벤트 대상의 이름을 입력합니다.

272

Page 281: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up event publishing

7. Event types에서 이벤트 대상에 게시할 이벤트 유형을 선택합니다. 다음 이벤트 유형을 사용할 수 있습니다.

• Sends(전송) – Amazon SES에 대한 호출이 성공했으며 Amazon SES가 이메일 배달을 시도합니다.• Rejects(거부) – Amazon SES가 이메일을 수락했으나 이메일에 바이러스가 포함되어 있어서 거부했

습니다. Amazon SES에서 이메일을 수신자의 메일 서버로 전송하려고 시도하지 않았습니다.• Bounces(반송) – 수신자의 메일 서버가 이메일을 영구적으로 거부했습니다. 이 이벤트는 하드 반송에

해당합니다. 소프트 바운스는 Amazon SES가 일정 시간 동안 재시도한 후 이메일을 배달하는 데 실패한 경우에만 포함됩니다.

• Complaints(불만) – 이메일이 수신자에게 성공적으로 배달되었습니다. 수신자가 이메일을 스팸으로표시했습니다.

• Deliveries(배달) – Amazon SES에서 이메일을 수신자의 메일 서버로 성공적으로 배달했습니다.• Opens – 수신자가 메시지를 수신하여 자신의 이메일 클라이언트에서 열었습니다.• Clicks – 수신자가 이메일의 링크를 1개 이상 클릭했습니다.• Rendering Failures – 템플릿 렌더링 문제로 인해 이메일이 전송되지 않았습니다. 이 이벤트 유형은

SendTemplatedEmail 또는 SendBulkTemplatedEmail API 작업을 사용하여 이메일을 전송할 때만 발생합니다. 이 이벤트 유형은 템플릿 데이터가 누락되었을 때 또는 템플릿 파라미터와 데이터 사이에불일치가 있을 때 발생할 수 있습니다.

• Delivery Delays – 일시적인 문제가 발생하여 수신자에게 이메일을 전송할 수 없습니다. 예를 들어 수신자의 받은 편지함이 가득 찼거나 이메일 수신 서버에 일시적인 문제가 발생했을 때 전송 지연이 발생할 수 있습니다.

Note

이벤트 대상에 DELIVERY_DELAY 이벤트 유형을 추가하려면 Amazon SES API V2에서 UpdateConfigurationSetEventDestination 작업을 사용해야 합니다. 현재는 Amazon SES 콘솔을 사용하여 이 이벤트 유형을 구성 집합에 추가할 수 없습니다.

8. 값 소스에 Amazon SES가 CloudWatch로 전달되는 데이터를 가져오는 방법을 지정합니다. 다음과 같은값 원본을 사용할 수 있습니다.

• Message Tag – Amazon SES retrieves the dimension name and value from a tag that you specifyby using the X-SES-MESSAGE-TAGS header or the Tags API parameter. For more informationabout using message tags, see the section called “Step 3: Specify your configuration set whensending” (p. 278).

Note

Message tags can include the numbers 0–9, the letters A–Z (both uppercase andlowercase), hyphens (-), and underscores (_).

You can also use the Message Tag value source to create dimensions based on AmazonSES auto-tags. To use an auto-tag, type the complete name of the auto-tag as the DimensionName. For example, to create a dimension based on the configuration set auto-tag, useses:configuration-set for the Dimension Name, and the name of the configuration set for theDefault Value. For a complete list of auto-tags, see How event publishing works (p. 269).

• Email Header – Amazon SES retrieves the dimension name and value from a header in the email.

Note

You can't use any of the following email headers as the Dimension Name: Received, To,From, DKIM-Signature, CC, message-id, or Return-Path.

• Link Tag – Amazon SES retrieves the dimension name and value from a tag that you specifiedin a link. For more information about adding tags to links, see Can I tag links with uniqueidentifiers? (p. 481).

9. Dimension Name(차원 이름)에 CloudWatch로 전달하려는 차원 이름을 입력합니다. Default Value(기본값)에 차원 값을 입력합니다. 273

Page 282: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up event publishing

Note

크기 이름 및 값은 문자 A-Z, 숫자 0-9, 밑줄(_), @ 기호, 하이픈(-) 및 마침표(.)만 포함할 수 있습니다. 공백, 억양 표시가 되어 있는 문자, 비라틴 문자 및 기타 특수 문자는 허용되지 않습니다.

10. 차원을 더 추가하려면 Add Dimension(차원 추가)을 선택합니다. 그렇지 않은 경우 [Save]를 선택합니다.

Choosing CloudWatch Dimensions

CloudWatch 차원으로 사용할 이름 및 값을 선택할 때는 다음 요소를 고려해야 합니다.

• Price per metric – You can view basic Amazon SES metrics in CloudWatch for free. However, whenyou collect metrics using event publishing, you create custom metrics in CloudWatch. Each uniquecombination of event type, dimension name, and dimension value creates a different custom metric inCloudWatch. When you use CloudWatch, you are charged for each custom metric you create. For thisreason, you might want to avoid choosing dimensions that can take many different values. For example,unless you are very interested in tracking your email sending events by "From" domain, you might notwant to define a dimension for the Amazon SES auto-tag ses:from-domain because it can take manydifferent values. For more information, see CloudWatch Pricing.

• Metric filtering – If a metric has multiple dimensions, you cannot access the metric in CloudWatch basedon each dimension separately. For that reason, think carefully before you add more than one dimensionto a single CloudWatch event destination. For example, if you want metrics by campaign and by acombination of campaign and genre, you need to add two event destinations: one with only campaignas a dimension, and one with both campaign and genre as dimensions.

• Dimension value source – As an alternative to specifying your dimension values using Amazon SES-specific headers or a parameter to the API, you can also choose for Amazon SES to take the dimensionvalues from your own MIME message headers. You might use this option if you are already using customheaders and you do not want to change your emails or your calls to the email sending API to collectmetrics based on your header values. If you use your own MIME message headers for Amazon SESevent publishing, the header names and values that you use for Amazon SES event publishing may onlyinclude the letters A through Z, the numbers 0 through 9, underscores (_), at signs (@), hyphens (-), andperiods (.). If you specify a name or value that contains other characters, the email sending call will stillsucceed, but the event metrics will not be sent to Amazon CloudWatch.

자세한 정보는 CloudWatch 개념, 참조 Amazon Cloudwatch 컨셉트 in the Amazon CloudWatch 사용 설명서.

Set up a Kinesis Data Firehose event destination for Amazon SES eventpublishing

Amazon Kinesis Data Firehose 이벤트 대상은 특정한 Amazon SES 이메일 전송 이벤트를 Kinesis DataFirehose에 게시하는 엔터티를 나타냅니다. Kinesis Data Firehose 이벤트 대상은 구성 집합 내에만 있으므로 먼저 구성 집합 생성 (p. 271)을 수행해야 합니다. 그런 다음 구성 집합에 이벤트 대상을 추가합니다.

이 섹션에서는 Amazon SES 콘솔을 사용하여 이벤트 대상을 만드는 절차에 대해 설명합니다. 또한 AmazonSES API V2 대상의 UpdateConfigurationSetEventDestination 작업을 사용하여 이벤트 대상을 생성하고 업데이트할 수 있습니다.

구성 집합에 Kinesis Data Firehose 이벤트 대상을 추가하려면(콘솔)

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 왼쪽 탐색 창에서 Configuration Sets를 선택합니다.3. 구성 세트 목록에서 한 구성 세트를 선택합니다. 목록이 빈 경우 먼저 구성 집합을 만듭니다 (p. 271).

274

Page 283: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up event publishing

4. 대상 추가에서 Select a destination type(대상 유형 선택)을 선택한 다음 Kinesis Data Firehose를 선택합니다.

5. Name에 이벤트 대상의 이름을 입력합니다.6. Event types에서 이벤트 대상에 게시할 하나 이상의 이벤트 유형을 선택합니다.

• Sends(전송) – Amazon SES에 대한 호출이 성공했으며 Amazon SES가 이메일 배달을 시도합니다.• Rejects(거부) – Amazon SES가 이메일을 수락했으나 이메일에 바이러스가 포함되어 있어서 거부했

습니다. Amazon SES에서 이메일을 수신자의 메일 서버로 전송하려고 시도하지 않았습니다.• Bounces(반송) – 수신자의 메일 서버가 이메일을 영구적으로 거부했습니다. 이 이벤트는 하드 반송에

해당합니다. 소프트 바운스는 Amazon SES가 일정 시간 동안 재시도한 후 이메일을 배달하는 데 실패한 경우에만 포함됩니다.

• Complaints(불만) – 이메일이 수신자에게 성공적으로 배달되었습니다. 수신자가 이메일을 스팸으로표시했습니다.

• Deliveries(배달) – Amazon SES에서 이메일을 수신자의 메일 서버로 성공적으로 배달했습니다.• Opens – 수신자가 메시지를 수신하여 자신의 이메일 클라이언트에서 열었습니다.• Clicks – 수신자가 이메일의 링크를 1개 이상 클릭했습니다.• Rendering Failures – 템플릿 렌더링 문제로 인해 이메일이 전송되지 않았습니다. 이 이벤트 유형은

SendTemplatedEmail 또는 SendBulkTemplatedEmail API 작업을 사용하여 이메일을 전송할 때만 발생합니다. 이 이벤트 유형은 템플릿 데이터가 누락되었을 때 또는 템플릿 파라미터와 데이터 사이에불일치가 있을 때 발생할 수 있습니다.

• Delivery Delays – 일시적인 문제가 발생하여 수신자에게 이메일을 전송할 수 없습니다. 예를 들어 수신자의 받은 편지함이 가득 찼거나 이메일 수신 서버에 일시적인 문제가 발생했을 때 전송 지연이 발생할 수 있습니다.

Note

이벤트 대상에 DELIVERY_DELAY 이벤트 유형을 추가하려면 Amazon SES API V2에서 UpdateConfigurationSetEventDestination 작업을 사용해야 합니다. 현재는 Amazon SES 콘솔을 사용하여 이 이벤트 유형을 구성 집합에 추가할 수 없습니다.

7. Enabled를 선택합니다.8. 스트림에서 기존 Kinesis Data Firehose 전송 스트림을 선택하거나 Create new stream(새 스트림 생

성)을 선택하여 Kinesis Data Firehose 콘솔을 이용해 새 스트림을 생성합니다.

다음을 사용하여 스트림을 생성하는 방법에 대한 자세한 내용을 보려면 Kinesis Data Firehose 콘솔, 참조 Amazon Kinesis Firehose Delivery Stream 생성하기 in the Amazon Kinesis Data Firehose 개발자 안내서.

9. IAM 역할에서 Amazon SES가 사용자를 대신해 Kinesis Data Firehose에 게시할 수 있는 권한이 있는IAM 역할을 선택합니다. 기존 역할을 선택하거나 Amazon SES가 역할을 대신 생성하도록 설정하거나직접 역할을 생성할 수 있습니다.

기존 역할을 선택하거나 직접 역할을 생성하는 경우 역할의 정책을 수동으로 변경하여 Kinesis DataFirehose 전송 스트림에 대한 액세스 권한을 역할에 부여하고 Amazon SES에 그 역할을 담당할 권한을 부여해야 합니다. 예제 정책은 Giving Amazon SES Permission to Publish to Your Kinesis DataFirehose Delivery Stream (p. 275) 단원을 참조하십시오.

10. Save를 선택합니다.

UpdateConfigurationSetEventDestination API를 사용하여 Kinesis Data Firehose 이벤트 대상을추가하는 방법에 대한 자세한 내용은 Amazon Simple Email Service API Reference를 참조하십시오.

Giving Amazon SES Permission to Publish to Your Kinesis Data Firehose Delivery Stream

Amazon SES가 Kinesis Data Firehose 전송 스트림에 레코드를 게시하도록 하려면 AWS Identity andAccess Management(IAM) 역할을 이용하여 역할의 권한 정책과 신뢰 정책을 연결하거나 변경해야 합니

275

Page 284: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up event publishing

다. 권한 정책은 역할이 Kinesis Data Firehose 전송 스트림에 레코드를 게시하도록 허용하고 신뢰 정책은Amazon SES가 그 역할을 담당하도록 허용합니다.

이 단원에서는 두 정책의 예를 제공합니다. 정책 부착 관련 정보 IAM 역할, 참조 역할 수정 in the IAM 사용 설명서.

Permissions Policy

다음 권한 정책은 역할이 Kinesis Data Firehose 전송 스트림에 데이터 레코드를 게시하도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": [ "firehose:PutRecordBatch" ], "Resource": [ "arn:aws:firehose:REGION:ACCOUNT-ID:deliverystream/DELIVERY-STREAM-NAME " ] } ]}

Trust Policy

다음 신뢰 정책은 Amazon SES가 역할을 담당하도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "ACCOUNT-ID" } } } ]}

Set up an Amazon SNS event destination for event publishing이벤트 대상은 Amazon SNS를 사용하여 특정 이메일 전송 이벤트에 대해 알려줍니다. Amazon SNS 이벤트대상은 구성 세트 내에만 존재하기 때문에 먼저 구성 세트를 생성 (p. 271)한 다음 이벤트 대상을 구성 세트에 추가해야 합니다.

이 섹션에서는 Amazon SES 콘솔을 사용하여 이벤트 대상을 만드는 절차에 대해 설명합니다. 또한 AmazonSES API V2 대상의 UpdateConfigurationSetEventDestination 작업을 사용하여 이벤트 대상을 생성하고 업데이트할 수 있습니다.

Note

또한 계정 수준에서 Amazon SNS를 통해 알림을 수신할 수도 있습니다. 즉, 전체 Amazon SES 계정에서 전송 이벤트가 발생할 때마다 Amazon SNS 알림을 수신할 수 있습니다. 계정 수준 알림

276

Page 285: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up event publishing

이 아닌 이벤트 게시를 사용하면 특정 이벤트 유형에 한해, 혹은 특정 구성 세트를 사용하여 전송되는 이메일에 한해 알림을 전송하도록 Amazon SES를 구성할 수 있습니다. 계정 수준 AmazonSNS 알림을 설정하는 방법에 대한 자세한 내용은 Monitoring Amazon SES email sending usingnotifications (p. 247) 단원을 참조하십시오.

Amazon SNS 주제를 구독하는 엔드포인트로 메시지를 보내는 경우 추가 요금이 부과됩니다. 자세한 내용은Amazon SNS 요금을 참조하십시오.

Amazon SNS 이벤트 대상을 구성 세트에 추가하려면

1. 아직 수행하지 않은 경우 Amazon SNS 주제를 생성하여 구독합니다. 자세한 내용은 시작하기(출처:Amazon Simple Notification Service 개발자 안내서)를 참조하십시오.

2. https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.3. 탐색 창에서 [Configuration Sets]를 선택합니다.4. 구성 세트 목록에서 한 구성 세트를 선택합니다. 목록이 빈 경우 먼저 구성 집합을 만듭니다 (p. 271).5. [Add Destination]에서 [Select a destination type]을 선택한 후 [SNS]를 선택합니다.6. Name에 이벤트 대상의 이름을 입력합니다.7. Event types에서 이벤트 대상에 게시할 하나 이상의 이벤트 유형을 선택합니다.

• Sends(전송) – Amazon SES에 대한 호출이 성공했으며 Amazon SES가 이메일 배달을 시도합니다.• Rejects(거부) – Amazon SES가 이메일을 수락했으나 이메일에 바이러스가 포함되어 있어서 거부했

습니다. Amazon SES에서 이메일을 수신자의 메일 서버로 전송하려고 시도하지 않았습니다.• Bounces(반송) – 수신자의 메일 서버가 이메일을 영구적으로 거부했습니다. 이 이벤트는 하드 반송에

해당합니다. 소프트 바운스는 Amazon SES가 일정 시간 동안 재시도한 후 이메일을 배달하는 데 실패한 경우에만 포함됩니다.

• Complaints(불만) – 이메일이 수신자에게 성공적으로 배달되었습니다. 수신자가 이메일을 스팸으로표시했습니다.

• Deliveries(배달) – Amazon SES에서 이메일을 수신자의 메일 서버로 성공적으로 배달했습니다.• Opens – 수신자가 메시지를 수신하여 자신의 이메일 클라이언트에서 열었습니다.• Clicks – 수신자가 이메일의 링크를 1개 이상 클릭했습니다.• Rendering Failures – 템플릿 렌더링 문제로 인해 이메일이 전송되지 않았습니다. 이 이벤트 유형은

SendTemplatedEmail 또는 SendBulkTemplatedEmail API 작업을 사용하여 이메일을 전송할 때만 발생합니다. 이 이벤트 유형은 템플릿 데이터가 누락되었을 때 또는 템플릿 파라미터와 데이터 사이에불일치가 있을 때 발생할 수 있습니다.

• Delivery Delays – 일시적인 문제가 발생하여 수신자에게 이메일을 전송할 수 없습니다. 예를 들어 수신자의 받은 편지함이 가득 찼거나 이메일 수신 서버에 일시적인 문제가 발생했을 때 전송 지연이 발생할 수 있습니다.

Note

이벤트 대상에 DELIVERY_DELAY 이벤트 유형을 추가하려면 Amazon SES API V2에서 UpdateConfigurationSetEventDestination 작업을 사용해야 합니다. 현재는 Amazon SES 콘솔을 사용하여 이 이벤트 유형을 구성 집합에 추가할 수 없습니다.

8. Enabled를 선택합니다.9. 주제에서 기존 Amazon SNS 주제를 선택하거나 새로운 주제 생성을 선택하여 새로운 주제를 생성합니

다.

주제 생성에 대한 자세한 내용은 다음을 참조하십시오. 주제 생성 in the Amazon Simple NotificationService 개발자 안내서.

10. Save를 선택합니다.

277

Page 286: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Setting up event publishing

Step 3: Specify your configuration set when you send email구성 세트를 생성 (p. 271)하고 이벤트 대상을 추가 (p. 271)한 후 이벤트 게시의 마지막 단계는 이메일을전송하는 것입니다.

이메일과 연결된 이벤트를 게시하려면 해당 이메일과 연결할 구성 세트 이름을 제공해야 합니다. 필요한 경우 메시지 태그를 제공하여 이메일을 분류할 수 있습니다.

이 정보를 이메일 전송 API에 대한 파라미터, Amazon SES 지정 이메일 헤더 또는 MIME 메시지 내 사용자지정 헤더 중 하나로 Amazon SES에 제공합니다. 선택은 다음 표와 같이 사용 중인 이메일 전송 인터페이스에 따라 달라집니다.

이메일 전송 인터페이스 이벤트 게시 방법

SendEmail API 파라미터

SendRawEmail API 파라미터, Amazon SES 지정 이메일 헤더 또는사용자 지정 MIME 헤더

Important

헤더와 API 파라미터를 모두 사용하여 메시지 태그를 지정하더라도 Amazon SES는API 파라미터가 제공한 메시지 태그만 사용합니다. Amazon SES는 API 파라미터와헤더로 지정된 메시지 태그를 조인하지 않습니다.

SMTP 인터페이스 Amazon SES 지정 이메일 헤더

다음 단원에서는 헤더 및 API 파라미터를 사용하여 구성 세트와 메시지 태그를 지정하는 방법에 대해 설명합니다.

• Using Amazon SES API Parameters (p. 278)• Using Amazon SES-Specific Email Headers (p. 279)• Using Custom Email Headers (p. 279)

또한 이 안내서에는 Amazon SES를 사용하여 프로그래밍 방식으로 이메일을 전송하는 방법을 보여주는 몇가지 코드 예제가 포함되어 있습니다. 이러한 코드 예제 각각에는 이메일을 보낼 때 구성 세트를 전달하는 메서드가 포함되어 있습니다. 자세한 정보는 Amazon SES code examples (p. 391) 단원을 참조하십시오.

Note

선택적으로 메시지 태그를 이메일의 헤더에 포함시킬 수 있습니다. 메시지 태그에는 숫자 0–9, 문자A–Z(대문자 및 소문자 모두 가능), 하이픈(-), 밑줄(_)이 포함될 수 있습니다.

Using Amazon SES API Parameters

SendEmail 또는 SendRawEmail을 이벤트 게시와 함께 사용하려면 ConfigurationSet 및 MessageTag라는데이터 구조를 API 호출로 전달하여 구성 세트와 메시지 태그를 지정합니다.

Amazon SES API 사용에 대한 자세한 내용은 Amazon Simple Email Service API Reference 단원을 참조하십시오.

278

Page 287: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

Using Amazon SES-Specific Email Headers

SendRawEmail 또는 SMTP 인터페이스를 사용하면 Amazon SES 지정 헤더를 이메일에 추가하여 구성 세트와 메시지 태그를 지정할 수 있습니다. Amazon SES는 이메일을 전송하기 전에 헤더를 제거합니다. 다음표에는 사용할 헤더의 이름이 나와 있습니다.

이벤트 게시 정보 헤더

구성 세트 X-SES-CONFIGURATION-SET

메시지 태그 X-SES-MESSAGE-TAGS

다음 예제는 Amazon SES에 제출하는 원시 이메일에서 헤더가 어떻게 표시되는지 보여줍니다.

X-SES-MESSAGE-TAGS: tagName1=tagValue1, tagName2=tagValue2X-SES-CONFIGURATION-SET: myConfigurationSetFrom: [email protected]: [email protected]: SubjectContent-Type: multipart/alternative; boundary="----=_boundary"

------=_boundaryContent-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 7bit

body------=_boundaryContent-Type: text/html; charset=UTF-8Content-Transfer-Encoding: 7bit

body------=_boundary--

Using Custom Email Headers

Amazon SES 지정 헤더 X-SES-CONFIGURATION-SET를 사용하여 구성 세트 이름을 지정해야 하지만 사용자 고유의 MIME 헤더를 사용하여 메시지 태그를 지정할 수 있습니다.

Note

Amazon SES 이벤트 게시에 사용하는 헤더 이름과 값은 ASCII 형식이어야 합니다. Amazon SES이벤트 게시에 ASCII가 아닌 헤더 이름이나 값을 지정하면 이메일 전송 호출은 성공하겠지만 이벤트 지표가 Amazon CloudWatch로 내보내지지 않습니다.

Working with Amazon SES event data이벤트 게시 설정 (p. 271)을 완료하고 이메일 전송을 위한 구성 집합을 지정한 후, 이메일에 연결된 구성집합을 설정할 때 지정한 이벤트 대상에서 이메일 전송 이벤트를 검색할 수 있습니다.

이 단원에서는 Amazon CloudWatch 및 Amazon Kinesis Data Firehose에서 이메일 전송 이벤트를 검색하는방법과 Amazon SNS에서 제공한 이벤트 데이터를 해석하는 방법을 설명합니다.

• Retrieving Amazon SES event data from CloudWatch (p. 280)• Retrieving Amazon SES event data from Kinesis Data Firehose (p. 281)• Interpreting Amazon SES event data from Amazon SNS (p. 300)

279

Page 288: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

Retrieving Amazon SES event data from CloudWatchAmazon SES는 이메일 전송 이벤트에 대한 지표를 Amazon CloudWatch에 게시할 수 있습니다.CloudWatch에 이벤트 데이터를 게시하면 이러한 지표가 정렬된 시계열 데이터 세트로 제공됩니다. 이러한지표를 사용해 이메일 전송 성능을 모니터링할 수 있습니다. 예를 들어 수신 거부 측정치를 모니터링하고, 측정치가 특정 값을 초과하면 CloudWatch 경보가 트리거되도록 설정할 수 있습니다.

Amazon SES는 다음 두 가지 세부 수준에서 이러한 이벤트를 CloudWatch에 게시할 수 있습니다.

• Across your AWS account – These coarse metrics, which correspond to the metrics you monitor usingthe Amazon SES console and the GetSendStatistics API, are totals across your entire AWSaccount. Amazon SES publishes these metrics to CloudWatch automatically.

• Fine-grained – These metrics are categorized by email characteristics that you define using messagetags. To publish these metrics to CloudWatch, you have to set up event publishing (p. 271) with aCloudWatch event destination and specify a configuration set (p. 278) when you send an email. Youcan also specify message tags or use auto-tags (p. 269) that Amazon SES automatically provides.

이 단원에서는 CloudWatch에서 사용할 수 있는 측정치와 이 측정치를 보는 방법에 대해 설명합니다.

Available Metrics

다음과 같은 Amazon SES 이메일 전송 지표를 CloudWatch에 게시할 수 있습니다.

• Sends(전송) – Amazon SES에 대한 호출이 성공했으며 Amazon SES가 이메일 배달을 시도합니다.• Rejects(거부) – Amazon SES가 이메일을 수락했으나 이메일에 바이러스가 포함되어 있어서 거부했습니

다. Amazon SES에서 이메일을 수신자의 메일 서버로 전송하려고 시도하지 않았습니다.• Bounces(반송) – 수신자의 메일 서버가 이메일을 영구적으로 거부했습니다. 이 이벤트는 하드 반송에 해

당합니다. 소프트 바운스는 Amazon SES가 일정 시간 동안 재시도한 후 이메일을 배달하는 데 실패한 경우에만 포함됩니다.

• Complaints(불만) – 이메일이 수신자에게 성공적으로 배달되었습니다. 수신자가 이메일을 스팸으로 표시했습니다.

• Deliveries(배달) – Amazon SES에서 이메일을 수신자의 메일 서버로 성공적으로 배달했습니다.• Opens – 수신자가 메시지를 수신하여 자신의 이메일 클라이언트에서 열었습니다.• Clicks – 수신자가 이메일의 링크를 1개 이상 클릭했습니다.• Rendering Failures – 템플릿 렌더링 문제로 인해 이메일이 전송되지 않았습니다. 이 이벤트 유형은

SendTemplatedEmail 또는 SendBulkTemplatedEmail API 작업을 사용하여 이메일을 전송할 때만 발생합니다. 이 이벤트 유형은 템플릿 데이터가 누락되었을 때 또는 템플릿 파라미터와 데이터 사이에 불일치가있을 때 발생할 수 있습니다.

• Delivery Delays – 일시적인 문제가 발생하여 수신자에게 이메일을 전송할 수 없습니다. 예를 들어 수신자의 받은 편지함이 가득 찼거나 이메일 수신 서버에 일시적인 문제가 발생했을 때 전송 지연이 발생할 수 있습니다.

Note

이벤트 대상에 DELIVERY_DELAY 이벤트 유형을 추가하려면 Amazon SES API V2에서 UpdateConfigurationSetEventDestination 작업을 사용해야 합니다. 현재는 Amazon SES 콘솔을사용하여 이 이벤트 유형을 구성 집합에 추가할 수 없습니다.

Available Dimensions

CloudWatch는 Amazon SES의 구성 세트에 CloudWatch 이벤트 대상을 추가할 때 지정하는 차원 이름을 사용합니다. 자세한 정보는 Set up a CloudWatch event destination for event publishing (p. 272) 단원을 참조하십시오.

280

Page 289: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

Viewing Amazon SES Metrics in the CloudWatch Console

다음 절차에서는 CloudWatch 콘솔을 사용하여 Amazon SES 이벤트 게시 지표를 보는 방법을 설명합니다.

CloudWatch 콘솔을 사용하여 지표를 확인하려면

1. AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/cloudwatch/에서CloudWatch 콘솔을 엽니다.

2. 필요한 경우 리전을 변경합니다. 탐색 모음에서 AWS 리소스가 상주하는 리전을 선택합니다. 자세한 내용은 리전 및 엔드포인트 단원을 참조하십시오.

3. 탐색 창에서 지표를 선택합니다.4. All metrics 창에서 AWS Namespaces를 확장한 후 SES를 선택합니다.5. Amazon SES가 자동으로 게시하는 전체 AWS 계정의 지표를 보려면 Account Sending Metrics(계정 전

송 지표)를 선택합니다. 세부적인 이벤트 게시 지표 (p. 269)를 보려면 CloudWatch 이벤트 대상을 설정 (p. 272)할 때 지정한 차원 조합을 선택합니다.

6. 확인할 지표를 선택합니다.

시간 경과에 따른 지표 그래프가 표시됩니다.

AWS CLI를 사용하여 측정치를 보려면

• 명령 프롬프트에서 다음 명령을 사용합니다.

aws cloudwatch list-metrics --namespace "AWS/SES"

Retrieving Amazon SES event data from Kinesis Data FirehoseAmazon SES는 이메일 전송 이벤트를 JSON 레코드로 Kinesis Data Firehose에 게시합니다. 그러면 KinesisData Firehose에서 Kinesis Data Firehose의 전송 스트림을 설정할 때 선택한 AWS 서비스 대상에 레코드를게시합니다. 설정에 대한 정보 Kinesis Data Firehose 인도 스트림, 참조 생성 Kinesis Data Firehose 전달 스트림 in the Amazon Kinesis Data Firehose 개발자 안내서.

Kinesis Data Firehose를 사용하여 이메일 전송 이벤트를 Amazon Redshift 및 Amazon ElasticsearchService에 게시하는 방법의 예제는 Tutorials (p. 319) 단원을 참조하십시오.

이 단원의 주제:• Contents of event data that Amazon SES publishes to Kinesis Data Firehose (p. 281)• Examples of event data that Amazon SES publishes to Kinesis Data Firehose (p. 290)

Contents of event data that Amazon SES publishes to Kinesis Data Firehose

Amazon SES는 이메일 전송 이벤트 레코드를 Amazon Kinesis Data Firehose에 JSON 형식으로 게시합니다. Kinesis Data Firehose에 이벤트를 게시할 때 Amazon SES는 줄 바꿈 문자가 포함된 각 JSON 레코드를따릅니다.

최상위 JSON 객체에는 이벤트 유형에 따라 eventType 문자열, mail 객체, Bounce, Complaint,Delivery, Send, Reject, Open, Click, Rendering Failure 또는 DeliveryDelay 객체 등이 있습니다.

이러한 모든 알림 유형에 대한 레코드 예는 Examples of event data that Amazon SES publishes to KinesisData Firehose (p. 290)에서 찾을 수 있습니다.

281

Page 290: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

이 단원의 주제:• Top-level JSON object (p. 282)• Mail object (p. 283)• Bounce object (p. 284)• Complaint object (p. 286)• Delivery object (p. 287)• Send object (p. 287)• Reject object (p. 287)• Open object (p. 288)• Click object (p. 288)• Rendering Failure object (p. 288)• DeliveryDelay object (p. 289)

Top-level JSON object

이메일 전송 이벤트 레코드의 최상위 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

eventType 이벤트 유형을 설명하는 문자열입니다. 가능한값 Delivery, Send, Reject, Open, Click,Bounce, Complaint, Rendering Failure, 또는DeliveryDelay.

mail 이벤트를 생성하는 이메일 관련 정보를 포함하는JSON 객체입니다.

bounce 이 필드는 eventType is Bounce. 바운스 에 대한정보가 포함되어 있습니다.

complaint 이 필드는 eventType is Complaint. 불만에 대한정보가 포함되어 있습니다.

delivery 이 필드는 eventType is Delivery. 배송에 대한정보가 포함되어 있습니다.

send 이 필드는 eventType이 Send인 경우에만 존재합니다.

reject 이 필드는 eventType is Reject. 거부 에 대한 정보가 포함되어 있습니다.

open 이 필드는 eventType is Open. 열린 이벤트에 대한정보가 포함되어 있습니다.

click 이 필드는 eventType is Click. 클릭 이벤트에 대한 정보가 포함되어 있습니다.

failure 이 필드는 eventType is Rendering Failure.렌더링 실패 이벤트에 대한 정보가 포함되어 있습니다.

deliveryDelay 이 필드는 eventType is DeliveryDelay. 이메일의 지연된 전달에 대한 정보가 포함되어 있습니다.

282

Page 291: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

Mail object

각 이메일 전송 이벤트 레코드는 mail 객체에 원래 메일에 대한 정보를 포함하고 있습니다. mail 객체 정보를 포함하는 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

timestamp 메시지가 전송된 날짜와 시간으로, ISO8601 형식(YYYY-MM-DDThh:mm:ss.sZ)으로 표시됩니다.

messageId Amazon SES에서 메시지에 할당한 고유 ID입니다.Amazon SES는 메시지를 보낼 때 이 값을 반환합니다.

Note

이 메시지 ID는 Amazon SES에서 할당한 것입니다. mail 객체의 headers 및commonHeaders 필드에서 원래 메시지의메시지 ID를 찾을 수 있습니다.

source 메시지를 전송한 이메일 주소(엔벌로프 MAILFROM 주소).

sourceArn 이메일을 전송하는 데 사용된 자격 증명의 Amazon리소스 이름(ARN). 권한 부여 전송의 경우sourceArn은 자격 증명 소유자가 위임 발신자에게메일 전송 시 사용하도록 권한을 부여한 자격 증명의 ARN입니다. 권한 부여 전송에 대한 자세한 내용은 Using sending authorization (p. 144) 단원을 참조하십시오.

sendingAccountId 이메일을 전송하는 데 사용된 계정의 AWS 계정 ID.권한 부여 전송의 경우 sendingAccountId는 위임 발신자의 계정 ID입니다.

destination 원래 메일의 수신자인 이메일 주소의 목록.

headersTruncated 알림에서 헤더가 잘렸는지 여부를 나타내는 문자열입니다. 헤더의 용량이 10KB를 초과할 경우 헤더가잘립니다. 가능한 값은 true 및 false입니다.

headers 이메일의 원래 헤더 목록입니다. 목록의 각 헤더에는 name 필드와 value 필드가 존재합니다.

Note

headers 필드의 모든 메시지 ID는Amazon SES에 전달한 원래 메시지에서가져온 것입니다. 이어서 Amazon SES가메시지에 할당한 메시지 ID는 mail 객체의messageId 필드에 들어 있습니다.

commonHeaders 자주 사용되는 원래 이메일 헤더 목록입니다. 목록의 각 헤더에는 name 필드와 value 필드가 존재합니다.

Note

commonHeaders 필드의 모든 메시지 ID는 Amazon SES에 전달한 원래 메시지에

283

Page 292: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

필드 이름 설명서 가져온 것입니다. 이어서 Amazon SES가 메시지에 할당한 메시지 ID는 mail 객체의 messageId 필드에 들어 있습니다.

Bounce object

Bounce 이벤트에 대한 정보를 포함하는 JSON 객체에는 항상 다음 필드가 포함됩니다.

필드 이름 설명

bounceType Amazon SES가 결정한 반송 메일의 유형.

bounceSubType Amazon SES가 결정한 반송 메일의 하위 유형.

bouncedRecipients 반송된 원래 메일의 수신자 정보를 포함하는 목록.

timestamp ISP가 반송 메일 알림을 전송한 날짜와 시간으로,ISO8601 형식(YYYY-MM-DDThh:mm:ss.sZ)으로표시됩니다.

feedbackId 반송 메일의 고유 ID.

reportingMTA DSN의 Reporting-MTA 필드의 값. DSN에서 설명하는 전송, 중계 또는 게이트웨이 작업을 시도하는메시지 전송 권한(MTA)의 값입니다.

Note

이 필드는 반송 메일에 전송 상태 알림(DSN)이 첨부된 경우에만 표시됩니다.

Bounced recipients

반송 이벤트는 단일 수신자 또는 여러 수신자와 관련이 있을 수 있습니다. bouncedRecipients 필드에는객체 목록(반송 메일 이벤트가 관련된 수신자당 객체 1개)이 표시되며 항상 다음 필드로 구성됩니다.

필드 이름 설명

emailAddress 수신자의 이메일 주소. DSN이 사용 가능할 경우,DSN의 Final-Recipient 필드의 값입니다.

또는 반송 메일에 DSN이 첨부된 경우 다음 필드도 존재할 수 있습니다.

필드 이름 설명

action DSN의 Action 필드의 값. 이 수신자에게 메시지를전송하려는 시도의 결과로 보고-MTA가 수행하는 작업을 나타냅니다.

status DSN의 Status 필드의 값. 메시지의 전송 상태를나타내는 수신자별 전송 독립적 상태 코드입니다.

284

Page 293: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

필드 이름 설명

diagnosticCode 보고-MTA가 발행한 상태 코드. DSN의Diagnostic-Code 필드의 값입니다. 이 필드가DSN에는 없을 수 있습니다(따라서 JSON에도 없음).

Bounce types

각 반송 메일 이벤트는 다음 표에 나와 있는 유형 중 하나가 됩니다.

이벤트 게시 시스템은 Amazon SES에서 더 이상 재시도하지 않을 하드 바운스 및 소프트 바운스만 게시합니다. 표시된 바운스를 받을 때 Permanent에서 해당 이메일 주소를 삭제해야 합니다. 미래에는 해당 이메일주소를 보낼 수 없습니다. Transient 메시지가 여러 번 발행된 경우, 운송이 귀하에게 전송됩니다. AmazonSES 을(를) 다시 전달하려고 시도했습니다. 처음에 Transient 반송 메일이 발생한 주소로 이후 전송 재시도가 성공할 수도 있습니다.

bounceType bounceSubType 설명

Undetermined Undetermined Amazon SES가 특정 반송 사유를 결정하지 못했습니다.

Permanent General Amazon SES가 일반 하드 바운스를 수신했습니다.이 유형의 반송 메일을 받은 경우, 이 수신자의 이메일 주소를 메일 발송 목록에서 삭제해야 합니다.

Permanent NoEmail 대상 이메일 주소가 존재하지 않아 Amazon SES가영구 하드 바운스를 수신했습니다. 이 유형의 반송메일을 받은 경우, 이 수신자의 이메일 주소를 메일발송 목록에서 삭제해야 합니다.

Permanent Suppressed 최근의 잘못된 주소로 인한 반송 이력 때문에Amazon SES가 이 주소로 메일 전송을 금지했습니다. 발송 금지 목록에서 주소를 제거하는 방법에대한 자세한 내용은 Using the Amazon SES globalsuppression list (p. 187) 단원을 참조하십시오.

Permanent OnAccountSuppressionList Amazon SES는 계정 수준 금지 목록 (p. 177)에 있으므로 이 주소로 보내는 것을 금지했습니다.

Transient General Amazon SES가 일반 반송 메일을 수신했습니다. 이후에 이 수신자에게 전송이 성공할 수도 있습니다.

Transient MailboxFull Amazon SES가 사서함 가득 참 반송 메일을 수신했습니다. 이후에 이 수신자에게 전송이 성공할 수도있습니다.

Transient MessageTooLarge Amazon SES가 메시지 너무 큼 반송 메일을 수신했습니다. 메시지 크기를 줄일 경우 이 수신자에게 전송이 성공할 수도 있습니다.

Transient ContentRejected Amazon SES가 내용 거부 반송 메일을 수신했습니다. 메시지 내용을 변경할 경우 이 수신자에게 전송이 성공할 수도 있습니다.

Transient AttachmentRejected Amazon SES가 첨부 파일 거부 반송 메일을 수신했습니다. 첨부 파일을 제거하거나 변경할 경우 이 수신자에게 전송이 성공할 수도 있습니다.

285

Page 294: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

Complaint object

Complaint 이벤트 정보를 포함하는 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

complainedRecipients 불만 제기를 제출했을 수 있는 수신자에 대한 정보를 포함하는 목록.

timestamp ISP가 수신 거부 알림을 전송한 날짜와 시간으로,ISO8601 형식(YYYY-MM-DDThh:mm:ss.sZ)으로표시됩니다.

feedbackId 불만 제기의 고유 ID.

complaintSubType Amazon SES가 결정한 수신 거부의 하위 유형.

또한, 불만 제기에 피드백 보고서가 첨부된 경우 다음 필드가 포함될 수 있습니다.

필드 이름 설명

userAgent 피드백 보고서의 User-Agent 필드의 값입니다. 보고서를 생성한 시스템의 이름 및 버전을 나타냅니다.

complaintFeedbackType ISP로부터 수신된 피드백 보고서의 Feedback-Type 필드의 값. 이 값은 피드백의 유형을 포함합니다.

arrivalDate 피드백 보고서의 Arrival-Date 또는 Received-Date 필드 값으로 ISO8601 형식(YYYY-MM-DDThh:mm:ss.sZ)입니다. 이 필드가 보고서에는 없을 수 있습니다(따라서 JSON에도 없음).

Complained recipients

complainedRecipients 필드는 불만 제기를 제출했을 수 있는 수신자의 목록을 포함합니다.Important

대부분의 ISP가 수신 거부 알림으로부터 수신 거부를 제출한 수신자의 이메일 주소를 수정하므로이 목록은 원래 메시지의 수신자 그리고 AWS가 수신 거부를 수신한 ISP를 기준으로 수신 거부를발송했을 수 있는 수신자에 대한 정보를 포함합니다. Amazon SES는 원래 메시지를 조회하여 이 수신자 목록을 결정합니다.

이 목록의 JSON 객체는 다음 필드를 포함합니다.

필드 이름 설명

emailAddress 수신자의 이메일 주소.

Complaint types

인터넷 할당 번호 관리기관 웹 사이트에 따라 complaintFeedbackType 필드에는 보고 ISP에서 지정한 다음과 같은 수신 거부 유형이 표시될 수 있습니다.

286

Page 295: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

필드 이름 설명

abuse 원치 않는 이메일 또는 기타 유형의 이메일 침해를나타냅니다.

auth-failure 이메일 인증 실패 보고서.

fraud 일종의 사기 또는 피싱 활동을 나타냅니다.

not-spam 보고서를 제공하는 엔터티가 메시지를 스팸으로 간주하지 않음을 나타냅니다. 이는 스팸으로 잘못 태그 지정 또는 분류된 메시지를 교정하기 위해 사용될 수 있습니다.

other 다른 등록된 유형에 들어맞지 않는 기타 피드백을나타냅니다.

virus 발원 메시지에서 바이러스가 발견되었다는 보고서.

Delivery object

Delivery 이벤트에 대한 정보를 포함하는 JSON 객체에는 항상 다음 필드가 포함됩니다.

필드 이름 설명

timestamp Amazon SES가 수신자의 메일 서버로 이메일을 전송한 날짜와 시간으로, ISO8601 형식(YYYY-MM-DDThh:mm:ss.sZ)으로 표시됩니다.

processingTimeMillis Amazon SES가 발신자로부터 요청을 수락한 때로부터 Amazon SES가 수신자의 메일 서버로 메시지를 전송한 때까지의 시간(단위: 밀리초).

recipients 전송 이벤트가 적용되는 의도한 수신자의 목록.

smtpResponse Amazon SES로부터 이메일을 수락한 원격 ISP의SMTP 응답 메시지. 이 메시지는 이메일, 수신 메일서버, 수신 ISP마다 다릅니다.

reportingMTA 메일을 전송한 Amazon SES 메일 서버의 호스트 이름.

Send object

send 이벤트 정보를 포함하는 JSON 객체는 항상 비어 있습니다.

Reject object

Reject 이벤트에 대한 정보를 포함하는 JSON 객체에는 항상 다음 필드가 포함됩니다.

필드 이름 설명

reason 이메일이 거부된 이유입니다. 유일하게 가능한 값은Bad content로, Amazon SES가 바이러스 포함이메일을 감지했다는 뜻입니다. 메시지가 거부되면

287

Page 296: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

필드 이름 설명Amazon SES는 메시지 처리를 중지하고 해당 메시지를 수신자의 메일 서버로 전송하지 않습니다.

Open object

Open 이벤트에 대한 정보를 포함하는 JSON 객체는 항상 다음 필드를 포함합니다.

필드 이름 설명

ipAddress 수신자의 IP 주소입니다.

timestamp 열기 이벤트가 발생한 날짜와 시간으로, ISO8601형식(YYYY-MM-DDThh:mm:ss.sZ)으로 표시됩니다.

userAgent 수신자가 이메일을 여는 데 사용한 이메일 클라이언트 또는 디바이스의 사용자 에이전트입니다.

Click object

Click 이벤트에 대한 정보를 포함하는 JSON 객체는 항상 다음 필드를 포함합니다.

필드 이름 설명

ipAddress 수신자의 IP 주소입니다.

timestamp 클릭 이벤트가 발생한 날짜와 시간으로, ISO8601형식(YYYY-MM-DDThh:mm:ss.sZ)으로 표시됩니다.

userAgent 수신자가 이메일의 링크를 클릭하는 데 사용한 클라이언트의 사용자 에이전트입니다.

link 수신자가 클릭한 링크의 URL입니다.

linkTags ses:tags 속성을 사용하여 링크에 추가된 태그 목록입니다. 이메일의 링크에 태그를 추가하는 방법은 Q5. Can I tag links with uniqueidentifiers? (p. 481)의 Amazon SES emailsending metrics FAQs (p. 479) 단원을 참조하십시오.

Rendering Failure object

Rendering Failure 이벤트 정보를 포함하는 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

templateName 이메일을 전송하는 데 사용하는 템플릿의 이름입니다.

errorMessage 렌더링 오류에 관한 자세한 정보를 제공하는 메시지입니다.

288

Page 297: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

DeliveryDelay object

DeliveryDelay 이벤트 정보를 포함하는 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

delayType 지연 유형입니다. 가능한 값은 다음과 같습니다.

• InternalFailure – An internal Amazon SES issuecaused the message to be delayed.

• General – A generic failure occurred during theSMTP conversation.

• MailboxFull – The recipient's mailbox is full and isunable to receive additional messages.

• SpamDetected – The recipient's mail server hasdetected a large amount of unsolicited email fromyour account.

• RecipientServerError – A temporary issue withthe recipient's email server is preventing thedelivery of the message.

• IPFailure – The IP address that's sending themessage is being blocked or throttled by therecipient's email provider.

• TransientCommunicationGeneral – There wasa temporary communication failure during theSMTP conversation with the recipient's emailprovider.

• BYOIPHostNameLookupUnavailable – AmazonSES was unable to look up the DNS hostnamefor your IP addresses. This type of delayonly occurs when you use Bring Your OwnIP (p. 174).

• Undetermined – Amazon SES wasn't able todetermine the reason for the delivery delay.

delayedRecipients 이메일 수신자에 대한 정보가 있는 객체입니다.

expirationTime Amazon SES에서 메시지 전송 시도를 중지할 날짜및 시간입니다. 이 값은 ISO 8601 형식으로 표시됩니다.

reportingMTA 지연을 보고한 MTA(메시지 전송 에이전트) 의 IP 주소입니다.

timestamp 지연이 발생한 날짜 및 시간으로 ISO 8601 형식으로 표시됩니다.

Delayed recipients

delayedRecipients 객체는 다음 값을 포함합니다.

필드 이름 설명

emailAddress 메시지 전송이 지연된 이메일 주소입니다.

289

Page 298: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

필드 이름 설명

status 전송 지연 관련된 SMTP 상태 코드입니다.

diagnosticCode 메시지 전송 에이전트(MTA)에서 제공하는 진단 코드입니다.

Examples of event data that Amazon SES publishes to Kinesis Data Firehose

이 단원에서는 Amazon SES가 Kinesis Data Firehose에 게시하는 이메일 전송 이벤트 레코드의 유형별 예제를 제공합니다.

이 단원의 주제:• Bounce record (p. 290)• Complaint record (p. 291)• Delivery record (p. 292)• Send record (p. 294)• Reject record (p. 295)• Open record (p. 296)• Click record (p. 297)• Rendering Failure record (p. 299)• DeliveryDelay record (p. 299)

Bounce record

다음은 Amazon SES가 Kinesis Data Firehose에 게시하는 Bounce 이벤트 레코드의 예제입니다.

{ "eventType":"Bounce", "bounce":{ "bounceType":"Permanent", "bounceSubType":"General", "bouncedRecipients":[ { "emailAddress":"[email protected]", "action":"failed", "status":"5.1.1", "diagnosticCode":"smtp; 550 5.1.1 user unknown" } ], "timestamp":"2017-08-05T00:41:02.669Z", "feedbackId":"01000157c44f053b-61b59c11-9236-11e6-8f96-7be8aexample-000000", "reportingMTA":"dsn; mta.example.com" }, "mail":{ "timestamp":"2017-08-05T00:40:02.012Z", "source":"Sender Name <[email protected]>", "sourceArn":"arn:aws:ses:us-east-1:123456789012:identity/[email protected]", "sendingAccountId":"123456789012", "messageId":"EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "destination":[ "[email protected]" ], "headersTruncated":false, "headers":[ { "name":"From",

290

Page 299: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

"value":"Sender Name <[email protected]>" }, { "name":"To", "value":"[email protected]" }, { "name":"Subject", "value":"Message sent from Amazon SES" }, { "name":"MIME-Version", "value":"1.0" }, { "name":"Content-Type", "value":"multipart/alternative; boundary=\"----=_Part_7307378_1629847660.1516840721503\"" } ], "commonHeaders":{ "from":[ "Sender Name <[email protected]>" ], "to":[ "[email protected]" ], "messageId":"EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "subject":"Message sent from Amazon SES" }, "tags":{ "ses:configuration-set":[ "ConfigSet" ], "ses:source-ip":[ "192.0.2.0" ], "ses:from-domain":[ "example.com" ], "ses:caller-identity":[ "ses_user" ] } }}

Complaint record

다음은 Amazon SES가 Kinesis Data Firehose에 게시하는 Complaint 이벤트 레코드의 예제입니다.

{ "eventType":"Complaint", "complaint": { "complainedRecipients":[ { "emailAddress":"[email protected]" } ], "timestamp":"2017-08-05T00:41:02.669Z", "feedbackId":"01000157c44f053b-61b59c11-9236-11e6-8f96-7be8aexample-000000", "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36", "complaintFeedbackType":"abuse", "arrivalDate":"2017-08-05T00:41:02.669Z"

291

Page 300: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

}, "mail":{ "timestamp":"2017-08-05T00:40:01.123Z", "source":"Sender Name <[email protected]>", "sourceArn":"arn:aws:ses:us-east-1:123456789012:identity/[email protected]", "sendingAccountId":"123456789012", "messageId":"EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "destination":[ "[email protected]" ], "headersTruncated":false, "headers":[ { "name":"From", "value":"Sender Name <[email protected]>" }, { "name":"To", "value":"[email protected]" }, { "name":"Subject", "value":"Message sent from Amazon SES" }, { "name":"MIME-Version","value":"1.0" }, { "name":"Content-Type", "value":"multipart/alternative; boundary=\"----=_Part_7298998_679725522.1516840859643\"" } ], "commonHeaders":{ "from":[ "Sender Name <[email protected]>" ], "to":[ "[email protected]" ], "messageId":"EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "subject":"Message sent from Amazon SES" }, "tags":{ "ses:configuration-set":[ "ConfigSet" ], "ses:source-ip":[ "192.0.2.0" ], "ses:from-domain":[ "example.com" ], "ses:caller-identity":[ "ses_user" ] } }}

Delivery record

다음은 Amazon SES가 Kinesis Data Firehose에 게시하는 Delivery 이벤트 레코드의 예제입니다.

{

292

Page 301: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

"eventType": "Delivery", "mail": { "timestamp": "2016-10-19T23:20:52.240Z", "source": "[email protected]", "sourceArn": "arn:aws:ses:us-east-1:123456789012:identity/[email protected]", "sendingAccountId": "123456789012", "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "destination": [ "[email protected]" ], "headersTruncated": false, "headers": [ { "name": "From", "value": "[email protected]" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Message sent from Amazon SES" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "text/html; charset=UTF-8" }, { "name": "Content-Transfer-Encoding", "value": "7bit" } ], "commonHeaders": { "from": [ "[email protected]" ], "to": [ "[email protected]" ], "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "subject": "Message sent from Amazon SES" }, "tags": { "ses:configuration-set": [ "ConfigSet" ], "ses:source-ip": [ "192.0.2.0" ], "ses:from-domain": [ "example.com" ], "ses:caller-identity": [ "ses_user" ], "ses:outgoing-ip": [ "192.0.2.0" ], "myCustomTag1": [ "myCustomTagValue1" ],

293

Page 302: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

"myCustomTag2": [ "myCustomTagValue2" ] } }, "delivery": { "timestamp": "2016-10-19T23:21:04.133Z", "processingTimeMillis": 11893, "recipients": [ "[email protected]" ], "smtpResponse": "250 2.6.0 Message received", "reportingMTA": "mta.example.com" }}

Send record

다음은 Amazon SES가 Kinesis Data Firehose에 게시하는 Send 이벤트 레코드의 예제입니다.

{ "eventType": "Send", "mail": { "timestamp": "2016-10-14T05:02:16.645Z", "source": "[email protected]", "sourceArn": "arn:aws:ses:us-east-1:123456789012:identity/[email protected]", "sendingAccountId": "123456789012", "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "destination": [ "[email protected]" ], "headersTruncated": false, "headers": [ { "name": "From", "value": "[email protected]" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Message sent from Amazon SES" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "multipart/mixed; boundary=\"----=_Part_0_716996660.1476421336341\"" }, { "name": "X-SES-MESSAGE-TAGS", "value": "myCustomTag1=myCustomTagValue1, myCustomTag2=myCustomTagValue2" } ], "commonHeaders": { "from": [ "[email protected]" ], "to": [ "[email protected]"

294

Page 303: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

], "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "subject": "Message sent from Amazon SES" }, "tags": { "ses:configuration-set": [ "ConfigSet" ], "ses:source-ip": [ "192.0.2.0" ], "ses:from-domain": [ "example.com" ], "ses:caller-identity": [ "ses_user" ], "myCustomTag1": [ "myCustomTagValue1" ], "myCustomTag2": [ "myCustomTagValue2" ] } }, "send": {}}

Reject record

다음은 Amazon SES가 Kinesis Data Firehose에 게시하는 Reject 이벤트 레코드의 예제입니다.

{ "eventType": "Reject", "mail": { "timestamp": "2016-10-14T17:38:15.211Z", "source": "[email protected]", "sourceArn": "arn:aws:ses:us-east-1:123456789012:identity/[email protected]", "sendingAccountId": "123456789012", "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "destination": [ "[email protected]" ], "headersTruncated": false, "headers": [ { "name": "From", "value": "[email protected]" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Message sent from Amazon SES" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "multipart/mixed; boundary=\"qMm9M+Fa2AknHoGS\"" },

295

Page 304: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

{ "name": "X-SES-MESSAGE-TAGS", "value": "myCustomTag1=myCustomTagValue1, myCustomTag2=myCustomTagValue2" } ], "commonHeaders": { "from": [ "[email protected]" ], "to": [ "[email protected]" ], "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "subject": "Message sent from Amazon SES" }, "tags": { "ses:configuration-set": [ "ConfigSet" ], "ses:source-ip": [ "192.0.2.0" ], "ses:from-domain": [ "example.com" ], "ses:caller-identity": [ "ses_user" ], "myCustomTag1": [ "myCustomTagValue1" ], "myCustomTag2": [ "myCustomTagValue2" ] } }, "reject": { "reason": "Bad content" }}

Open record

다음은 Amazon SES가 Kinesis Data Firehose에 게시하는 Open 이벤트 레코드의 예제입니다.

{ "eventType": "Open", "mail": { "commonHeaders": { "from": [ "[email protected]" ], "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "subject": "Message sent from Amazon SES", "to": [ "[email protected]" ] }, "destination": [ "[email protected]" ], "headers": [ { "name": "X-SES-CONFIGURATION-SET", "value": "ConfigSet"

296

Page 305: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

}, { "name":"X-SES-MESSAGE-TAGS", "value":"myCustomTag1=myCustomValue1, myCustomTag2=myCustomValue2" }, { "name": "From", "value": "[email protected]" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Message sent from Amazon SES" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "multipart/alternative; boundary=\"XBoundary\"" } ], "headersTruncated": false, "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "sendingAccountId": "123456789012", "source": "[email protected]", "tags": { "myCustomTag1":[ "myCustomValue1" ], "myCustomTag2":[ "myCustomValue2" ], "ses:caller-identity": [ "ses-user" ], "ses:configuration-set": [ "ConfigSet" ], "ses:from-domain": [ "example.com" ], "ses:source-ip": [ "192.0.2.0" ] }, "timestamp": "2017-08-09T21:59:49.927Z" }, "open": { "ipAddress": "192.0.2.1", "timestamp": "2017-08-09T22:00:19.652Z", "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Mobile/14G60" }}

Click record

다음은 Amazon SES가 Kinesis Data Firehose에 게시하는 Click 이벤트 레코드의 예제입니다.

{

297

Page 306: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

"eventType": "Click", "click": { "ipAddress": "192.0.2.1", "link": "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html", "linkTags": { "samplekey0": [ "samplevalue0" ], "samplekey1": [ "samplevalue1" ] }, "timestamp": "2017-08-09T23:51:25.570Z", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36" }, "mail": { "commonHeaders": { "from": [ "[email protected]" ], "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "subject": "Message sent from Amazon SES", "to": [ "[email protected]" ] }, "destination": [ "[email protected]" ], "headers": [ { "name": "X-SES-CONFIGURATION-SET", "value": "ConfigSet" }, { "name":"X-SES-MESSAGE-TAGS", "value":"myCustomTag1=myCustomValue1, myCustomTag2=myCustomValue2" }, { "name": "From", "value": "[email protected]" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Message sent from Amazon SES" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "multipart/alternative; boundary=\"XBoundary\"" }, { "name": "Message-ID", "value": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000" } ], "headersTruncated": false, "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",

298

Page 307: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

"sendingAccountId": "123456789012", "source": "[email protected]", "tags": { "myCustomTag1":[ "myCustomValue1" ], "myCustomTag2":[ "myCustomValue2" ], "ses:caller-identity": [ "ses_user" ], "ses:configuration-set": [ "ConfigSet" ], "ses:from-domain": [ "example.com" ], "ses:source-ip": [ "192.0.2.0" ] }, "timestamp": "2017-08-09T23:50:05.795Z" }}

Rendering Failure record

다음은 Amazon SES가 Kinesis Data Firehose에 게시하는 Rendering Failure 이벤트 레코드의 예제입니다.

{ "eventType":"Rendering Failure", "mail":{ "timestamp":"2018-01-22T18:43:06.197Z", "source":"[email protected]", "sourceArn":"arn:aws:ses:us-east-1:123456789012:identity/[email protected]", "sendingAccountId":"123456789012", "messageId":"EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "destination":[ "[email protected]" ], "headersTruncated":false, "tags":{ "ses:configuration-set":[ "ConfigSet" ] } }, "failure":{ "errorMessage":"Attribute 'attributeName' is not present in the rendering data.", "templateName":"MyTemplate" }}

DeliveryDelay record

다음은 Amazon SES가 Kinesis Data Firehose에 게시하는 DeliveryDelay 이벤트 레코드의 예제입니다.

{ "eventType": "DeliveryDelay", "mail":{ "timestamp":"2020-06-16T00:15:40.641Z",

299

Page 308: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

"source":"[email protected]", "sourceArn":"arn:aws:ses:us-east-1:123456789012:identity/[email protected]", "sendingAccountId":"123456789012", "messageId":"EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "destination":[ "[email protected]" ], "headersTruncated":false, "tags":{ "ses:configuration-set":[ "ConfigSet" ] } }, "deliveryDelay": { "timestamp": "2020-06-16T00:25:40.095Z", "delayType": "TransientCommunicationFailure", "expirationTime": "2020-06-16T00:25:40.914Z", "delayedRecipients": [{ "emailAddress": "[email protected]", "status": "4.4.1", "diagnosticCode": "smtp; 421 4.4.1 Unable to connect to remote host" }] }}

Interpreting Amazon SES event data from Amazon SNSAmazon SES는 이메일 전송 이벤트를 JSON 레코드로 Amazon Simple Notification Service(Amazon SNS)에 게시합니다. 그런 다음 Amazon SNS는 해당 이벤트 대상과 연결된 Amazon SNS 주제를 구독하는 엔드포인트에 알림을 보냅니다. 의 주제 및 구독 설정에 대한 자세한 내용 Amazon SNS, 참조: 시작하기 in theAmazon Simple Notification Service 개발자 안내서.

레코드 콘텐츠에 대한 설명과 레코드 예제는 다음 단원을 참조하십시오.

• Event record contents (p. 300)• Event record examples (p. 309)

Contents of event data that Amazon SES publishes to Amazon SNSAmazon SES는 이메일 전송 이벤트 레코드를 Amazon Simple Notification Service에 JSON 형식으로 게시합니다.

최상위 JSON 객체에는 이벤트 유형에 따라 eventType 문자열, mail 객체, Bounce, Complaint,Delivery, Send, Reject, Open, Click, Rendering Failure 또는 DeliveryDelay 객체 등이 있습니다.

이러한 모든 알림 유형에 대한 레코드 예는 Examples of event data that Amazon SES publishes to AmazonSNS (p. 309)에서 찾을 수 있습니다.

이 단원의 주제:• Top-level JSON object (p. 301)• Mail object (p. 301)• Bounce object (p. 303)• Complaint object (p. 304)• Delivery object (p. 306)• Send object (p. 306)• Reject object (p. 306)

300

Page 309: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

• Open object (p. 307)• Click object (p. 307)• Rendering Failure object (p. 307)• DeliveryDelay object (p. 308)

Top-level JSON object

이메일 전송 이벤트 레코드의 최상위 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

eventType 이벤트 유형을 설명하는 문자열입니다. 가능한값 Delivery, Send, Reject, Open, Click,Bounce, Complaint, Rendering Failure, 또는DeliveryDelay.

mail 이벤트를 생성하는 이메일 관련 정보를 포함하는JSON 객체입니다.

bounce 이 필드는 eventType is Bounce. 바운스 에 대한정보가 포함되어 있습니다.

complaint 이 필드는 eventType is Complaint. 불만에 대한정보가 포함되어 있습니다.

delivery 이 필드는 eventType is Delivery. 배송에 대한정보가 포함되어 있습니다.

send 이 필드는 eventType이 Send인 경우에만 존재합니다.

reject 이 필드는 eventType is Reject. 거부 에 대한 정보가 포함되어 있습니다.

open 이 필드는 eventType is Open. 열린 이벤트에 대한정보가 포함되어 있습니다.

click 이 필드는 eventType is Click. 클릭 이벤트에 대한 정보가 포함되어 있습니다.

failure 이 필드는 eventType is Rendering Failure.렌더링 실패 이벤트에 대한 정보가 포함되어 있습니다.

deliveryDelay 이 필드는 eventType is DeliveryDelay. 이메일의 지연된 전달에 대한 정보가 포함되어 있습니다.

Mail object

각 이메일 전송 이벤트 레코드는 mail 객체에 원래 메일에 대한 정보를 포함하고 있습니다. mail 객체 정보를 포함하는 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

timestamp 메시지가 전송된 날짜와 시간으로, ISO8601 형식(YYYY-MM-DDThh:mm:ss.sZ)으로 표시됩니다.

301

Page 310: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

필드 이름 설명

messageId Amazon SES에서 메시지에 할당한 고유 ID입니다.Amazon SES는 메시지를 보낼 때 이 값을 반환합니다.

Note

이 메시지 ID는 Amazon SES에서 할당한 것입니다. mail 객체의 headers 및commonHeaders 필드에서 원래 메시지의메시지 ID를 찾을 수 있습니다.

source 메시지를 전송한 이메일 주소(엔벌로프 MAILFROM 주소).

sourceArn 이메일을 전송하는 데 사용된 자격 증명의 Amazon리소스 이름(ARN). 권한 부여 전송의 경우sourceArn은 자격 증명 소유자가 위임 발신자에게메일 전송 시 사용하도록 권한을 부여한 자격 증명의 ARN입니다. 권한 부여 전송에 대한 자세한 내용은 Using sending authorization (p. 144) 단원을 참조하십시오.

sendingAccountId 이메일을 전송하는 데 사용된 계정의 AWS 계정 ID.권한 부여 전송의 경우 sendingAccountId는 위임 발신자의 계정 ID입니다.

destination 원래 메일의 수신자인 이메일 주소의 목록.

headersTruncated 알림에서 헤더가 잘렸는지 여부를 나타내는 문자열입니다. 헤더의 용량이 10KB를 초과할 경우 헤더가잘립니다. 가능한 값은 true 및 false입니다.

headers 이메일의 원래 헤더 목록입니다. 목록의 각 헤더에는 name 필드와 value 필드가 존재합니다.

Note

headers 필드의 모든 메시지 ID는Amazon SES에 전달한 원래 메시지에서가져온 것입니다. 이어서 Amazon SES가메시지에 할당한 메시지 ID는 mail 객체의messageId 필드에 들어 있습니다.

commonHeaders 자주 사용되는 원래 이메일 헤더 목록입니다. 목록의 각 헤더에는 name 필드와 value 필드가 존재합니다.

Note

commonHeaders 필드의 모든 메시지 ID는 Amazon SES에 전달한 원래 메시지에서 가져온 것입니다. 이어서 Amazon SES가 메시지에 할당한 메시지 ID는 mail 객체의 messageId 필드에 들어 있습니다.

302

Page 311: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

Bounce object

Bounce 이벤트 정보를 포함하는 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

bounceType Amazon SES가 결정한 반송 메일의 유형.

bounceSubType Amazon SES가 결정한 반송 메일의 하위 유형.

bouncedRecipients 반송된 원래 메일의 수신자 정보를 포함하는 목록.

timestamp ISP가 반송 메일 알림을 전송한 날짜와 시간으로,ISO8601 형식(YYYY-MM-DDThh:mm:ss.sZ)으로표시됩니다.

feedbackId 반송 메일의 고유 ID.

reportingMTA DSN의 Reporting-MTA 필드의 값. DSN에서 설명하는 전송, 중계 또는 게이트웨이 작업을 시도하는메시지 전송 권한(MTA)의 값입니다.

Note

이 필드는 반송 메일에 전송 상태 알림(DSN)이 첨부된 경우에만 표시됩니다.

Bounced recipients

반송 이벤트는 단일 수신자 또는 여러 수신자와 관련이 있을 수 있습니다. bouncedRecipients 필드에는객체 목록(이메일 주소가 반송 메일을 생성하는 수신자당 객체 1개)이 표시되며 항상 다음 필드로 구성됩니다.

필드 이름 설명

emailAddress 수신자의 이메일 주소. DSN이 사용 가능할 경우,DSN의 Final-Recipient 필드의 값입니다.

또는 반송 메일에 DSN이 첨부된 경우 다음 필드도 존재할 수 있습니다.

필드 이름 설명

action DSN의 Action 필드의 값. 이 수신자에게 메시지를전송하려는 시도의 결과로 보고-MTA가 수행하는 작업을 나타냅니다.

status DSN의 Status 필드의 값. 메시지의 전송 상태를나타내는 수신자별 전송 독립적 상태 코드입니다.

diagnosticCode 보고-MTA가 발행한 상태 코드. DSN의Diagnostic-Code 필드의 값입니다. 이 필드가DSN에는 없을 수 있습니다(따라서 JSON에도 없음).

303

Page 312: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

Bounce types

각 반송 메일 이벤트는 다음 표에 나와 있는 유형 중 하나가 됩니다.

이벤트 게시 시스템은 Amazon SES에서 더 이상 재시도하지 않을 하드 바운스 및 소프트 바운스만 게시합니다. 표시된 바운스를 받을 때 Permanent에서 해당 이메일 주소를 삭제해야 합니다. 미래에는 해당 이메일주소를 보낼 수 없습니다. Transient 메시지가 여러 번 발행된 경우, 운송이 귀하에게 전송됩니다. AmazonSES 을(를) 다시 전달하려고 시도했습니다. 처음에 Transient 반송 메일이 발생한 주소로 이후 전송 재시도가 성공할 수도 있습니다.

bounceType bounceSubType 설명

Undetermined Undetermined Amazon SES가 특정 반송 사유를 결정하지 못했습니다.

Permanent General Amazon SES가 일반 하드 바운스를 수신했습니다.이 유형의 반송 메일을 받은 경우, 이 수신자의 이메일 주소를 메일 발송 목록에서 삭제해야 합니다.

Permanent NoEmail 대상 이메일 주소가 존재하지 않아 Amazon SES가영구 하드 바운스를 수신했습니다. 이 유형의 반송메일을 받은 경우, 이 수신자의 이메일 주소를 메일발송 목록에서 삭제해야 합니다.

Permanent Suppressed 최근의 잘못된 주소로 인한 반송 이력 때문에Amazon SES가 이 주소로 메일 전송을 금지했습니다. 발송 금지 목록에서 주소를 제거하는 방법에대한 자세한 내용은 Using the Amazon SES globalsuppression list (p. 187) 단원을 참조하십시오.

Permanent OnAccountSuppressionList Amazon SES는 계정 수준 금지 목록 (p. 177)에 있으므로 이 주소로 보내는 것을 금지했습니다.

Transient General Amazon SES가 일반 반송 메일을 수신했습니다. 이후에 이 수신자에게 전송이 성공할 수도 있습니다.

Transient MailboxFull Amazon SES가 사서함 가득 참 반송 메일을 수신했습니다. 이후에 이 수신자에게 전송이 성공할 수도있습니다.

Transient MessageTooLarge Amazon SES가 메시지 너무 큼 반송 메일을 수신했습니다. 메시지 크기를 줄일 경우 이 수신자에게 전송이 성공할 수도 있습니다.

Transient ContentRejected Amazon SES가 내용 거부 반송 메일을 수신했습니다. 메시지 내용을 변경할 경우 이 수신자에게 전송이 성공할 수도 있습니다.

Transient AttachmentRejected Amazon SES가 첨부 파일 거부 반송 메일을 수신했습니다. 첨부 파일을 제거하거나 변경할 경우 이 수신자에게 전송이 성공할 수도 있습니다.

Complaint object

Complaint 이벤트 정보를 포함하는 JSON 객체는 다음 필드로 구성됩니다.

304

Page 313: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

필드 이름 설명

complainedRecipients 불만 제기를 제출했을 수 있는 수신자에 대한 정보를 포함하는 목록.

timestamp ISP가 수신 거부 알림을 전송한 날짜와 시간으로,ISO8601 형식(YYYY-MM-DDThh:mm:ss.sZ)으로표시됩니다.

feedbackId 불만 제기의 고유 ID.

complaintSubType Amazon SES가 결정한 수신 거부의 하위 유형.

또한, 불만 제기에 피드백 보고서가 첨부된 경우 다음 필드가 포함될 수 있습니다.

필드 이름 설명

userAgent 피드백 보고서의 User-Agent 필드의 값입니다. 보고서를 생성한 시스템의 이름 및 버전을 나타냅니다.

complaintFeedbackType ISP로부터 수신된 피드백 보고서의 Feedback-Type 필드의 값. 이 값은 피드백의 유형을 포함합니다.

arrivalDate 피드백 보고서의 Arrival-Date 또는 Received-Date 필드 값으로 ISO8601 형식(YYYY-MM-DDThh:mm:ss.sZ)입니다. 이 필드가 보고서에는 없을 수 있습니다(따라서 JSON에도 없음).

Complained recipients

complainedRecipients 필드는 불만 제기를 제출했을 수 있는 수신자의 목록을 포함합니다.Important

대부분 ISP는 수신 거부를 제출한 수신자의 이메일 주소를 수정합니다. 이러한 이유로complainedRecipients 필드에는 수신 거부 알림을 발행한 도메인의 주소로 이메일이 전송된모든 사람의 목록이 있습니다.

이 목록의 JSON 객체는 다음 필드를 포함합니다.

필드 이름 설명

emailAddress 수신자의 이메일 주소.

Complaint types

인터넷 할당 번호 관리기관 웹 사이트에 따라 complaintFeedbackType 필드에는 보고 ISP에서 지정한 다음과 같은 수신 거부 유형이 표시될 수 있습니다.

필드 이름 설명

abuse 원치 않는 이메일 또는 기타 유형의 이메일 침해를나타냅니다.

305

Page 314: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

필드 이름 설명

auth-failure 이메일 인증 실패 보고서.

fraud 일종의 사기 또는 피싱 활동을 나타냅니다.

not-spam 보고서를 제공하는 엔터티가 메시지를 스팸으로 간주하지 않음을 나타냅니다. 이는 스팸으로 잘못 태그 지정 또는 분류된 메시지를 교정하기 위해 사용될 수 있습니다.

other 다른 등록된 유형에 들어맞지 않는 기타 피드백을나타냅니다.

virus 발원 메시지에서 바이러스가 발견되었다는 보고서.

Complaint subtypes

고객의 complaintSubType 필드는 null이거나 OnAccountSuppressionList. 값이OnAccountSuppressionList, Amazon SES 메시지를 수락했지만, 그 메시지를 전송하려고 시도하지 않았습니다. 계정 레벨 억제 목록 (p. 177).

Delivery object

Delivery 이벤트 정보를 포함하는 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

timestamp Amazon SES가 수신자의 메일 서버로 이메일을 전송한 날짜와 시간으로, ISO8601 형식(YYYY-MM-DDThh:mm:ss.sZ)으로 표시됩니다.

processingTimeMillis Amazon SES가 발신자로부터 요청을 수락한 때로부터 Amazon SES가 수신자의 메일 서버로 메시지를 전송한 때까지의 시간(단위: 밀리초).

recipients 전송 이벤트가 적용되는 의도한 수신자의 목록.

smtpResponse Amazon SES로부터 이메일을 수락한 원격 ISP의SMTP 응답 메시지. 이 메시지는 이메일, 수신 메일서버, 수신 ISP마다 다릅니다.

reportingMTA 메일을 전송한 Amazon SES 메일 서버의 호스트 이름.

Send object

send 이벤트 정보를 포함하는 JSON 객체는 항상 비어 있습니다.

Reject object

Reject 이벤트 정보를 포함하는 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

reason 이메일이 거부된 이유입니다. 유일하게 가능한 값은Bad content로, Amazon SES가 바이러스 포함이메일을 감지했다는 뜻입니다. 메시지가 거부되면

306

Page 315: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

필드 이름 설명Amazon SES는 메시지 처리를 중지하고 해당 메시지를 수신자의 메일 서버로 전송하지 않습니다.

Open object

Open 이벤트 정보를 포함하는 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

ipAddress 수신자의 IP 주소입니다.

timestamp 열기 이벤트가 발생한 날짜와 시간으로, ISO8601형식(YYYY-MM-DDThh:mm:ss.sZ)으로 표시됩니다.

userAgent 수신자가 이메일을 여는 데 사용한 이메일 클라이언트 또는 디바이스의 사용자 에이전트입니다.

Click object

Click 이벤트 정보를 포함하는 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

ipAddress 수신자의 IP 주소입니다.

timestamp 클릭 이벤트가 발생한 날짜와 시간으로, ISO8601형식(YYYY-MM-DDThh:mm:ss.sZ)으로 표시됩니다.

userAgent 수신자가 이메일의 링크를 클릭하는 데 사용한 클라이언트의 사용자 에이전트입니다.

link 수신자가 클릭한 링크의 URL입니다.

linkTags ses:tags 속성을 사용하여 링크에 추가된 태그 목록입니다. 이메일의 링크에 태그를 추가하는 방법은 Q5. Can I tag links with uniqueidentifiers? (p. 481)의 Amazon SES emailsending metrics FAQs (p. 479) 단원을 참조하십시오.

Rendering Failure object

Rendering Failure 이벤트 정보를 포함하는 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

templateName 이메일을 전송하는 데 사용하는 템플릿의 이름입니다.

errorMessage 렌더링 오류에 관한 자세한 정보를 제공하는 메시지입니다.

307

Page 316: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

DeliveryDelay object

DeliveryDelay 이벤트 정보를 포함하는 JSON 객체는 다음 필드로 구성됩니다.

필드 이름 설명

delayType 지연 유형입니다. 가능한 값은 다음과 같습니다.

• InternalFailure – An internal Amazon SES issuecaused the message to be delayed.

• General – A generic failure occurred during theSMTP conversation.

• MailboxFull – The recipient's mailbox is full and isunable to receive additional messages.

• SpamDetected – The recipient's mail server hasdetected a large amount of unsolicited email fromyour account.

• RecipientServerError – A temporary issue withthe recipient's email server is preventing thedelivery of the message.

• IPFailure – The IP address that's sending themessage is being blocked or throttled by therecipient's email provider.

• TransientCommunicationGeneral – There wasa temporary communication failure during theSMTP conversation with the recipient's emailprovider.

• BYOIPHostNameLookupUnavailable – AmazonSES was unable to look up the DNS hostnamefor your IP addresses. This type of delayonly occurs when you use Bring Your OwnIP (p. 174).

• Undetermined – Amazon SES wasn't able todetermine the reason for the delivery delay.

delayedRecipients 이메일 수신자에 대한 정보가 있는 객체입니다.

expirationTime Amazon SES에서 메시지 전송 시도를 중지할 날짜및 시간입니다. 이 값은 ISO 8601 형식으로 표시됩니다.

reportingMTA 지연을 보고한 MTA(메시지 전송 에이전트) 의 IP 주소입니다.

timestamp 지연이 발생한 날짜 및 시간으로 ISO 8601 형식으로 표시됩니다.

Delayed recipients

delayedRecipients 객체는 다음 값을 포함합니다.

필드 이름 설명

emailAddress 메시지 전송이 지연된 이메일 주소입니다.

308

Page 317: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

필드 이름 설명

status 전송 지연 관련된 SMTP 상태 코드입니다.

diagnosticCode 메시지 전송 에이전트(MTA)에서 제공하는 진단 코드입니다.

Examples of event data that Amazon SES publishes to Amazon SNS

이 단원에서는 Amazon SES가 Amazon SNS에 게시하는 이메일 전송 이벤트 레코드의 유형별 예제를 제공합니다.

이 단원의 주제:• Bounce record (p. 309)• Complaint record (p. 310)• Delivery record (p. 311)• Send record (p. 313)• Reject record (p. 314)• Open record (p. 315)• Click record (p. 316)• Rendering Failure record (p. 318)• DeliveryDelay record (p. 318)

Bounce record

다음은 Amazon SES가 Amazon SNS에 게시하는 Bounce 이벤트 레코드의 예제입니다.

{ "eventType":"Bounce", "bounce":{ "bounceType":"Permanent", "bounceSubType":"General", "bouncedRecipients":[ { "emailAddress":"[email protected]", "action":"failed", "status":"5.1.1", "diagnosticCode":"smtp; 550 5.1.1 user unknown" } ], "timestamp":"2017-08-05T00:41:02.669Z", "feedbackId":"01000157c44f053b-61b59c11-9236-11e6-8f96-7be8aexample-000000", "reportingMTA":"dsn; mta.example.com" }, "mail":{ "timestamp":"2017-08-05T00:40:02.012Z", "source":"Sender Name <[email protected]>", "sourceArn":"arn:aws:ses:us-east-1:123456789012:identity/[email protected]", "sendingAccountId":"123456789012", "messageId":"EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "destination":[ "[email protected]" ], "headersTruncated":false, "headers":[ { "name":"From",

309

Page 318: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

"value":"Sender Name <[email protected]>" }, { "name":"To", "value":"[email protected]" }, { "name":"Subject", "value":"Message sent from Amazon SES" }, { "name":"MIME-Version", "value":"1.0" }, { "name":"Content-Type", "value":"multipart/alternative; boundary=\"----=_Part_7307378_1629847660.1516840721503\"" } ], "commonHeaders":{ "from":[ "Sender Name <[email protected]>" ], "to":[ "[email protected]" ], "messageId":"EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "subject":"Message sent from Amazon SES" }, "tags":{ "ses:configuration-set":[ "ConfigSet" ], "ses:source-ip":[ "192.0.2.0" ], "ses:from-domain":[ "example.com" ], "ses:caller-identity":[ "ses_user" ] } }}

Complaint record

다음은 Amazon SES가 Amazon SNS에 게시하는 Complaint 이벤트 레코드의 예제입니다.

{ "eventType":"Complaint", "complaint": { "complainedRecipients":[ { "emailAddress":"[email protected]" } ], "timestamp":"2017-08-05T00:41:02.669Z", "feedbackId":"01000157c44f053b-61b59c11-9236-11e6-8f96-7be8aexample-000000", "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36", "complaintFeedbackType":"abuse", "arrivalDate":"2017-08-05T00:41:02.669Z"

310

Page 319: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

}, "mail":{ "timestamp":"2017-08-05T00:40:01.123Z", "source":"Sender Name <[email protected]>", "sourceArn":"arn:aws:ses:us-east-1:123456789012:identity/[email protected]", "sendingAccountId":"123456789012", "messageId":"EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "destination":[ "[email protected]" ], "headersTruncated":false, "headers":[ { "name":"From", "value":"Sender Name <[email protected]>" }, { "name":"To", "value":"[email protected]" }, { "name":"Subject", "value":"Message sent from Amazon SES" }, { "name":"MIME-Version","value":"1.0" }, { "name":"Content-Type", "value":"multipart/alternative; boundary=\"----=_Part_7298998_679725522.1516840859643\"" } ], "commonHeaders":{ "from":[ "Sender Name <[email protected]>" ], "to":[ "[email protected]" ], "messageId":"EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "subject":"Message sent from Amazon SES" }, "tags":{ "ses:configuration-set":[ "ConfigSet" ], "ses:source-ip":[ "192.0.2.0" ], "ses:from-domain":[ "example.com" ], "ses:caller-identity":[ "ses_user" ] } }}

Delivery record

다음은 Amazon SES가 Amazon SNS에 게시하는 Delivery 이벤트 레코드의 예제입니다.

{

311

Page 320: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

"eventType": "Delivery", "mail": { "timestamp": "2016-10-19T23:20:52.240Z", "source": "[email protected]", "sourceArn": "arn:aws:ses:us-east-1:123456789012:identity/[email protected]", "sendingAccountId": "123456789012", "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "destination": [ "[email protected]" ], "headersTruncated": false, "headers": [ { "name": "From", "value": "[email protected]" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Message sent from Amazon SES" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "text/html; charset=UTF-8" }, { "name": "Content-Transfer-Encoding", "value": "7bit" } ], "commonHeaders": { "from": [ "[email protected]" ], "to": [ "[email protected]" ], "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "subject": "Message sent from Amazon SES" }, "tags": { "ses:configuration-set": [ "ConfigSet" ], "ses:source-ip": [ "192.0.2.0" ], "ses:from-domain": [ "example.com" ], "ses:caller-identity": [ "ses_user" ], "ses:outgoing-ip": [ "192.0.2.0" ], "myCustomTag1": [ "myCustomTagValue1" ],

312

Page 321: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

"myCustomTag2": [ "myCustomTagValue2" ] } }, "delivery": { "timestamp": "2016-10-19T23:21:04.133Z", "processingTimeMillis": 11893, "recipients": [ "[email protected]" ], "smtpResponse": "250 2.6.0 Message received", "reportingMTA": "mta.example.com" }}

Send record

다음은 Amazon SES가 Amazon SNS에 게시하는 Send 이벤트 레코드의 예제입니다.

{ "eventType": "Send", "mail": { "timestamp": "2016-10-14T05:02:16.645Z", "source": "[email protected]", "sourceArn": "arn:aws:ses:us-east-1:123456789012:identity/[email protected]", "sendingAccountId": "123456789012", "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "destination": [ "[email protected]" ], "headersTruncated": false, "headers": [ { "name": "From", "value": "[email protected]" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Message sent from Amazon SES" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "multipart/mixed; boundary=\"----=_Part_0_716996660.1476421336341\"" }, { "name": "X-SES-MESSAGE-TAGS", "value": "myCustomTag1=myCustomTagValue1, myCustomTag2=myCustomTagValue2" } ], "commonHeaders": { "from": [ "[email protected]" ], "to": [ "[email protected]" ],

313

Page 322: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

"messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "subject": "Message sent from Amazon SES" }, "tags": { "ses:configuration-set": [ "ConfigSet" ], "ses:source-ip": [ "192.0.2.0" ], "ses:from-domain": [ "example.com" ], "ses:caller-identity": [ "ses_user" ], "myCustomTag1": [ "myCustomTagValue1" ], "myCustomTag2": [ "myCustomTagValue2" ] } }, "send": {}}

Reject record

다음은 Amazon SES가 Amazon SNS에 게시하는 Reject 이벤트 레코드의 예제입니다.

{ "eventType": "Reject", "mail": { "timestamp": "2016-10-14T17:38:15.211Z", "source": "[email protected]", "sourceArn": "arn:aws:ses:us-east-1:123456789012:identity/[email protected]", "sendingAccountId": "123456789012", "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "destination": [ "[email protected]" ], "headersTruncated": false, "headers": [ { "name": "From", "value": "[email protected]" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Message sent from Amazon SES" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "multipart/mixed; boundary=\"qMm9M+Fa2AknHoGS\"" }, {

314

Page 323: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

"name": "X-SES-MESSAGE-TAGS", "value": "myCustomTag1=myCustomTagValue1, myCustomTag2=myCustomTagValue2" } ], "commonHeaders": { "from": [ "[email protected]" ], "to": [ "[email protected]" ], "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "subject": "Message sent from Amazon SES" }, "tags": { "ses:configuration-set": [ "ConfigSet" ], "ses:source-ip": [ "192.0.2.0" ], "ses:from-domain": [ "example.com" ], "ses:caller-identity": [ "ses_user" ], "myCustomTag1": [ "myCustomTagValue1" ], "myCustomTag2": [ "myCustomTagValue2" ] } }, "reject": { "reason": "Bad content" }}

Open record

다음은 Amazon SES가 Amazon SNS에 게시하는 Open 이벤트 레코드의 예제입니다.

{ "eventType": "Open", "mail": { "commonHeaders": { "from": [ "[email protected]" ], "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "subject": "Message sent from Amazon SES", "to": [ "[email protected]" ] }, "destination": [ "[email protected]" ], "headers": [ { "name": "X-SES-CONFIGURATION-SET", "value": "ConfigSet" },

315

Page 324: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

{ "name":"X-SES-MESSAGE-TAGS", "value":"myCustomTag1=myCustomValue1, myCustomTag2=myCustomValue2" }, { "name": "From", "value": "[email protected]" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Message sent from Amazon SES" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "multipart/alternative; boundary=\"XBoundary\"" } ], "headersTruncated": false, "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "sendingAccountId": "123456789012", "source": "[email protected]", "tags": { "myCustomTag1":[ "myCustomValue1" ], "myCustomTag2":[ "myCustomValue2" ], "ses:caller-identity": [ "ses-user" ], "ses:configuration-set": [ "ConfigSet" ], "ses:from-domain": [ "example.com" ], "ses:source-ip": [ "192.0.2.0" ] }, "timestamp": "2017-08-09T21:59:49.927Z" }, "open": { "ipAddress": "192.0.2.1", "timestamp": "2017-08-09T22:00:19.652Z", "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Mobile/14G60" }}

Click record

다음은 Amazon SES가 Amazon SNS에 게시하는 Click 이벤트 레코드의 예제입니다.

{ "eventType": "Click",

316

Page 325: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

"click": { "ipAddress": "192.0.2.1", "link": "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html", "linkTags": { "samplekey0": [ "samplevalue0" ], "samplekey1": [ "samplevalue1" ] }, "timestamp": "2017-08-09T23:51:25.570Z", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36" }, "mail": { "commonHeaders": { "from": [ "[email protected]" ], "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "subject": "Message sent from Amazon SES", "to": [ "[email protected]" ] }, "destination": [ "[email protected]" ], "headers": [ { "name": "X-SES-CONFIGURATION-SET", "value": "ConfigSet" }, { "name":"X-SES-MESSAGE-TAGS", "value":"myCustomTag1=myCustomValue1, myCustomTag2=myCustomValue2" }, { "name": "From", "value": "[email protected]" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Message sent from Amazon SES" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "multipart/alternative; boundary=\"XBoundary\"" }, { "name": "Message-ID", "value": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000" } ], "headersTruncated": false, "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "sendingAccountId": "123456789012",

317

Page 326: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Working with event data

"source": "[email protected]", "tags": { "myCustomTag1":[ "myCustomValue1" ], "myCustomTag2":[ "myCustomValue2" ], "ses:caller-identity": [ "ses_user" ], "ses:configuration-set": [ "ConfigSet" ], "ses:from-domain": [ "example.com" ], "ses:source-ip": [ "192.0.2.0" ] }, "timestamp": "2017-08-09T23:50:05.795Z" }}

Rendering Failure record

다음은 Amazon SES가 Amazon SNS에 게시하는 Rendering Failure 이벤트 레코드의 예제입니다.

{ "eventType":"Rendering Failure", "mail":{ "timestamp":"2018-01-22T18:43:06.197Z", "source":"[email protected]", "sourceArn":"arn:aws:ses:us-east-1:123456789012:identity/[email protected]", "sendingAccountId":"123456789012", "messageId":"EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "destination":[ "[email protected]" ], "headersTruncated":false, "tags":{ "ses:configuration-set":[ "ConfigSet" ] } }, "failure":{ "errorMessage":"Attribute 'attributeName' is not present in the rendering data.", "templateName":"MyTemplate" }}

DeliveryDelay record

다음은 Amazon SES가 Amazon SNS에 게시하는 DeliveryDelay 이벤트 레코드의 예제입니다.

{ "eventType": "DeliveryDelay", "mail":{ "timestamp":"2020-06-16T00:15:40.641Z", "source":"[email protected]", "sourceArn":"arn:aws:ses:us-east-1:123456789012:identity/[email protected]",

318

Page 327: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

"sendingAccountId":"123456789012", "messageId":"EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000", "destination":[ "[email protected]" ], "headersTruncated":false, "tags":{ "ses:configuration-set":[ "ConfigSet" ] } }, "deliveryDelay": { "timestamp": "2020-06-16T00:25:40.095Z", "delayType": "TransientCommunicationFailure", "expirationTime": "2020-06-16T00:25:40.914Z", "delayedRecipients": [{ "emailAddress": "[email protected]", "status": "4.4.1", "diagnosticCode": "smtp; 421 4.4.1 Unable to connect to remote host" }] }}

Event publishing tutorials이 단원에서는 데이터 분석 및 시각화를 지원하는 AWS 서비스와 함께 Amazon SES 이벤트 게시를 사용하는 방법이 담긴 자습서를 제공합니다.

이 단원의 주제:• Analyze email sending events with Amazon Redshift (p. 319)• Graph email sending events in Amazon CloudWatch (p. 330)• Analyze email sending events with Amazon Kinesis Data Analytics (p. 333)

Analyze email sending events with Amazon Redshift이 자습서에서는 Amazon Redshift에 데이터를 게시하는 Amazon Kinesis Data Firehose 전송 스트림에Amazon SES 이메일 전송 이벤트를 게시합니다. 그런 다음 Amazon Redshift 데이터베이스에 연결하고 SQL쿼리 도구를 사용하여 특정 기준에 부합하는 Amazon SES 이메일 전송 이벤트에 관한 데이터베이스를 쿼리합니다.

다음 단원에서 프로세스를 소개합니다.

• 사전 조건 (p. 319)• 1단계: Amazon Redshift 클러스터 생성 (p. 320)• 2단계: Amazon Redshift 클러스터에 연결 (p. 320)• 3단계: 데이터베이스 테이블 생성 (p. 323)• 4단계: Kinesis Data Firehose 전송 스트림 만들기 (p. 325)• 5단계: 구성 세트 설정 (p. 328)• 6단계: 이메일 전송 (p. 328)• 7단계: 이메일 전송 이벤트 쿼리 (p. 329)

사전 조건

이 자습서를 이해하려면 다음이 필요합니다.

319

Page 328: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

• AWS 계정 – AWS가 제공하는 웹 서비스에 액세스하려면 먼저 https://aws.amazon.com/에서 AWS 계정을생성해야 합니다.

• 확인된 이메일 주소 – Amazon SES를 사용하여 이메일을 전송하려면 "발신" 주소나 도메인을 확인하여 이를 소유하고 있음을 보여야 합니다. 샌드박스에 있는 경우 "수신" 주소도 확인해야 합니다. 이메일 주소나전체 도메인을 확인할 수 있지만 이 자습서에서는 가장 간단하게 이메일을 보내는 방법, 즉 Amazon SES콘솔에서 이메일을 보낼 수 있도록 확인된 이메일 주소가 필요합니다. 이메일 주소를 확인하는 방법에 대한 자세한 내용은 Verifying email addresses in Amazon SES (p. 46) 단원을 참조하십시오.

• SQL 쿼리 도구 – Amazon Redshift는 SQL 클라이언트 도구나 라이브러리를 제공하거나 설치하지 않으므로 해당 Amazon SES 이벤트가 포함된 Amazon Redshift 클러스터에 액세스하는 데 사용할 수 있는 것을 설치해야 합니다. 이 자습서에서는 DBMS에 종속되지 않은 무료 교차 플랫폼 SQL 쿼리 도구인 SQLWorkbench/J를 사용합니다. 이 섹션에는 SQL Workbench/J 설치 절차가 포함되어 있습니다.

SQL Workbench/J를 설치하려면

1. SQL Workbench/J 소프트웨어 라이선스를 검토합니다.2. SQL Workbench/J 웹 사이트를 방문하여 운영 체제에 맞는 패키지를 다운로드합니다.3. SQL Workbench/J 설치 및 시작으로 이동하여 SQL Workbench/J를 설치합니다.

Important

SQL Workbench/J에 필요한 Java 런타임 버전 요건을 조사하고, 해당 버전을 사용 중인지 확인합니다. 그렇지 않으면 이 클라이언트 애플리케이션이 실행되지 않습니다.

4. JDBC 연결 구성 페이지에서 SQL Workbench/J를 클러스터에 연결하는 데 필요한 Amazon RedshiftJDBC 드라이버를 다운로드합니다.

다음 단계

1단계: Amazon Redshift 클러스터 생성 (p. 320)

1단계: Amazon Redshift 클러스터 생성

Amazon Redshift 클러스터를 생성하려면 Amazon Redshift 콘솔로 이동하여 클러스터 시작을 선택합니다.마법사가 클러스터 선택 옵션을 통해 방법을 안내하고, 대부분의 옵션에 대한 기본 값을 제공합니다.

단순한 예를 들고 있는 이 자습서에서는 클러스터 이름과 암호를 입력하면 모든 기본 값을 사용할 수 있습니다. Amazon SES 이벤트 게시에 고유한 값을 설정할 필요가 없습니다.

Important

이 자습서에서 배포하는 클러스터는 실제 환경에서 실행됩니다. 실행 중일 때는 AWS 계정에 요금이 발생합니다. 불필요한 과금을 피하려면 클러스터를 사용한 후 삭제해야 합니다. 요금 정보를 보려면 Amazon Redshift 요금 페이지로 이동합니다.

다음 단계

2단계: Amazon Redshift 클러스터에 연결 (p. 320)

2단계: Amazon Redshift 클러스터에 연결

이제 SQL 클라이언트 도구를 사용해 클러스터에 연결됩니다. 이 자습서에서는 사전 조건 단원 (p. 319)에서 설치한 SQL Workbench/J 클라이언트를 사용합니다.

다음 단계를 수행하여 이 단원을 마칩니다.

• 연결 문자열 가져오기 (p. 321)• SQL Workbench/J에서 클러스터에 연결 (p. 321)

320

Page 329: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

연결 문자열 가져오기

다음 절차는 SQL Workbench/J에서 Amazon Redshift 클러스터에 연결하는 데 필요한 연결 문자열을 가져오는 방법을 보여줍니다.

연결 문자열을 가져오려면

1. Amazon Redshift 콘솔의 탐색 창에서 클러스터를 선택합니다.2. 클러스터를 열려면 클러스터 이름을 선택합니다.3. Configuration 탭의 Cluster Database Properties 아래에서 클러스터의 JDBC URL을 복사합니다.

Note

클러스터가 생성되어 사용 가능한 상태가 될 때까지는 클러스터의 엔드포인트를 사용할 수 없습니다.

SQL Workbench/J에서 클러스터에 연결

다음 절차에서는 SQL Workbench/J에서 클러스터에 연결하는 방법을 보여줍니다. 이 절차는 사전 조건 (p. 319)의 설명에 따라 컴퓨터에 SQL Workbench/J를 설치한 것으로 가정합니다.

SQL Workbench/J에서 클러스터에 연결하려면

1. SQL Workbench/J를 엽니다.2. File, Connect window를 차례로 선택합니다.3. Create a new connection profile 버튼을 선택합니다.

321

Page 330: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

4. New profile 텍스트 상자에 프로필 이름을 입력합니다.5. 창 왼쪽 아래에서 Manage Drivers를 선택합니다.6. Manage Drivers 대화 상자에서 Create a new entry 버튼을 선택한 후 다음과 같이 드라이버를 추가합니

다.

a. Name 상자에 드라이버 이름을 입력합니다.b. Library 옆에서 폴더 아이콘을 선택합니다.c. JDBC 연결 구성을 위해 다운로드한 드라이버의 위치를 탐색하여 드라이버를 선택한 후 Open을 선

택합니다.d. 확인을 선택합니다.

Select Connection Profile 대화 상자로 돌아갑니다.7. Driver에서 방금 추가한 드라이버를 선택합니다.8. URL에 Amazon Redshift 콘솔에서 복사한 JDBC URL을 붙여 넣습니다.9. 사용자 이름에 Amazon Redshift 클러스터 설정 (p. 320) 시 선택한 사용자 이름을 입력합니다.10. 암호에 Amazon Redshift 클러스터 설정 시 선택한 암호를 입력합니다.11. Autocommit를 선택합니다.12. 연결을 테스트하려면 Test를 선택합니다.

Note

연결 시도 시간이 초과되면 IP 주소로부터 수신되는 트래픽을 허용하는 보안 그룹에 IP 주소를추가해야 할 수 있습니다. 자세한 내용은 Amazon Redshift Database Developer Guide의 연결거부 또는 실패를 참조하십시오.

322

Page 331: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

13. 맨 위 메뉴 모음에서 Save profile list 버튼을 선택합니다.14. 확인을 선택합니다.

SQL Workbench/J가 Amazon Redshift 클러스터에 연결됩니다.

다음 단계

3단계: 데이터베이스 테이블 생성 (p. 323)

3단계: 데이터베이스 테이블 생성

Amazon Redshift에서 초기 데이터베이스에 연결한 후 일반적으로 초기 데이터베이스를 기반으로 삼아 새데이터베이스를 생성합니다. 하지만 이 자습서에서는 간단히 초기 데이터베이스 내에서 직접 Amazon SES이벤트 게시 데이터가 수록된 테이블을 생성합니다.

이 자습서는 설명상 편의를 위해 이메일 전송 이벤트 레코드 (p. 281)의 다음과 같은 필드에 관심이 있는 것으로 가정합니다. mail.tags.campaign을 제외한 이 모든 필드는 Amazon SES가 자동으로 제공합니다. 6단계: 이메일 전송 (p. 328)에서 campaign을 메시지 태그로 사용해 이메일을 전송할 때mail.tags.campaign 필드를 사용합니다.

• mail.messageId

• eventType

• mail.sendingAccountId

• mail.timestamp

• mail.destination

• mail.tags.ses:configuration-set

• mail.tags.campaign

323

Page 332: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

데이터베이스 내에서 이 정보에 액세스하려면 테이블을 만들어야 합니다. 다음 절차는 데이터베이스에서 테이블을 만들 때 이 정보를 지정하는 방법을 보여줍니다.

Note

이전 단계 (p. 320)에서 설명한 대로 현재 SQL Workbench/J가 컴퓨터에 열려 있고 AmazonRedshift 클러스터에 연결된 것으로 가정합니다.

SQL Workbench/J를 사용하여 테이블을 생성하려면

1. SQL Workbench/J에서 다음 코드를 복사하고 Statement 1 창에 붙여 넣습니다.

create table ses ( message_id varchar(200) not null, event_type varchar(20) not null, sending_account_id char(12), timestamp varchar(50), destination text, configuration_set text, campaign text);

2. 다음 그림과 같이 명령문 내에서 세미콜론 앞쪽 아무 곳에나 커서를 대고 Execute current statement 버튼을 선택합니다.

3. Messages 창에서 테이블이 성공적으로 만들어졌는지 확인합니다.

다음 단계

4단계: Kinesis Data Firehose 전송 스트림 만들기 (p. 325)

324

Page 333: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

4단계: Kinesis Data Firehose 전송 스트림 만들기

Amazon Kinesis Data Firehose에 이메일 전송 이벤트를 게시하려면 Kinesis Data Firehose 전송 스트림을생성해야 합니다. Kinesis Data Firehose 전송 스트림을 설정할 때 Kinesis Data Firehose가 데이터를 게시할위치를 선택합니다. 이 자습서에서는 Amazon Redshift에 데이터를 게시하도록 Kinesis Data Firehose를 설정하고 중간 단계로 Kinesis Data Firehose가 Amazon S3에 레코드를 게시하도록 선택합니다. 그 과정에서Amazon Redshift가 어떤 식으로 이전 단계 (p. 323)에서 생성한 테이블에 Amazon S3의 레코드를 복사해야 하는지 지정해야 합니다.

이 단원에서는 Amazon Redshift로 데이터를 전송하는 Kinesis Data Firehose 전송 스트림을 생성하는 방법,전송 스트림을 편집하여 Amazon Redshift가 어떻게 Amazon SES 이벤트 게시 데이터를 Amazon S3에 복사해야 하는지 지정하는 방법을 보여줍니다.

Note

이전 단계에서 설명한 대로 이미 Amazon Redshift 클러스터를 설정 (p. 320)했고 클러스터에 연결 (p. 320)했으며 데이터베이스 테이블을 생성 (p. 323)했을 것입니다.

Kinesis Data Firehose 전송 스트림 생성

다음 절차는 Amazon S3를 중간 데이터 위치로 사용하여 Amazon Redshift에 데이터를 게시하는 KinesisData Firehose 전송 스트림을 생성하는 방법을 보여줍니다.

Kinesis Data Firehose에서 Amazon Redshift로 전송 스트림을 생성하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/firehose/에서 Kinesis DataFirehose 콘솔을 엽니다.

2. Create Delivery Stream을 선택합니다.3. Destination 페이지에서 다음 옵션을 선택합니다.

• 대상 – Amazon Redshift를 선택합니다.• 전송 스트림 이름 – 전송 스트림의 이름을 입력합니다.• S3 버킷 – New S3 bucket(새 S3 버킷)을 선택하고 버킷 이름을 입력하고 리전을 선택한 다음 버킷 만

들기를 선택합니다.• Redshift 클러스터 – 이전 단계에서 생성한 Amazon Redshift 클러스터를 선택합니다.• Redshift 데이터베이스 – 기본 데이터베이스 이름인 dev를 입력합니다.• Redshift 테이블 – 3단계: 데이터베이스 테이블 생성 (p. 323)에서 생성한 테이블인 ses를 입력합니

다.• Redshift 테이블 열 – 이 필드는 비워 둡니다.• Redshift 사용자 이름 – Amazon Redshift 클러스터를 설정 (p. 320)할 때 선택한 사용자 이름을 입력

합니다.• Redshift 암호 – Amazon Redshift 클러스터를 설정할 때 선택한 암호를 입력합니다.• Redshift COPY 옵션 – 이 필드는 비워 둡니다.• 재시도 지속시간 – 이 필드는 기본 값으로 유지합니다.• COPY 명령 – 이 필드는 기본 값으로 유지합니다. 다음 절차에서 업데이트합니다.

4. [Next]를 선택합니다.5. 간단한 자습서이므로, Configuration 페이지의 필드는 기본 설정으로 유지합니다. 이 단계에서 해야 할

일은 다음 절차에 설명된 대로 Kinesis Data Firehose가 리소스에 액세스하도록 지원하는 IAM 역할을 선택하는 것뿐입니다.

a. IAM Role에서 Select an IAM role을 선택합니다.b. 드롭 다운 메뉴의 Create/Update existing IAM role에서 Firehose delivery IAM role을 선택합니다.

이제 IAM 콘솔로 이동하게 됩니다.

325

Page 334: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

c. IAM 콘솔에서 필드를 기본 설정으로 유지하고 허용을 선택합니다.

Kinesis Data Firehose 콘솔에서 Kinesis Data Firehose 전송 스트림 설정 단계로 돌아갑니다.6. [Next]를 선택합니다.7. Review 페이지에서 설정을 검토한 다음 Create Delivery Stream을 선택합니다.

Amazon Redshift 복사 옵션 설정

그런 다음 3단계: 데이터베이스 테이블 생성 (p. 323)에서 생성한 데이터베이스 테이블에 Amazon SES 이벤트 게시 JSON 레코드를 복사하는 방법을 Amazon Redshift에 지정해야 합니다. 이를 위해 Kinesis DataFirehose 전송 스트림에서 복사 옵션을 편집합니다.

이 절차를 위해 JSONPaths 파일을 만들어야 합니다. JSONPaths 파일은 Amazon Redshift COPY 명령에JSON 소스 데이터를 구문 분석하는 방법을 지정하는 텍스트 파일입니다. 이 절차에 JSONPaths 파일이 제공됩니다. JSONPaths 파일에 대한 자세한 내용은 Amazon Redshift Database Developer Guide의 JSON 형식의 COPY 지원을 참조하십시오.

Kinesis Data Firehose 전송 스트림을 생성할 때 설정한 Amazon S3 버킷에 JSONPaths 파일을 업로드한 다음 업로드한 JSONPaths 파일을 사용하도록 Kinesis Data Firehose 전송 스트림의 COPY 옵션을 편집합니다. 다음 절차에서 이 단계를 설명합니다.

Amazon Redshift COPY 명령 옵션을 설정하려면

1. JSONPaths 파일 생성 – 컴퓨터에서 jsonpaths.json이라는 파일을 생성합니다. 다음 텍스트를 파일에 복사한 후 파일을 저장합니다.

{ "jsonpaths": [ "$.mail.messageId", "$.eventType", "$.mail.sendingAccountId", "$.mail.timestamp",

326

Page 335: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

"$.mail.destination", "$.mail.tags.ses:configuration-set", "$.mail.tags.campaign" ]}

2. JSONPaths 파일을 Amazon S3 버킷에 업로드 – Amazon S3 콘솔로 이동하여 Kinesis Data Firehose 전송 스트림 생성 (p. 325)에서 Kinesis Data Firehose 전송 스트림을 설정할 때 생성한 버킷에 파일을 업로드합니다.

3. Kinesis Data Firehose 전송 스트림 설정에서 COPY 명령 설정 – 이제 사용자가 생성한 테이블에 데이터를 입력할 때 Amazon Redshift가 사용하는 COPY 명령의 구문을 설정하는 데 필요한 정보를 확보했습니다. 다음 절차는 Kinesis Data Firehose 전송 스트림 설정에서 COPY 명령 정보를 업데이트하는 방법을 보여줍니다.

1. Kinesis Data Firehose콘솔로 이동합니다.2. Redshift Delivery Streams(Redshift 전송 스트림)에서 Amazon SES 이벤트 게시를 위해 생성한

Kinesis Data Firehose 전송 스트림을 선택합니다.3. Details 페이지에서 Edit를 선택합니다.4. Redshift COPY options 상자에 다음 텍스트를 입력하여 다음 값을 원하는 값으로 바꿉니다.

• S3-BUCKET-NAME – Kinesis Data Firehose가 Amazon Redshift의 액세스를 위해 사용자의 데이터를 저장하는 Amazon S3 버킷의 이름입니다. 4단계: Kinesis Data Firehose 전송 스트림 만들기 (p. 325)에서 Kinesis Data Firehose 전송 스트림을 설정할 때 이 버킷을 생성했습니다. 예를 들면, my-bucket입니다.

• REGION – Amazon SES, Kinesis Data Firehose, Amazon S3, Amazon Redshift 리소스가 있는 리전입니다. 예를 들면, us-west-2입니다.

json 's3://S3-BUCKET-NAME/jsonpaths.json' region 'REGION';

5. Save를 선택합니다.

다음 단계

5단계: 구성 세트 설정 (p. 328)

327

Page 336: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

5단계: 구성 세트 설정이메일 전송 이벤트를 Amazon Kinesis Data Firehose에 게시하도록 Amazon SES를 설정하려면 먼저 구성세트를 생성한 다음 구성 세트에 Kinesis Data Firehose 이벤트 대상을 추가합니다. 이 단원에서는 이러한 작업을 수행하는 방법을 설명합니다.

이미 구성 집합이 있는 경우 기존 구성 집합에 Kinesis Data Firehose 대상을 추가할 수 있습니다. 이 경우Kinesis Data Firehose 이벤트 대상 추가 (p. 328) 단원으로 건너뛰십시오.

구성 세트 생성

다음 절차는 구성 세트를 생성하는 방법을 보여줍니다.

구성 세트를 만들려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 왼쪽 탐색 창에서 Configuration Sets를 선택합니다.3. 콘텐츠 창에서 Create Configuration Set를 선택합니다.4. 구성 집합의 이름을 입력한 후 Create Configuration Set를 선택합니다.5. 닫기를 선택합니다.

Kinesis Data Firehose 이벤트 대상 추가

다음 절차는 생성한 구성 집합에 Kinesis Data Firehose 이벤트 대상을 추가하는 방법을 보여줍니다.

구성 집합에 Kinesis Data Firehose 이벤트 대상을 추가하려면

1. 구성 세트 목록에서 구성 세트를 선택합니다.2. 대상 추가에서 Select a destination type(대상 유형 선택)을 선택한 다음 Kinesis Data Firehose를 선택합

니다.3. Name에 이벤트 대상의 이름을 입력합니다.4. 모든 Event types를 선택합니다.5. Enabled를 선택합니다.6. Stream의 경우, 4단계: Kinesis Data Firehose 전송 스트림 만들기 (p. 325)에서 생성한 전송 스트림을

선택합니다.7. IAM role에서 Let SES make a new role을 선택한 후 역할의 이름을 입력합니다.8. Save를 선택합니다.9. Edit Configuration Set 페이지를 종료하려면 브라우저의 뒤로 버튼을 사용합니다.

다음 단계

6단계: 이메일 전송 (p. 328)

6단계: 이메일 전송Amazon SES가 이메일에 연결된 이벤트를 게시하도록 하려면 이메일을 전송할 때 구성 세트를 지정해야 합니다. 메시지 태그를 포함시켜 이메일을 분류할 수도 있습니다. 이 단원에서는 Amazon SES 콘솔을 사용하여 구성 세트와 메시지 태그를 지정하는 단순한 이메일의 전송 방법을 보여줍니다. 반송 메일, 수신 거부, 기타 이메일 전송 결과를 테스트할 수 있도록 Amazon SES 메일박스 시뮬레이터로 이메일을 보냅니다.

Amazon SES 콘솔을 사용하여 이메일을 전송하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

328

Page 337: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

2. Amazon SES 콘솔의 탐색 창에 있는 자격 증명 관리 아래에서 이메일 주소를 선택합니다.3. 자격 증명 목록에서 Amazon SES로 확인 (p. 46)한 이메일 주소의 확인란을 선택합니다.4. [Send a Test Email]을 선택합니다.5. Send Test Email 대화 상자에서 Email Format으로 Raw를 선택합니다.6. 수신 주소에 [email protected] 또는

[email protected] 같은 Amazon SES 메일박스 시뮬레이터 (p. 175)의 주소를 입력합니다.

7. 다음 메시지를 복사해 Message 텍스트 박스에 전체를 붙여 넣어 CONFIGURATION-SET-NAME을 5단계: 구성 세트 설정 (p. 328)에서 만든 구성 집합의 이름으로 바꾸고, FROM-ADDRESS를 이 이메일을보내는 확인된 발신 주소로 바꿉니다.

X-SES-MESSAGE-TAGS: campaign=bookX-SES-CONFIGURATION-SET: CONFIGURATION-SET-NAMESubject: Amazon SES Event Publishing TestFrom: Amazon SES User <FROM-ADDRESS>MIME-Version: 1.0Content-Type: text/plain

This is a test message.

8. [Send a Test Email]을 선택합니다.9. 이 절차를 몇 차례 반복하여 다수의 이메일 전송 이벤트를 생성합니다. 몇몇 이메일의 경우, campaign

메시지 태그의 값을 clothing으로 변경하여 다른 이메일 캠페인의 전송을 시뮬레이션합니다. 이 상태로 이 자습서의 마지막 단계에서 이메일 전송 이벤트 레코드의 Amazon Redshift 데이터베이스를 쿼리하면 이메일 캠페인을 기반으로 하는 쿼리를 시험할 수 있습니다.

다음 단계

7단계: 이메일 전송 이벤트 쿼리 (p. 329)

7단계: 이메일 전송 이벤트 쿼리

이제 구성 집합과 메시지 태그로 이메일을 전송하여 몇 개의 이메일 전송 이벤트를 생성했으므로, AmazonRedshift에서 이 레코드를 쿼리할 수 있습니다.

Note

2단계: Amazon Redshift 클러스터에 연결 (p. 320)에서 설명한 대로 현재 SQL Workbench/J가 컴퓨터에 열려 있고 Amazon Redshift 클러스터에 연결된 것으로 가정합니다.

SQL Workbench/J에서 Amazon Redshift의 이메일 전송 이벤트 데이터를 쿼리하려면

1. 모든 이메일 전송 레코드를 표시하려면 다음 쿼리를 복사하여 Statement 1 창에 붙여 넣습니다.

select * from ses;

2. 명령문 내에서 세미콜론 앞쪽 아무 곳에나 커서를 대고 Execute current statement 버튼을 선택합니다.

6단계: 이메일 전송 (p. 328)에서 보낸 모든 이메일의 이메일 전송 레코드를 볼 수 있습니다. 다음 그림의 레코드는 book 캠페인에 두 건의 불만 제기가 있었고 clothing 캠페인에 한 건의 반송 메일이 있었음을 보여줍니다.

329

Page 338: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

3. book 유형의 캠페인에 대한 complaint 레코드 수를 파악하려면 다음 쿼리를 복사하여 Statement 1 창에 붙여 넣습니다.

select count(*) as numberOfComplaint from ses where event_type = 'Complaint' and campaign like '%book%';

4. 명령문 내에서 세미콜론 앞쪽 아무 곳에나 커서를 대고 Execute current statement 버튼을 선택합니다.

결과는 다음과 같이 book 캠페인에 두 건의 수신 거부가 있었음을 보여줍니다.

Graph email sending events in Amazon CloudWatch이 자습서에서는 Amazon CloudWatch에 Amazon SES 이메일 전송 이벤트를 게시한 후 CloudWatch 콘솔을이용해 이벤트 그래프를 작성합니다.

다음 단원에서 프로세스를 소개합니다.

• 사전 조건 (p. 330)• 1단계: 구성 세트 설정 (p. 331)• 2단계: 이메일 전송 (p. 332)• 3단계: 이벤트 그래프 작성 (p. 332)

사전 조건

이 자습서를 이해하려면 다음이 필요합니다.

• AWS 계정 – AWS가 제공하는 웹 서비스에 액세스하려면 먼저 https://aws.amazon.com/에서 AWS 계정을생성해야 합니다.

330

Page 339: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

• 확인된 이메일 주소 – Amazon SES를 사용하여 이메일을 전송하려면 "발신" 주소나 도메인을 확인하여 이를 소유하고 있음을 보여야 합니다. 샌드박스에 있는 경우 "수신" 주소도 확인해야 합니다. 이메일 주소나전체 도메인을 확인할 수 있지만 이 자습서에서는 가장 간단하게 이메일을 보내는 방법, 즉 Amazon SES콘솔에서 이메일을 보낼 수 있도록 확인된 이메일 주소가 필요합니다. 이메일 주소를 확인하는 방법에 대한 자세한 내용은 Verifying email addresses in Amazon SES (p. 46) 단원을 참조하십시오.

다음 단계

1단계: 구성 세트 설정 (p. 331)

1단계: 구성 세트 설정

이메일 전송 이벤트를 Amazon CloudWatch에 게시하도록 Amazon SES를 설정하려면 먼저 구성 세트를 생성한 다음 구성 세트에 CloudWatch 이벤트 대상을 추가합니다. 이 단원에서는 이러한 작업을 수행하는 방법을 설명합니다.

이미 구성 집합이 있는 경우 기존 구성 집합에 CloudWatch 대상을 추가할 수 있습니다. 이 경우 CloudWatch이벤트 대상 추가 (p. 331) 단원으로 건너뛰십시오.

구성 세트 생성

다음 절차는 구성 세트를 생성하는 방법을 보여줍니다.

구성 세트를 만들려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 탐색 창에서 [Configuration Sets]를 선택합니다.3. [Create Configuration Set]를 선택합니다.4. 구성 집합의 이름을 입력한 후 Create Configuration Set를 선택합니다.

CloudWatch 이벤트 대상 추가

다음 절차는 생성한 구성 집합에 CloudWatch 이벤트 대상을 추가하는 방법을 보여줍니다.

구성 집합에 CloudWatch 이벤트 대상을 추가하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 탐색 창에서 [Configuration Sets]를 선택합니다.3. 이전 단원에서 만든 구성 세트를 선택합니다.4. 대상 추가에서 Select a destination type(대상 유형 선택)을 선택한 다음 CloudWatch를 선택합니다.5. 이름에 이벤트 대상의 이름을 입력합니다.6. Event types(이벤트 유형)에서는 Amazon CloudWatch에서 보고할 지표를 선택합니다.7. 활성을 선택합니다.8. 값 소스에서는 CloudWatch에서 지표를 분류하는 데 사용할 값을 선택합니다. 예를 들어, Message

Tag(메시지 태그)를 선택하면 키-값 페어를 지정해야 합니다. 이 키-값 페어가 이메일에 메시지 태그로포함되면 Amazon SES가 선택된 지표를 CloudWatch로 보냅니다. CloudWatch에서 지표를 보면 메시지태그의 키에 따라 지표가 분류됩니다.

Note

Link Tag(링크 태그)를 값 소스로 선택하면 클릭 이벤트만 CloudWatch로 보낼 수 있습니다.Link Tag(링크 태그) 값 소스를 사용하여 가장 자주 클릭한 이메일의 링크를 확인할 수 있습니다.

331

Page 340: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

9. Save를 선택합니다.10. Edit Configuration Set 페이지를 종료하려면 브라우저의 뒤로 버튼을 사용합니다.

2단계: 이메일 전송

Amazon SES가 이메일에 연결된 이벤트를 게시하도록 하려면 이메일을 전송할 때 구성 세트를 지정해야 합니다. 메시지 태그를 포함시켜 이메일을 분류할 수도 있습니다. 이 단원에서는 Amazon SES 콘솔을 사용하여 구성 세트와 메시지 태그를 지정하는 단순한 이메일의 전송 방법을 보여줍니다. 반송 메일, 수신 거부, 기타 이메일 전송 결과를 테스트할 수 있도록 Amazon SES 메일박스 시뮬레이터로 이메일을 보냅니다.

Amazon SES 콘솔을 사용하여 이메일을 전송하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. Amazon SES 콘솔의 Navigation(탐색) 창에 있는 자격 증명 관리 아래에서 이메일 주소를 선택합니다.3. 자격 증명 목록에서 Amazon SES로 확인 (p. 46)한 이메일 주소의 확인란을 선택합니다.4. [Send a Test Email]을 선택합니다.5. Send Test Email 대화 상자에서 Email Format으로 Raw를 선택합니다.6. 수신 주소에 [email protected] 또는

[email protected] 같은 Amazon SES 메일박스 시뮬레이터 (p. 175)의 주소를 입력합니다.

7. 다음 메시지를 복사해 Message 텍스트 박스에 전체를 붙여 넣어 CONFIGURATION-SET-NAME을 1단계: 구성 세트 설정 (p. 331)에서 만든 구성 세트의 이름으로 바꾸고, FROM-ADDRESS를 이 이메일을보내는 확인된 발신 주소로 바꿉니다.

X-SES-MESSAGE-TAGS: campaign=bookX-SES-CONFIGURATION-SET: CONFIGURATION-SET-NAMESubject: Amazon SES Event Publishing TestFrom: Amazon SES User <FROM-ADDRESS>MIME-Version: 1.0Content-Type: text/plain

This is a test message.

8. [Send a Test Email]을 선택합니다.9. 이 절차를 몇 차례 반복하여 다수의 이메일 전송 이벤트를 생성합니다. 몇몇 이메일의 경우, campaign

메시지 태그의 값을 clothing으로 변경하여 다른 이메일 캠페인의 전송을 시뮬레이션합니다.

다음 단계

3단계: 이메일 전송 이벤트 그래프 작성 (p. 332)

3단계: 이메일 전송 이벤트 그래프 작성

이제 구성 세트와 메시지 태그가 포함된 이메일을 보내 몇 가지 Amazon SES 이메일 전송 이벤트를CloudWatch에 게시했으므로 CloudWatch 콘솔을 이용해 이러한 이벤트의 지표를 그래프로 작성할 수 있습니다.

이메일 전송 이벤트 지표의 그래프를 작성하려면

1. AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/cloudwatch/에서CloudWatch 콘솔을 엽니다.

2. 왼쪽 탐색 창에서 Metrics를 선택합니다.3. All metrics 탭에서 SES를 선택합니다.

332

Page 341: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

Tip

검색 창에 SES를 입력하는 방법도 있습니다.4. CloudWatch 이벤트 대상 추가 (p. 331)에서 지정한 값 소스를 선택합니다. 예를 들어, 메시지 태그

"category:books"를 값 소스로 지정했으면 category를 선택합니다.5. 확인하려는 지표를 선택합니다. 세부 정보 창에 그래프가 나타납니다.

Analyze email sending events with Amazon Kinesis DataAnalyticsAmazon Kinesis Data Analytics에서 SQL을 사용하여 스트리밍 데이터를 처리하고 분석할 수 있습니다.Amazon Kinesis Data Analytics를 사용하여 Amazon SES 이메일 전송 이벤트를 분석할 수 있습니다.

이 자습서에서는 먼저 이메일 전송 이벤트를 Amazon Kinesis Data Firehose 전송 스트림에 게시하도록Amazon SES 구성 세트를 설정한 다음 해당 구성 세트를 사용하여 Amazon SES를 통해 이메일을 보냅니다. 그런 다음 Kinesis Data Firehose 스트림에서 이메일 전송 이벤트를 캡처하도록 Amazon Kinesis DataAnalytics를 설정하고 SQL을 사용하여 전송한 이메일에서 키 정보를 추출합니다.

Note

이 자습서에서는 Amazon SES를 통해 이메일의 일정한 스트림을 전송할 수 있는 애플리케이션이필요합니다. 이 요구 사항은 사전 조건 (p. 333)에 설명되어 있습니다.

다음 단원에서는 자습서를 소개합니다.

• 사전 조건 (p. 333)• 1단계: Kinesis Data Firehose 전송 스트림 만들기 (p. 334)• 2단계: 구성 세트 설정 (p. 335)• 3단계: 이메일 전송 (p. 336)• 4단계: Amazon Kinesis Data Analytics 애플리케이션 생성 (p. 336)• 5단계: SQL 쿼리 실행 (p. 341)• (선택 사항) 6단계: SQL 쿼리 결과 저장 (p. 342)

사전 조건

이 자습서를 이해하려면 다음이 필요합니다.

• AWS 계정 – AWS가 제공하는 웹 서비스에 액세스하려면 먼저 https://aws.amazon.com/에서 AWS 계정을생성해야 합니다.

• 확인된 이메일 주소 – Amazon SES를 사용하여 이메일을 전송하려면 "발신" 주소나 도메인을 확인하여 이를 소유하고 있음을 보여야 합니다. 샌드박스에 있는 경우 "수신" 주소도 확인해야 합니다. 이메일 주소나전체 도메인을 확인할 수 있지만 이 자습서에서는 가장 간단하게 이메일을 보내는 방법, 즉 Amazon SES콘솔에서 이메일을 보낼 수 있도록 확인된 이메일 주소가 필요합니다. 이메일 주소를 확인하는 방법에 대한 자세한 내용은 Verifying email addresses in Amazon SES (p. 46) 단원을 참조하십시오.

• 이메일 애플리케이션 – 이 자습서에서 설명하는 방식으로 Amazon Kinesis Data Analytics를 사용하려면이메일 전송 이벤트의 일정한 스트림을 생성하도록 Amazon SES를 통해 이메일의 일정한 스트림을 전송해야 합니다. 이렇게 하면 Amazon Kinesis Data Analytics에서 스키마를 자동으로 감지한 다음 SQL을 사용하여 이벤트 레코드를 처리할 수 있습니다. 이 자습서에서는 5분 동안 10초마다 이메일을 하나씩 전송하면 충분합니다.

333

Page 342: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

Important

실제 수신자에게 전송할 기존 이메일 캠페인이 없는 경우 AWS는 Amazon SES 메일박스 시뮬레이터 (p. 175) 주소로 이메일을 전송할 것을 권장합니다. 메일박스 시뮬레이터로 전송되는 이메일은 Amazon SES 반송 메일 및 수신 거부 발생률이나 1일 발신 할당량에 포함되지 않습니다.

다음 단계

1단계: Kinesis Data Firehose 전송 스트림 만들기 (p. 334)

1단계: Kinesis Data Firehose 전송 스트림 만들기

Amazon Kinesis Data Analytics를 사용하여 Amazon SES 이메일 전송 이벤트를 분석하려면 AmazonKinesis Data Firehose 전송 스트림에 이벤트를 게시하도록 Amazon SES를 구성한 다음 Kinesis DataFirehose에서 이벤트 데이터를 가져오도록 Amazon Kinesis Data Analytics를 구성해야 합니다.

Kinesis Data Firehose 전송 스트림을 설정할 때 데이터의 최종 대상을 선택합니다. 대상 옵션은 AmazonSimple Storage Service(Amazon S3), Amazon Elasticsearch Service 및 Amazon Redshift입니다. 단순히Amazon Kinesis Data Analytics를 사용하여 이메일 전송 이벤트를 분석하려는 경우 어떤 대상을 선택하는지는 문제되지 않습니다. 이 자습서에서는 데이터를 Amazon S3에 게시하도록 Kinesis Data Firehose를 구성합니다. 하지만 Amazon SES 전송 및 Kinesis Data Firehose 전송 스트림과 동일한 리전에 있는 경우 다른 대상 옵션을 사용할 수 있습니다.

이 단원에서는 Kinesis Data Firehose 콘솔을 사용하여 Kinesis Data Firehose 전송 스트림을 생성하는 방법을 보여줍니다. 이 자습서에서는 기본 옵션을 선택합니다. 사용 가능한 모든 옵션에 대한 자세한 내용은Amazon Kinesis Data Firehose 개발자 안내서의 Amazon Kinesis Firehose 전송 스트림 생성을 참조하십시오.

Kinesis Data Firehose에서 Amazon S3로 전송 스트림을 생성하려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/firehose/에서 Kinesis DataFirehose 콘솔을 엽니다.

2. Create Delivery Stream을 선택합니다.3. Destination 페이지에서 다음 옵션을 선택합니다.

• 대상 – Amazon S3를 선택합니다.• 전송 스트림 이름 – 전송 스트림의 이름을 입력합니다.• S3 버킷 – 기존 버킷을 선택하거나 New S3 Bucket(새로운 S3 버킷)을 선택합니다. 새 버킷을 만드는

경우 버킷의 이름을 입력하고 현재 콘솔을 사용 중인 리전을 선택합니다.• S3 접두사 – 이 필드는 비워 둡니다.

4. [Next]를 선택합니다.5. Configuration 페이지의 필드는 기본 설정으로 유지합니다. 유일한 필수 단계는 다음과 같이 Kinesis

Data Firehose에서 리소스에 액세스할 수 있도록 허용하는 IAM 역할을 선택하는 것입니다.

a. IAM Role에서 Select an IAM role을 선택합니다.b. 드롭 다운 메뉴의 Create/Update existing IAM role에서 Firehose delivery IAM role을 선택합니다.

이제 IAM 콘솔로 이동하게 됩니다.c. IAM 콘솔에서 필드를 기본 설정으로 유지하고 허용을 선택합니다.

334

Page 343: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

Kinesis Data Firehose 콘솔에서 Kinesis Data Firehose 전송 스트림 설정 단계로 돌아갑니다.6. [Next]를 선택합니다.7. Review 페이지에서 설정을 검토한 다음 Create Delivery Stream을 선택합니다.

다음 단계

2단계: 구성 세트 설정 (p. 335)

2단계: 구성 세트 설정

이메일 전송 이벤트를 Amazon Kinesis Data Firehose에 게시하도록 Amazon SES를 설정하려면 구성 세트를 생성한 다음 구성 세트에 Kinesis Data Firehose 이벤트 대상을 추가합니다. 이 단원에서는 이러한 작업을수행하는 방법을 설명합니다.

이미 구성 집합이 있는 경우 기존 구성 집합에 Kinesis Data Firehose 대상을 추가할 수 있습니다. 이 경우Kinesis Data Firehose 이벤트 대상 추가 (p. 336) 단원으로 건너뛰십시오.

구성 세트 생성

다음 절차에서는 구성 세트를 생성하는 방법을 설명합니다.

구성 세트를 만들려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 왼쪽 탐색 창에서 Configuration Sets를 선택합니다.3. 콘텐츠 창에서 Create Configuration Set를 선택합니다.4. 구성 집합의 이름을 입력한 후 Create Configuration Set를 선택합니다.5. 닫기를 선택합니다.

335

Page 344: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

Kinesis Data Firehose 이벤트 대상 추가

다음 절차는 생성한 구성 집합에 Kinesis Data Firehose 이벤트 대상을 추가하는 방법을 보여줍니다.

구성 집합에 Kinesis Data Firehose 이벤트 대상을 추가하려면

1. 구성 세트 목록에서 구성 세트를 선택합니다.2. 대상 추가에서 Select a destination type(대상 유형 선택)을 선택한 다음 Kinesis Data Firehose를 선택합

니다.3. Name에 이벤트 대상의 이름을 입력합니다.4. 모든 Event types를 선택합니다.5. Enabled를 선택합니다.6. Stream의 경우, 1단계: Kinesis Data Firehose 전송 스트림 만들기 (p. 334)에서 생성한 전송 스트림을

선택합니다.7. IAM role에서 Let SES make a new role을 선택한 후 역할의 이름을 입력합니다.8. Save를 선택합니다.9. Edit Configuration Set 페이지를 종료하려면 브라우저의 뒤로 버튼을 사용합니다.

다음 단계

3단계: 이메일 전송 (p. 336)

3단계: 이메일 전송

이 자습서에서는 Amazon Kinesis Data Analytics 콘솔을 사용하여 스트리밍 데이터를 처리하고 분석하기때문에 Amazon SES를 통해 이메일의 일정한 스트림을 설정해야 합니다. 이 자습서에서는 이 이메일을보낼 수 있는 애플리케이션을 가지고 있다고 가정합니다. 이 자습서에서는 5분 동안 10초마다 이메일을하나씩 전송하면 충분합니다. AWS는 Amazon SES 메일박스 시뮬레이터 (p. 175)에 있는 "수신" 주소(예:[email protected])를 사용할 것을 강력히 권장합니다.

이메일에 대한 이벤트 게시를 활성화하려면 이메일을 보낼 때 Amazon SES에 구성 세트의 이름을 제공해야 합니다. 선택적으로 메시지 태그를 포함시켜 이메일을 분류할 수 있습니다. 이 정보를 이메일 전송 API에대한 파라미터, Amazon SES 지정 이메일 헤더 또는 MIME 메시지 내 사용자 지정 헤더 중 하나로 AmazonSES에 제공합니다. 자세한 내용은 Amazon SES 이벤트 게시를 사용한 이메일 전송 (p. 278)을 참조하십시오.

예를 들어 다음의 Amazon SES 지정 이메일 헤더를 이메일에 추가하여 book 캠페인을 시뮬레이션할 수 있습니다. CONFIGURATION-SET-NAME을 2단계: 구성 세트 설정 (p. 335)에서 생성한 구성 세트의 이름으로바꿉니다.

X-SES-CONFIGURATION-SET: CONFIGURATION-SET-NAMEX-SES-MESSAGE-TAGS: campaign=book

다음 단계

4단계: Amazon Kinesis Data Analytics 애플리케이션 생성 (p. 336)

4단계: Amazon Kinesis Data Analytics 애플리케이션 생성

이제 Amazon SES를 사용하여 이벤트 게시를 설정했으므로 Amazon Kinesis Data Firehose 전송 스트림에서 이메일 전송 이벤트 데이터를 캡처하도록 Amazon Kinesis Data Analytics를 구성할 수 있습니다. 이렇게하려면 Amazon Kinesis Data Analytics 애플리케이션을 생성합니다.

336

Page 345: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

다음 절차에서는 Amazon Kinesis Data Analytics 콘솔을 사용하여 Kinesis Data Firehose 전송 스트림에서Amazon SES 이메일 전송 이벤트 데이터를 캡처하는 애플리케이션을 생성하는 방법을 보여준 다음 데이터에 대한 간단한 SQL 쿼리를 수행하여 "전송" 유형의 이벤트를 반환하는 방법을 보여줍니다.

Note

다른 이벤트 유형(전송, 반송, 불만 제기 및 배달)의 이메일 전송 이벤트에는 다른 JSON 스키마 (p. 281)가 사용됩니다. 프로덕션 환경에서는 이 스키마의 여러 필드를 검사할 수 있지만, 이 자습서에서는 모든 이벤트 유형에 존재하는 작은 필드 집합으로 검사를 제한합니다.

Amazon Kinesis Data Analytics 애플리케이션을 생성하려면

1. Amazon SES를 통해 이벤트를 게시하도록 구성된 이메일의 일정한 스트림을 전송하기 시작하고 이 절차 전체에서 이메일을 계속 전송합니다. Amazon Kinesis Data Analytics에서 이벤트 레코드의 스키마를자동으로 감지하려면 이렇게 해야 합니다. 이 자습서에서는 5분 동안 10초마다 이메일을 하나씩 전송하면 충분합니다. 자세한 내용은 3단계: 이메일 전송 (p. 336)를 참조하십시오.

이메일 프로그램에서 이메일을 몇 개 보낸 후 다음 단계로 이동합니다.2. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/kinesisanalytics에서 Kinesis

Data Analytics 콘솔을 엽니다.3. [Create new application]을 선택합니다.4. 애플리케이션 이름과 설명을 입력한 다음, [Save and continue]를 선택합니다.5. [Connect to a source]를 선택합니다.6. 2단계: 구성 세트 설정 (p. 335)에서 생성한 Kinesis Data Firehose 스트림을 선택합니다.

Amazon Kinesis Data Analytics는 수신 레코드를 기반으로 이메일 전송 이벤트 레코드의 스키마를 검색하려고 시도합니다. Amazon Kinesis Data Analytics에 Error discovering input schema(입력 스키마 검색오류)가 표시되면 Amazon Kinesis Data Analytics가 이메일 전송 레코드를 아직 수신하지 않았음을 의미합니다. [Rediscover schema]를 선택합니다. 이 버튼을 여러 번 선택해야 할 수 있습니다. 여러 번 시도한 후에도 스키마 검색이 실패하면 이메일 전송 애플리케이션이 이메일을 일정하게 전송하고 있으며이메일이 구성 세트를 지정하는지 확인합니다.

Amazon Kinesis Data Analytics에서 스키마가 검색되면 성공 메시지가 표시되고 검색한 레코드가 나열됩니다.

Important

[Save and continue]를 선택하지 마십시오. 발견한 스키마가 SQL 명명 제약 조건을 준수하지않기 때문에 이 항목을 선택하면 오류가 발생하게 됩니다. 다음 단계의 설명에 따라 스키마를편집해야 합니다.

7. [Edit schema]를 선택합니다.

337

Page 346: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

8. 이 자습서에서는 행을 대부분 제거합니다. 다음 열 이름이 있는 행을 제외하고 모든 행 옆의 X를 선택합니다.

• eventType• 타임스탬프• messageId• to• ses:configuration-set

Important

[Save schema and update stream samples]를 선택하지 마십시오. 발견한 스키마가 SQL 명명제약 조건을 준수하지 않기 때문에 이 항목을 선택하면 오류가 발생하게 됩니다. 다음 단계의설명에 따라 스키마를 편집해야 합니다.

338

Page 347: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

9. [Column name] 아래에 있는 나머지 항목을 검사하고 다음과 같은 SQL 명명 요구 사항과 비교합니다.

• 형식 – Amazon Kinesis Data Analytics SQL 참조의 식별자에서 설명하는 내용과 같이, 따옴표 없는식별자는 문자 또는 밑줄로 시작하고 그 다음에 문자, 숫자 또는 밑줄이 있어야 합니다. Amazon SES자동 태그 이름은 콜론과 대시를 포함하기 때문에 이 요구 사항을 준수하지 않습니다. 다음 단계에서이 항목을 편집합니다.

• 예약어 – 열 이름은 Amazon Kinesis Data Analytics SQL 참조의 예약어 및 키워드에 나열된 SQL예약어와 충돌하지 않아야 합니다. 예를 들어 Amazon SES 이벤트 레코드와 충돌하는 예약어는timestamp, value, date, from 및 to입니다.

10. 다음과 같이 SQL 요구 사항을 준수하도록 나머지 열 이름을 편집합니다.

• ses:configuration-set를 ses_configuration_set로 바꿉니다.• timestamp를 ses_timestamp로 바꿉니다.• to를 ses_to로 바꿉니다.

339

Page 348: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

11. [Save schema and update stream samples]를 선택합니다. 검증 오류가 발생할 경우 10단계를 올바르게 수행했는지 확인합니다. [No rows in source stream] 오류가 발생할 경우 이 절차를 시작할 때 시작한이메일 스트림을 여전히 전송하고 있는지 확인한 다음, [Retrieve rows]를 선택합니다. Amazon KinesisData Analytics에서 레코드를 캡처하기 전에 Retrieve rows(행 검색)를 여러 번 선택해야 할 수 있습니다.

12. 행이 검색되면 [Exit (done)]를 선택합니다.

다음 단계

5단계: SQL 쿼리 실행 (p. 341)

340

Page 349: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

5단계: SQL 쿼리 실행

이제 Amazon Kinesis Data Analytics 애플리케이션을 생성하고 Amazon Kinesis Data Firehose 전송 스트림을 소스로 사용하도록 애플리케이션을 구성했으므로 Kinesis Data Firehose 전송 스트림이 수신하는 이메일전송 이벤트 데이터를 쿼리할 수 있습니다.

이 주제에서는 이메일 전송 이벤트 데이터에 대해 SQL 쿼리를 실행하는 방법을 보여 줍니다.

Important

이 절차에서는 3단계: 이메일 전송 (p. 336)의 설명과 같이 Amazon SES를 통해 이벤트를 게시하도록 구성된 이메일의 일정한 스트림을 계속 전송해야 합니다.

Amazon Kinesis Data Analytics에서 SQL 쿼리를 실행하려면

1. 마지막 단계 (p. 336)를 완료한 후 이 절차로 진행했다고 가정하고 Amazon Kinesis Data Analytics 콘솔 상단 메뉴로 이동하여 애플리케이션을 선택합니다.

2. [Go to SQL editor]를 선택합니다.

Amazon Kinesis Data Analytics는 Kinesis Data Firehose 스트림에서 이벤트 데이터를 읽으려고 시도합니다. [No rows in source stream] 오류가 발생할 경우 이 절차를 시작할 때 시작한 이메일 스트림을 여전히 전송하고 있는지 확인한 다음, [Retrieve rows]를 선택합니다.

3. 코드 편집기 상자에 다음을 붙여 넣습니다.

341

Page 350: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" ("eventType" VARCHAR(16), "ses_timestamp" timestamp, "messageId" VARCHAR(64), "ses_to" VARCHAR(64), "ses_configuration_set" VARCHAR(32));

CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM"

SELECT STREAM "eventType", "ses_timestamp", "messageId", "ses_to", "ses_configuration_set"FROM "SOURCE_SQL_STREAM_001"WHERE "eventType" = 'Send'

4. [Save and run SQL]을 선택합니다.

Amazon Kinesis Data Analytics에서 수신 레코드를 검색하고 처리한 후에는 "Send" 유형의 이벤트 레코드 목록이 보입니다.

다음 단계

(선택 사항) 6단계: SQL 쿼리 결과 저장 (p. 342)

(선택 사항) 6단계: SQL 쿼리 결과 저장

SQL 쿼리 출력을 Amazon Kinesis Data Firehose 전송 스트림에 쓰도록 Amazon Kinesis Data Analytics애플리케이션을 설정할 수 있습니다. 이렇게 하려면 다른 Kinesis Data Firehose 전송 스트림을 생성해야합니다. Amazon Kinesis Data Analytics 애플리케이션의 소스와 대상에 모두 동일한 전송 스트림을 사용할 수 없기 때문입니다. Kinesis Data Firehose 전송 스트림의 경우와 마찬가지로 Amazon Simple StorageService(Amazon S3), Amazon Elasticsearch Service 또는 Amazon Redshift를 대상으로 선택할 수 있습니다.

다음 절차에서는 Amazon S3에 데이터를 쓰는 Kinesis Data Firehose 전송 스트림에 JSON 형식의 SQL 쿼리 결과를 저장하도록 Amazon Kinesis Data Analytics를 구성하는 방법을 보여줍니다. 그런 다음 SQL 쿼리를 실행하고 저장된 데이터에 액세스합니다.

342

Page 351: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

SQL 쿼리 결과를 Amazon S3에 저장하려면

1. Amazon S3를 대상으로 사용하는 새로운 Kinesis Data Firehose 스트림을 설정합니다. 이 절차는 1단계:Kinesis Data Firehose 전송 스트림 만들기 (p. 334)의 절차와 동일합니다.

2. Amazon Kinesis Data Analytics 콘솔로 이동하고 애플리케이션 옆의 화살표를 선택한 다음 Applicationdetails(애플리케이션 세부 정보)를 선택합니다.

3. [Connect to a destination]을 선택합니다.

4. 1단계에서 생성한 Kinesis Data Firehose 스트림을 선택하고 나머지 옵션을 기본 설정으로 그대로 둔 다음 저장 후 계속을 선택합니다.

몇 초 후에 애플리케이션의 기본 페이지로 돌아갑니다.

343

Page 352: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

5. [Go to SQL results]를 선택합니다.

6. [Save and run SQL]을 선택하여 5단계: SQL 쿼리 실행 (p. 341)에서 실행한 쿼리를 다시 실행합니다.

Amazon Kinesis Data Analytics는 Kinesis Data Firehose 전송 스트림에서 수신한 이벤트 데이터를 처리하려고 시도합니다. No rows have arrived yet(아직 도착한 행이 없음) 오류가 발생할 경우 AmazonKinesis Data Analytics에서 이메일 전송 이벤트를 처리할 수 있도록 이메일을 계속 전송하고 있는지 확인합니다.

344

Page 353: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

Amazon Kinesis Data Analytics에서 레코드가 처리되면 Real-time analytics(실시간 분석) 탭에 결과가나타납니다. Amazon Kinesis Data Analytics는 1단계에서 Kinesis Data Firehose 전송 스트림을 설정할때 지정한 Amazon S3 버킷에 결과를 자동으로 저장합니다.

7. 결과를 검색하려면 Amazon S3 콘솔로 이동합니다.8. Amazon Kinesis Data Analytics 애플리케이션이 대상으로 사용하는 Kinesis Data Firehose 전송 스트림

과 연결된 Amazon S3 버킷을 선택합니다.9. 데이터로 이동합니다. 기본적으로 데이터는 결과가 버킷에 저장되는 날짜에 따라 폴더 계층 구조로 구성

됩니다.

버킷이 비어 있는 경우 몇 분 동안 기다린 다음 다시 시도합니다. Amazon Kinesis Data Analytics에서Amazon S3 버킷으로 데이터를 가져오려면 몇 분 정도 걸릴 수 있습니다.

10. 파일을 선택한 다음 [Actions] 메뉴에서 [Download]를 선택합니다.

11. 화면의 지침을 따라 파일을 컴퓨터에 다운로드합니다.

345

Page 354: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Tutorials

12. 컴퓨터에서 텍스트 편집기를 사용하여 파일을 엽니다. 레코드는 JSON 형식이며, 각 레코드는 중괄호 안에 들어 있습니다. 다음은 두 개의 레코드가 포함된 파일의 예입니다.

{"eventType":"Send","ses_timestamp":"2016-12-08 18:51:12.092","messageId":"EXAMPLE8dfc6695c-5f048b74-ca83-4052-8348-4e7da9669fc3-000000","ses_to":"[\"[email protected]\" ]","ses_configuration_set":"[\"MyConfigSet\" ]"}{"eventType":"Send","ses_timestamp":"2016-12-08 18:50:42.181","messageId":"EXAMPLEdfc5f485-d40a2543-2cac-4b84-8a8f-30bebdf3820c-000000","ses_to":"[\"[email protected]\" ]","ses_configuration_set":"[\"MyConfigSet\" ]"}

346

Page 355: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Using the reputation dashboard

Monitoring your Amazon SES senderreputation

Amazon SES는 발신자의 평판에 손상이 갈 수 있거나 이메일 전송 비율을 저하시킬 수 있는 여러 지표를 능동적으로 추적합니다. 이 프로세스에서 고려하는 두 가지 중요한 측정치는 해당 계정의 반송 비율과 불만 제기 비율입니다. 계정에 대한 반송 메일 또는 수신 거부 발생률이 너무 높으면 계정을 검토하거나 계정의 이메일 전송 기능을 일시 중지할 수 있습니다.

반송 메일 및 수신 거부 발생률은 계정 상태에 매우 중요하기 때문에 Amazon SES는 이러한 지표를 추적하는 데 사용할 수 있는 평판 대시보드를 제공합니다. 평판 대시보드에는 반송이나 불만 제기와 관련이 없지만발신자 평판을 손상할 수 있는 요인에 대한 정보도 표시될 수 있습니다. 예를 들어 확인된 spamtrap으로 이메일을 보내는 경우 이 대시보드에 메시지가 표시됩니다.

이 단원에서는 평판 대시보드를 액세스하고, 평판 대시보드의 정보를 해석하며, 발신자 평판에 영향을 줄 수있는 요인을 능동적으로 알리도록 시스템을 설정하는 방법에 대한 정보를 설명합니다.

이 단원에는 다음과 같은 주제가 포함되어 있습니다.• Using the reputation dashboard to track bounce and complaint rates (p. 347)• 평판 대시보드 메시지 (p. 348)• Creating reputation monitoring alarms using CloudWatch (p. 359)• Automatically pausing email sending (p. 361)

Using the reputation dashboard to track bounce andcomplaint rates

평판 대시보드에는 Amazon SES 팀에서 개별 계정의 상태를 확인할 때 보는 정보와 동일한 정보가 들어 있습니다.

평판 대시보드를 보려면

1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을엽니다.

2. 화면 왼쪽에 있는 탐색 창에서 [Reputation Dashboard]를 클릭합니다.

대시보드에 다음 정보가 표시됩니다.

• Account status – A brief description of the health of your account. Possible values include:• 정상 – 계정에 영향을 주는 문제가 현재로서는 없습니다.• 검토 중 – 사용자 계정이 검토 중입니다. 계정 검토의 원인이 된 문제가 검토 기간이 종료될 때까지

해결되지 않으면 사용자 계정의 이메일 전송 기능을 일시 중지할 수 있습니다.• 검토 종료 결정 보류 중 – 사용자 계정이 검토 중입니다. 계정 검토의 원인이 된 문제의 특성으로 인

해 추가 조치를 취하기 전에 사용자 계정을 수동으로 검토해야 합니다.• 전송 일시 중지 – 사용자 계정의 이메일 전송 기능을 일시 중지했습니다. 사용자 계정의 이메일 전

송 기능이 일시 중지된 동안에는 Amazon SES를 사용하여 이메일을 보낼 수 없습니다. 이 결정을검토해 줄 것을 요청할 수 있습니다. 검토 요청에 대해 자세히 알아보려면 Amazon SES Sendingreview process FAQs (p. 463) 단원을 참조하십시오.

• 전송 일시 중지 보류 중 – 사용자 계정이 검토 중입니다. 계정 검토의 원인이 된 문제가 해결되지 않았습니다. 이 경우에는 일반적으로 사용자 계정의 이메일 전송 기능을 일시 중지합니다. 하지만 계정의 특성상 추가 조치가 취해지기 전에 해당 계정을 검토해야 합니다.

347

Page 356: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드평판 대시보드 메시지

• Bounce Rate – The percentage of emails sent from your account that resulted in a hard bounce.• Complaint Rate – The percentage of emails sent from your account that resulted in recipients

reporting them as spam.

Note

The Bounce Rate and Complaint Rate sections also include status messages for theirrespective metrics. The following is a list of status messages that may be displayed forthese metrics:• 정상 – 지표가 정상 수준 내에 있습니다.• 거의 복구 – 지표로 인해 사용자 계정이 검토 상태로 설정되었습니다. 검토 기간이 시작된

후 이 지표가 최대 비율 미만으로 유지되었습니다. 지표가 최대 비율 미만으로 유지된 경우검토 기간이 끝나기 전에 이 지표의 상태가 정상으로 변경됩니다.

• 검토 중 – 지표로 인해 사용자 계정이 검토 상태로 설정되었으며 지표가 최대 비율보다 높습니다. 지표가 최대 비율을 초과하는 문제가 검토 기간이 끝날 때까지 해결되지 않으면 사용자 계정의 이메일 전송 기능을 일시 중지할 수 있습니다.

• 전송 일시 중지 – 지표로 인해 사용자 계정의 이메일 전송 기능이 일시 중지되었습니다. 사용자 계정의 이메일 전송 기능이 일시 중지된 동안에는 Amazon SES를 사용하여 이메일을 보낼 수 없습니다. 이 결정을 검토해 줄 것을 요청할 수 있습니다. 검토 요청 제출에 대해 자세히 알아보려면 Amazon SES Sending review process FAQs (p. 463) 단원을 참조하십시오.

• 전송 일시 중지 대기 중 – 지표로 인해 사용자 계정이 검토 상태로 설정되었습니다. 이 검토기간의 원인이 된 문제가 해결되지 않았습니다. 이러한 문제로 인해 사용자 계정의 이메일전송 기능이 일시 중지될 수 있습니다. 추가 조치가 취해지기 전에 Amazon SES 팀의 담당자가 사용자 계정을 검토해야 합니다.

• Other Notifications – If your account is experiencing reputation-related issues that are not relatedto bounces or complaints, a brief message will be shown here. For more information about thenotifications that can be shown in this area, see 평판 대시보드 메시지 (p. 348).

Note

평판 대시보드는 AWS 콘솔에 액세스할 수 있는 모든 사용자를 대상으로 제공됩니다. 평판 대시보드에 대한 액세스를 제한할 목적으로 IAM 정책을 사용할 수는 없습니다.

평판 대시보드 메시지Amazon SES 평판 대시보드는 사용자 계정과 관련된 중요한 지표를 제공합니다. 다음 단원에서는 이 대시보드에 표시될 수 있는 메시지를 설명하고 발신자 평판과 관련된 문제를 해결하는 데 사용할 수 있는 도움말과정보를 제공합니다.

이 단원에서는 다음 유형의 알림에 대해 설명합니다.

• 상태 메시지 (p. 349)• 반송 메일 발생률 알림 (p. 349)• 수신 거부 발생률 알림 (p. 350)• 스팸 방지 조직 알림 (p. 351)• 직접 피드백 알림 (p. 352)• 도메인 차단 목록 알림 (p. 353)• 내부 검토 알림 (p. 354)• 메일박스 제공업체 알림 (p. 355)• 수신자 피드백 알림 (p. 356)

348

Page 357: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드General Status Messages

• 관련 계정 알림 (p. 357)• 스팸 트랩 알림 (p. 357)• 취약 사이트 알림 (p. 358)• 기타 알림 (p. 359)

상태 메시지평판 대시보드를 사용하면 사용자의 Amazon SES 계정 상태를 나타내는 메시지가 표시됩니다. 다음은 계정상태에 표시될 수 있는 값의 목록입니다.

• 정상 – 계정에 영향을 주는 문제가 현재로서는 없습니다.• 검토 중 – 사용자 계정이 검토 중입니다. 계정 검토의 원인이 된 문제가 검토 기간이 종료될 때까지 해결되

지 않으면 사용자 계정의 이메일 전송 기능을 일시 중지할 수 있습니다.• 검토 종료 결정 보류 중 – 사용자 계정이 검토 중입니다. 계정 검토의 원인이 된 문제의 특성으로 인해 추가

조치를 취하기 전에 사용자 계정을 수동으로 검토해야 합니다.• 전송 일시 중지 – 사용자 계정의 이메일 전송 기능을 일시 중지했습니다. 사용자 계정의 이메일 전송 기

능이 일시 중지된 동안에는 Amazon SES를 사용하여 이메일을 보낼 수 없습니다. 이 결정을 검토해 줄것을 요청할 수 있습니다. 검토 요청에 대해 자세히 알아보려면 Amazon SES Sending review processFAQs (p. 463) 단원을 참조하십시오.

• 전송 일시 중지 보류 중 – 사용자 계정이 검토 중입니다. 계정 검토의 원인이 된 문제가 해결되지 않았습니다. 이 경우에는 일반적으로 사용자 계정의 이메일 전송 기능을 일시 중지합니다. 하지만 계정의 특성상 추가 조치가 취해지기 전에 해당 계정을 검토해야 합니다.

또한 평판 대시보드의 [Bounce Rate]와 [Complaint Rate] 섹션에는 해당 측정치에 대한 상태 요약 정보가 표시됩니다. 다음은 측정치 상태에 표시될 수 있는 값의 목록입니다.

• 정상 – 지표가 정상 수준 내에 있습니다.• 거의 복구 – 지표로 인해 사용자 계정이 검토 상태로 설정되었습니다. 검토 기간이 시작된 후 이 지표가 최

대 비율 미만으로 유지되었습니다. 지표가 최대 비율 미만으로 유지된 경우 검토 기간이 끝나기 전에 이 지표의 상태가 정상으로 변경됩니다.

• 검토 중 – 지표로 인해 사용자 계정이 검토 상태로 설정되었으며 지표가 최대 비율보다 높습니다. 지표가최대 비율을 초과하는 문제가 검토 기간이 끝날 때까지 해결되지 않으면 사용자 계정의 이메일 전송 기능을 일시 중지할 수 있습니다.

• 전송 일시 중지 – 지표로 인해 사용자 계정의 이메일 전송 기능이 일시 중지되었습니다. 사용자 계정의 이메일 전송 기능이 일시 중지된 동안에는 Amazon SES를 사용하여 이메일을 보낼 수 없습니다. 이 결정을 검토해 줄 것을 요청할 수 있습니다. 검토 요청 제출에 대해 자세히 알아보려면 Amazon SES Sendingreview process FAQs (p. 463) 단원을 참조하십시오.

• 전송 일시 중지 대기 중 – 지표로 인해 사용자 계정이 검토 상태로 설정되었습니다. 이 검토 기간의 원인이된 문제가 해결되지 않았습니다. 이러한 문제로 인해 사용자 계정의 이메일 전송 기능이 일시 중지될 수 있습니다. 추가 조치가 취해지기 전에 Amazon SES 팀의 담당자가 사용자 계정을 검토해야 합니다.

반송 메일 발생률 알림이 단원에는 Amazon SES 평판 대시보드에 표시되는 반송 메일 발생률 알림에 대한 추가 정보가 포함되어있습니다.

이 알림을 받는 이유이 알림은 계정의 반송 메일 발생률이 너무 높은 경우 수신됩니다. 반송 메일 발생률은 Amazon SES 계정에서 생성된 하드 바운스 수를 기준으로 합니다. 반송 메일 발생률이 높은 경우 이메일 공급자는 발신자가 수신자 목록을 올바르게 관리하지 않거나 원치 않는 이메일을 전송한 것일 수도 있다는 신호로 해석합니다.

349

Page 358: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드수신 거부 발생률 알림

하드 바운스는 존재하지 않는 주소로 이메일이 전송될 때 발생합니다. Amazon SES는 이 계산에서 소프트바운스(수신자의 주소가 일시적으로 메시지를 수신할 수 없는 경우 발생함)를 고려하지 않습니다. 확인된 주소 및 도메인으로 전송되어 반송된 이메일과 Amazon SES 받은 편지함 시뮬레이터 (p. 175)로 전송하는 이메일도 이 계산에서 고려되지 않습니다.

AWS는 반송 메일 발생률을 이메일의 대표 볼륨 기반으로 계산합니다. 대표 볼륨은 일반적인 전송 실행을 나타내는 이메일의 양입니다. 대량 발신자와 소량 발신자 모두에게 공정을 기하기 위해 대표 볼륨은 계정마다다르게 적용되며 계정의 전송 패턴 변화에 따라 변경됩니다.

최상의 결과를 얻으려면 반송 메일 발생률을 5% 미만으로 유지하십시오. 반송 메일 발생률이 이것보다 높으면 이메일 배달에 영향을 미칠 수 있습니다. AWS는 반송 메일 발생률이 5% 이상이면 자동으로 사용자 계정을 검토합니다. AWS는 반송 메일 발생률이 10% 이상이면 높은 반송 메일 발생률의 원인이 된 문제를 해결할 때까지 사용자 계정의 추가 이메일 전송 기능을 일시 중지할 수 있습니다.

문제를 해결하기 위해 할 수 있는 조치반송 메일 및 수신 거부를 확인하여 관리하는 프로세스가 아직 없으면 이러한 프로세스를 마련합니다. 모든Amazon SES 계정에는 이러한 프로세스가 있어야 합니다. 자세한 정보는 이메일 프로그램을 위한 성공 지표 (p. 439) 단원을 참조하십시오.

다음에는 어떤 이메일 주소가 반송되는지 확인하고, 그러한 반송을 최소화하거나 방지하는 계획을 만들어 시행합니다. 사용자 계정의 이메일 전송 기능이 이미 일시 중지된 경우 AWS 콘솔에 로그인하고 지원 센터로이동합니다. 사용자를 대신하여 개설된 사례에 회신합니다.

사용자 계정이 검토 중인 경우검토 기간이 끝나도 사용자 계정의 반송 메일 발생률이 계속 10% 이상인 경우에는 문제를 해결할 때까지 사용자 계정의 이메일 전송 기능을 일시 중지할 수 있습니다.

문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 사례에 대한 응답으로 구현한 변경 사항을 설명합니다. 이러한 조치가 반송 메일 발생률을 줄일 것으로 생각되면 AWS는 사용자의 조치를 시행한 후에 수신한 반송 메일만 계산에 포함하도록 조정합니다.

사용자 계정의 이메일 전송 기능이 일시 중지된 경우이 결정을 재고해 줄 것을 요청할 수 있습니다. 자세한 정보는 Amazon SES Sending review processFAQs (p. 463) 단원을 참조하십시오.

문제를 해결할 것으로 생각되는 변경을 구현한 후 AWS 콘솔에 로그인하고 지원 센터로 이동합니다. 사용자를 대신하여 개설된 사례에 회신합니다.. 이 문제를 해결하기 위해 시행한 조치의 세부 정보뿐만 아니라 이문제가 다시 발생하지 않도록 하기 위한 계획의 세부 정보를 포함합니다. 요청이 접수된 후 AWS는 사용자가제공한 정보를 검토하고 필요한 경우 계정 상태를 변경합니다.

수신 거부 발생률 알림이 단원에는 Amazon SES 평판 대시보드에 표시되는 수신 거부 발생률 알림에 대한 추가 정보가 포함되어있습니다.

이 알림을 받는 이유이 알림은 계정의 수신 거부 발생률이 너무 높은 경우 수신됩니다. 수신 거부 발생률은 Amazon SES 계정에서 생성된 수신 거부 수를 기준으로 합니다. 수신 거부 발생률이 높은 경우 이메일 공급자는 발신자가 수신자목록을 올바르게 관리하지 않거나 원치 않는 이메일을 전송한 것일 수도 있다는 신호로 해석합니다.

수신 거부는 발신자가 전송한 이메일을 수신자가 스팸으로 분류할 때 발생합니다. 일반적으로 수신자가 이메일 클라이언트에서 Report Spam(스팸 신고) 버튼을 사용할 때 발생합니다. Amazon SES 받은 편지함 시뮬레이터 (p. 175)로 전송되는 이메일에 의해 생성된 수신 거부는 이 계산에서 고려되지 않습니다.

350

Page 359: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드스팸 방지 조직 알림

AWS는 수신 거부 발생률을 이메일의 대표 볼륨 기반으로 계산합니다. 대표 볼륨은 일반적인 전송 실행을 나타내는 이메일의 양입니다. 대량 발신자와 소량 발신자 모두에게 공정을 기하기 위해 대표 볼륨은 계정마다다르게 적용되며 계정의 전송 패턴 변화에 따라 변경됩니다.

최상의 결과를 얻으려면 수신 거부 발생률을 0.1% 미만으로 유지해야 합니다. 불만 제기 발생률이 이것보다높으면 이메일 배달에 영향을 미칠 수 있습니다. AWS는 수신 거부 발생률이 0.1% 이상이면 자동으로 사용자 계정을 검토합니다. AWS는 수신 거부 발생률이 0.5% 이상이면 높은 수신 거부 발생률의 원인이 된 문제를 해결할 때까지 사용자 계정의 추가 이메일 전송 기능을 일시 중지할 수 있습니다.

문제를 해결하기 위해 할 수 있는 조치반송 메일 및 수신 거부를 확인하여 관리하는 프로세스가 아직 없으면 이러한 프로세스를 마련합니다. 모든Amazon SES 계정에는 이러한 프로세스가 있어야 합니다. 자세한 정보는 이메일 프로그램을 위한 성공 지표 (p. 439) 단원을 참조하십시오.

다음에는 어떤 메시지가 불만 제기되었는지 확인하여 이러한 불만 제기를 최소화하기 위한 계획을 시행합니다. 사용자 계정의 이메일 전송 기능이 이미 일시 중지된 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다. 사용자를 대신하여 개설된 사례에 회신합니다.

불만 제기한 주소의 발송은 즉시 중지해야 하며, 수신자가 불만 제기를 제기하는 요인을 파악하는 것이 중요합니다. 이러한 요인을 파악한 후에는 이메일 발송 동작을 조정하여 문제를 해결하십시오.

사용자 계정이 검토 중인 경우검토 기간이 끝나도 사용자 계정의 수신 거부 발생률이 계속 0.5% 이상인 경우에는 문제를 해결할 때까지 사용자 계정의 이메일 전송 기능을 일시 중지할 수 있습니다.

문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 사례에 대한 응답으로 구현한 변경 사항을 설명합니다. 이러한 조치가 수신 거부 발생률을 줄일 것으로 생각되면 AWS는 사용자의 조치를 시행한 후에 수신한 수신 거부만 계산에 포함하도록 조정합니다.

사용자 계정의 이메일 전송 기능이 일시 중지된 경우이 결정을 재고해 줄 것을 요청할 수 있습니다. 자세한 정보는 Amazon SES Sending review processFAQs (p. 463) 단원을 참조하십시오.

문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 이 문제를 해결하기 위해 시행한 조치의 세부 정보뿐만 아니라 이 문제가 다시 발생하지 않도록 하기 위한 계획의 세부 정보를 포함합니다. 요청이 접수된 후 AWS는 사용자가 제공한 정보를 검토하고 필요한 경우 계정 상태를 변경합니다.

스팸 방지 조직 알림이 단원에는 Amazon SES 평판 대시보드에 표시되는 스팸 방지 조직 알림에 대한 추가 정보가 포함되어 있습니다.

이 알림을 받는 이유대표적인 스팸 방지 조직에서 사용자 Amazon SES 계정에서 전송되는 일부 내용이 원치 않는 내용이거나 문제가 있는 내용인 것으로 플래그가 지정되었음을 보고했습니다.

스팸 방지 조직에서는 사용자의 콘텐츠에 문제가 있다고 플래그를 표시하게 된 특정 메시지에 대한 정보를제공할 수 없습니다. 이 보고서를 발행한 조직의 이름을 제공해 드릴 수 없습니다. 일반적으로 스팸 방지 기관에서는 수신자의 피드백, 메시지 관련 측정치, 유효하지 않은 주소로의 전송 시도, 스팸 필터를 통해 플래

351

Page 360: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드직접 피드백 알림

그가 지정된 내용 및 스팸 트랩 적중 수 등과 같은 요인을 조합하여 검토합니다. 이것이 전체 목록은 아니며다른 요인으로 인해 이러한 조직에서 해당 내용에 플래그를 지정할 수 있습니다.

문제를 해결하기 위해 할 수 있는 조치이 문제를 해결하려면 이메일 발송 프로그램의 어떤 부분으로 인해 스팸 방지 조직에서 해당 이메일을 문제가 있는 이메일로 플래그를 지정했는지 확인해야 합니다. 그런 다음 이러한 문제를 해결하도록 발송 프로그램을 변경해야 합니다.

사용자 계정이 검토 중인 경우검토 기간이 끝나도 스팸 방지 조직이 사용자 계정에서 전송된 이메일을 문제가 있는 이메일로 계속 식별하는 경우에는 문제를 해결할 때까지 사용자 계정의 이메일 전송 기능을 일시 중지할 수 있습니다.

문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 메시지에 적용한 변경에 대한 세부 정보를 제공하십시오. 이정보를 수신하면 AWS는 검토 기간을 연장하여 사용자가 조치를 시행한 후에 수신한 스팸 방지 조직 알림만분석합니다. 이 연장 검토 기간이 끝난 후에 해당 계정이 더 이상 스팸 방지 기관의 보고서에 포함되지 않으면 계정에 대한 검토 기간을 해제할 수 있습니다.

사용자 계정의 이메일 전송 기능이 일시 중지된 경우이 결정을 재고해 줄 것을 요청할 수 있습니다. 자세한 정보는 Amazon SES Sending review processFAQs (p. 463) 단원을 참조하십시오.

문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 이 문제를 해결하기 위해 시행한 조치의 세부 정보뿐만 아니라 이 문제가 다시 발생하지 않도록 하기 위한 계획의 세부 정보를 포함합니다. 요청이 접수된 후 AWS는 사용자가 제공한 정보를 검토하고 필요한 경우 계정 상태를 변경합니다.

직접 피드백 알림이 단원에는 Amazon SES 평판 대시보드에 표시되는 직접 피드백 알림에 대한 추가 정보가 표시됩니다.

이 알림을 받는 이유상당히 많은 수의 사용자가 Amazon SES에 직접 연락하여 Amazon SES 계정과 연결된 도메인 또는 주소로부터 받은 메시지를 신고했습니다. 이러한 피드백은 메일박스 제공업체에서 직접 보고한 수신 거부에 표시되지 않으며 평판 대시보드에 표시되는 반송 메일 및 수신 거부 지표에 포함되지 않습니다.

이러한 문제를 보고한 사용자의 개인 정보를 보호하기 위해 사용자의 이메일 주소를 제공하지 않습니다.

수신자는 자신이 수신 신청하지 않은 메시지를 수신한 경우, 예상했던 유형이 아닌 다른 메일을 수신한 경우,수신한 이메일이 유용하지 않거나 관심 분야가 아닌 경우, 자신이 수신 신청한 메시지가 무엇인지 인식하지못하는 경우, 너무 많은 메시지를 수신한 경우 등의 이유로 Amazon SES에 수신 거부할 수 있습니다. 이 외에도 특정 이메일 발송 프로그램에 따라 해당 사례와 관련된 요인이 있을 수 있습니다.

문제를 해결하기 위해 할 수 있는 조치Building and maintaining your lists (p. 442)에서 설명한 대로 이중 옵트인 전략을 시행할 것을 권장하며, 새로운 주소를 획득하려는 경우 이중 옵트인 프로세스를 완료한 주소로만 이메일을 발송할 것을 권장합니다.

또한 최근 이메일에 상호 작용하지 않은 주소 목록을 삭제해야 합니다. Monitoring your Amazon SESsending activity (p. 242)에서 설명한 대로 열기 및 클릭 추적을 사용하여 귀하가 발송한 콘텐츠를 보거나 상호 작용한 사용자를 확인할 수 있습니다.

352

Page 361: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드도메인 차단 목록 알림

사용자 계정이 검토 중인 경우검토 기간이 끝나도 Amazon SES에서 사용자 계정에서 발송한 메시지에 대해 많은 수의 직접 수신 거부를받을 경우에는 문제를 해결할 때까지 사용자 계정의 이메일 전송 기능을 일시 중지할 수 있습니다.

문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 문제 해결을 위해 취한 조치에 관한 세부 정보를 제공하고 이러한 조치를 통해 향후 문제가 다시 발생하지 않도록 하는 방법을 설명합니다. 이러한 조치가 문제를 적절하게 해결할 것으로 생각되면 AWS는 사용자 계정에 대한 검토 기간을 취소합니다.

사용자 계정의 이메일 전송 기능이 일시 중지된 경우이 결정을 재고해 줄 것을 요청할 수 있습니다. 자세한 정보는 Amazon SES Sending review processFAQs (p. 463) 단원을 참조하십시오.

문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 이 문제를 해결하기 위해 시행한 조치의 세부 정보뿐만 아니라 이 문제가 다시 발생하지 않도록 하기 위한 계획의 세부 정보를 포함합니다. 요청이 접수된 후 AWS는 사용자가 제공한 정보를 검토하고 필요한 경우 계정 상태를 변경합니다.

도메인 차단 목록 알림이 단원에는 Amazon SES 평판 대시보드에 표시되는 도메인 차단 목록 알림에 대한 추가 정보가 포함되어있습니다.

이 알림을 받는 이유Amazon SES 계정에서 발송한 이메일에 신뢰할 수 있는 도메인 차단 목록에 추가된 도메인에 대한 참조가포함되어 있습니다. 이러한 목록에 있는 도메인은 일반적으로 폭력적이거나 악의적인 행위와 관련이 있습니다. 해당 도메인에 사용자가 발송하는 이메일 도메인이 포함될 수도 있고 포함되지 않을 수도 있습니다. 차단목록의 도메인에 대한 링크나 참조를 포함하는 메시지 또는 그러한 도메인에서 호스팅되는 이미지를 포함하는 메시지에도 플래그가 지정될 수 있습니다.

AWS는 사용자의 메시지에 플래그를 지정하게 만든 도메인 이름을 제공할 수 없으며 어떤 이메일이 이러한방식으로 플래그가 지정되는지를 식별할 수 없습니다.

문제를 해결하기 위해 할 수 있는 조치먼저 Amazon SES를 통해 전송하는 이메일에 참조된 모든 도메인의 목록을 생성합니다. 그런 다음Spamhaus 도메인 조회 도구를 사용하여 이메일의 도메인 차단 목록에 있는 도메인을 확인합니다. 발송한이메일에 참조된 도메인 중 두 개 이상이 이 차단 목록에 있을 수 있습니다.

Spamhaus 도메인 차단 목록은 Amazon SES 또는 AWS와 관련이 없습니다. AWS는 이 목록에 있는 도메인의 정확성에 대해 보장하지 않습니다. 스팸하우스 도메인 차단 목록 및 도메인 조회 도구는 SpamhausProject의 소유이며 여기서 운영하고 관리합니다.

사용자 계정이 검토 중인 경우당사는 검토 기간 동안 귀하가 보내는 이메일에서 악의적인 목적으로 사용된 도메인에 대한 참조를 찾습니다. 귀하의 이메일에 여전히 이러한 도메인에 대한 참조 수가 많은 경우, 문제가 해결될 때까지 귀하의 계정기능이 일시 중지될 수 있습니다.

문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 메시지에 적용한 변경에 대한 세부 정보를 제공하십시오. 이정보를 수신하면 AWS는 검토 기간을 연장하여 사용자가 조치를 시행한 후에 이메일에 포함된 차단 도메인

353

Page 362: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드내부 검토 알림

수만 분석합니다. 이 연장 검토 기간이 끝난 후에 도메인 차단 목록 알림 수가 감소되거나 제거되어 향후 이문제가 다시 발생하지 않도록 단계를 취했다고 생각되면 AWS는 계정에 대한 검토 기간을 취소합니다.

사용자 계정의 이메일 전송 기능이 일시 중지된 경우이 결정을 재고해 줄 것을 요청할 수 있습니다. 자세한 정보는 Amazon SES Sending review processFAQs (p. 463) 단원을 참조하십시오.

문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 이 문제를 해결하기 위해 시행한 조치의 세부 정보뿐만 아니라 이 문제가 다시 발생하지 않도록 하기 위한 계획의 세부 정보를 포함합니다. 요청이 접수된 후 AWS는 사용자가 제공한 정보를 검토하고 필요한 경우 계정 상태를 변경합니다.

내부 검토 알림이 단원에는 Amazon SES 평판 대시보드에 표시되는 내부 검토 알림에 대한 추가 정보가 포함되어 있습니다.

이 알림을 받는 이유귀하 계정의 포괄적인 검토 결과, 메일박스 제공업체나 수신자가 귀하의 메시지를 스팸으로 간주하게 만들수 있는 몇 가지 특성이 식별되었습니다.

침해 감지 프로세스를 보호하기 위해 사용자 계정이 이와 같이 플래그가 지정된 특정 요인은 밝힐 수가 없습니다.

이러한 결정의 원인이 되는 몇 가지 요인은 다음과 같습니다.

• 상용 스팸 방지 시스템에서 플래그를 지정한 메시지• 수신자가 명시적으로 이메일을 요청하지 않았음을 나타내는 메시지 콘텐츠• 메시지 발신자와 이메일 본문 내 브랜드 간의 불일치• 발신자가 누구인지 명백하지 않은 콘텐츠• 원치 않는 이메일과 관련된 콘텐츠를 다루는 발신 메시지• 원치 않는 이메일과 관련된 포맷 패턴• 평판이 나쁜 도메인에서 발송하거나 그러한 도메인을 참조함

포괄적이지 않은 목록 이 외에도 이러한 요인이 조합되어 이 알림의 원인이 될 수도 있고 여기에 나와 있지않은 요인도 있을 수 있습니다.

문제를 해결하기 위해 할 수 있는 조치다음 제안은 이 문제의 심각성을 최소화하는 데 도움을 줍니다.

• 귀하가 발송하는 이메일을 받겠다고 명시적으로 요청한 사람에게만 이메일을 보내십시오.• 이메일 수신자 목록을 구입하거나 임차하거나 차용하지 마십시오.• 전송하는 메시지에 사용자의 신원이나 해당 커뮤니케이션의 목적을 숨기지 마십시오.• Amazon SES를 통해 발송한 이메일에 참조된 모든 도메인 목록을 생성한 다음 https://

www.spamhaus.org/lookup/에서 스팸하우스 도메인 조회 도구를 사용하여 해당 도메인이 스팸하우스 도메인 차단 목록에 있는지 확인하십시오.

• 이메일을 작성할 경우 다음과 같은 업계 모범 사례를 따르십시오.

이 외에도 많은 모범 사례가 있지만 이메일에 플래그가 지정되는 가장 일반적인 몇 가지 요인을 식별하는 데도움이 될 것입니다.

354

Page 363: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드메일박스 제공업체 알림

Spamhaus 도메인 차단 목록은 Amazon SES 또는 AWS와 관련이 없습니다. AWS는 이 목록에 있는 도메인의 정확성에 대해 보장하지 않습니다. 스팸하우스 도메인 차단 목록 및 도메인 조회 도구는 SpamhausProject의 소유이며 여기서 운영하고 관리합니다.

사용자 계정이 검토 중이거나 사용자 계정의 이메일 전송 기능이일시 중지된 경우문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 문제 해결을 위해 취한 조치에 관한 세부 정보를 제공하고 이러한 조치를 통해 향후 문제가 다시 발생하지 않도록 하는 방법을 설명합니다. 이러한 조치가 문제를 적절하게 해결할 것으로 생각되면 AWS는 검토 기간을 취소하거나 사용자 계정에서 전송 일시 중지를 제거할 것입니다.

검토 기간을 해제하거나 사용자 계정에서 전송 일시 중지를 제거하여 나중에 같은 문제가 발견되면 다시 사용자 계정을 검토하거나 계정의 이메일 전송 기능을 일시 중지할 수 있습니다. 극단적인 경우 또는 같은 문제가 반복적으로 발생하는 경우 사용자 계정의 이메일 전송 기능을 영구적으로 중지할 수 있습니다.

사용자 계정이 검토 중이거나 계정의 이메일 전송 기능이 일시 중지된 경우 수행할 작업에 대한 자세한 내용은 Amazon SES Sending review process FAQs (p. 463) 단원을 참조하십시오.

메일박스 제공업체 알림이 단원에는 Amazon SES 평판 대시보드에 표시되는 메일박스 제공업체 알림에 대한 추가 정보가 포함되어있습니다.

이 알림을 받는 이유유명 메일박스 제공업체에서 사용자의 Amazon SES 계정과 관련된 도메인이나 주소로부터 원치 않는 이메일이나 악성 이메일이 발송되었다고 보고했습니다.

이 보고서를 발행한 조직의 신원은 제공해 드릴 수 없습니다. 또한 AWS는 메일박스 제공업체에서 보고서를발행하게 만든 특정 요인에 대한 정보를 가지고 있지 않습니다. 일반적으로 메일박스 제공업체에서는 고객피드백, 고객 관련 측정치, 유효하지 않은 주소로의 전송 시도, 스팸 필터에서 플래그를 지정한 콘텐츠 등에따라 이러한 결정을 내립니다. 이 외에도 메일박스 제공업체에서 사용자 콘텐츠에 플래그를 지정한 다른 원인이 있을 수 있습니다.

문제를 해결하기 위해 할 수 있는 조치이 문제를 해결하려면 이메일 발송 프로그램의 어떤 부분으로 인해 메일박스 제공업체에서 해당 이메일을 문제가 있는 이메일로 플래그를 지정했는지 확인해야 합니다. 그런 다음 이러한 문제를 해결하도록 발송 프로그램을 변경해야 합니다.

사용자 계정이 검토 중인 경우검토 기간이 끝나도 메일박스 제공업체가 사용자 계정에서 발송한 이메일을 문제가 있는 이메일로 계속 식별하는 경우에는 문제를 해결할 때까지 사용자 계정의 이메일 전송 기능을 일시 중지할 수 있습니다.

문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 메시지에 적용한 변경에 대한 세부 정보를 제공하십시오. 이정보를 수신하면 AWS는 검토 기간을 연장하여 사용자가 조치를 시행한 후에 수신한 메일박스 제공업체 알림 수만 분석합니다. 이 연장 검토 기간이 끝난 후에 메일박스 제공업체에서 더 이상 사용자 계정을 문제 계정으로 보고하지 않을 경우 계정에 대한 검토를 해제할 수 있습니다.

사용자 계정의 이메일 전송 기능이 일시 중지된 경우이 결정을 재고해 줄 것을 요청할 수 있습니다. 자세한 정보는 Amazon SES Sending review processFAQs (p. 463) 단원을 참조하십시오.

355

Page 364: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드수신자 피드백 알림

문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 이 문제를 해결하기 위해 시행한 조치의 세부 정보뿐만 아니라 이 문제가 다시 발생하지 않도록 하기 위한 계획의 세부 정보를 포함합니다. 요청이 접수된 후 AWS는 사용자가 제공한 정보를 검토하고 필요한 경우 계정 상태를 변경합니다.

수신자 피드백 알림이 단원에는 Amazon SES 평판 대시보드에 표시되는 수신자 피드백 알림에 대한 추가 정보가 포함되어 있습니다.

이 알림을 받는 이유유명 메일박스 제공업체에서 많은 수의 사용자가 Amazon SES 계정에서 발송한 이메일을 원치 않는 것으로 보고했습니다. 이 유형의 피드백은 메일박스 제공업체에서 직접 보고한 수신 거부에 표시되지 않으며Amazon SES 반송 메일 및 수신 거부 알림에 포함되지 않습니다.

수신 거부 수가 많으면 모든 Amazon SES 사용자에게 부정적인 영향을 줄 수 있습니다. 사용자 평판과 다른Amazon SES 고객의 평판을 보호하기 위해 계정에서 특정 수의 수신 거부를 받는 경우 즉각적인 조치가 시행됩니다.

귀하의 이메일을 원치 않는 것으로 보고한 특정 이메일 주소 목록을 제공할 수 없습니다. 또한 이 문제를AWS에 보고한 메일박스 제공업체의 이름을 공유할 수 없습니다.

문제를 해결하기 위해 할 수 있는 조치이 문제를 해결하려면 이메일 발송 프로그램의 어떤 부분으로 인해 수신자가 사용자의 이메일 메시지에 대해수신을 거부하는지 확인해야 합니다. 이러한 요인을 파악한 후에는 이메일 발송 체제를 변경하여 문제를 시정하십시오.

새 주소를 획득하려면 Building and maintaining your lists (p. 442)에서 설명한 대로 이중 옵트인 전략을 시행할 것을 권장합니다. 이중 옵트인 프로세스를 완료한 주소로만 이메일을 발송할 것을 권장합니다.

또한 최근 이메일에 상호 작용하지 않은 주소 목록을 삭제해야 합니다. Monitoring your Amazon SESsending activity (p. 242)에서 설명한 대로 열기 및 클릭 추적을 사용하여 귀하가 발송한 콘텐츠를 보거나 상호 작용한 사용자를 확인할 수 있습니다.

사용자 계정이 검토 중인 경우검토 기간이 끝나도 메일박스 제공업체가 많은 수의 수신 거부를 계속 보고하는 경우에는 문제를 해결할 때까지 사용자 계정의 이메일 전송 기능을 일시 중지할 수 있습니다.

문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 메시지에 적용한 변경에 대한 세부 정보를 제공하십시오. 이정보를 수신하면 AWS는 검토 기간을 연장하여 사용자가 조치를 시행한 후에 수신한 메일박스 제공업체 수신 거부 수만 분석합니다. 이 연장 검토 기간이 끝나고 메일박스 제공업체 수신 거부 수가 줄거나 없어진 경우 사용자 계정에 대한 검토를 해제할 수 있습니다.

사용자 계정의 이메일 전송 기능이 일시 중지된 경우이 결정을 재고해 줄 것을 요청할 수 있습니다. 자세한 정보는 Amazon SES Sending review processFAQs (p. 463) 단원을 참조하십시오.

문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 이 문제를 해결하기 위해 시행한 조치의 세부 정보뿐만 아니라 이 문제가 다시 발생하지 않도록 하기 위한 계획의 세부 정보를 포함합니다. 요청이 접수된 후 AWS는 사용자가 제공한 정보를 검토하고 필요한 경우 계정 상태를 변경합니다.

356

Page 365: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드관련 계정 알림

관련 계정 알림이 단원에는 Amazon SES 평판 대시보드에 표시되는 관련 계정 알림에 대한 추가 정보가 포함되어 있습니다.

이 알림을 받는 이유다른 Amazon SES 계정에서 발송한 이메일과 관련하여 심각한 문제를 감지했습니다. 이 문제의 계정이 사용자 AWS 계정과 관련된 것으로 사료되어 비슷한 문제를 예방하기 위해 조치를 취했습니다.

문제를 해결하기 위해 할 수 있는 조치계정의 이메일 전송 기능이 일시 중지되면 전송 일시 중지의 이유에 대한 정보가 해당 계정의 소유자에게 항상 전송됩니다. 자세한 내용은 관련 계정의 소유자에게 전송된 이메일을 참조하십시오.

먼저 관련 계정에 대한 문제를 해결해야 합니다. 문제를 해결할 것으로 생각되는 변경 사항을 수행한 후AWS 콘솔에 로그인하고 지원 센터로 이동합니다. 사용자를 대신하여 개설된 사례에 회신합니다.. 문제 해결을 위해 취한 조치에 관한 세부 정보를 제공하고 이러한 조치를 통해 향후 문제가 다시 발생하지 않도록 하는방법을 설명합니다. 이러한 조치가 문제를 적절하게 해결할 것으로 생각되면 AWS는 검토 기간을 취소하거나 사용자 계정에서 전송 일시 중지를 제거할 것입니다.

스팸 트랩 알림이 단원에는 Amazon SES 평판 대시보드에 표시되는 스팸 트랩 알림에 대한 추가 정보가 포함되어 있습니다.

이 알림을 받는 이유타사 스팸 방지 조직에서 최근 스팸 트랩 주소에 사용자 Amazon SES 계정과 연결된 확인 주소 또는 도메인으로부터 이메일이 수신되었다고 보고했습니다.

스팸 트랩은 원치 않는 미끼 이메일(스팸)을 보내는 데 전용으로 사용되는 휴면 이메일 주소입니다. 스팸 트랩 보고 수가 많으면 모든 Amazon SES 사용자에게 부정적인 영향을 줄 수 있습니다. 사용자 평판과 다른Amazon SES 고객의 평판을 보호하기 위해 계정에서 특정 수의 이메일을 스팸 트랩 주소로 보내는 경우 즉각적인 조치가 시행됩니다.

문제를 해결하기 위해 할 수 있는 조치해당 스팸 트랩과 연결된 이메일 주소를 밝힐 수 없습니다. 이러한 주소는 해당 주소를 소유한 조직에서 철저히 감시하며 주소가 일단 확인되면 가치가 없어집니다.

스팸 트랩으로 이메일을 보내는 것은 일반적으로 귀하가 고객의 이메일 주소를 획득하는 방식에 문제가 있음을 나타냅니다. 예를 들어 구입한 이메일 주소 목록에 스팸 트랩 주소가 들어 있을 수 있으며 그래서 AmazonSES 서비스 약관에서는 구매하거나 임차한 목록으로 이메일을 보내는 것을 금지합니다. 새 주소를 획득하려면 Building and maintaining your lists (p. 442)에서 설명한 대로 이중 옵트인 전략을 시행할 것을 권장합니다. 이중 옵트인 프로세스를 완료한 주소로만 이메일을 발송할 것을 권장합니다.

또한 최근 이메일에 상호 작용하지 않은 주소 목록을 삭제해야 합니다. Monitoring your Amazon SESsending activity (p. 242)에서 설명한 대로 열기 및 클릭 추적을 사용하여 귀하가 발송한 콘텐츠를 보거나 상호 작용한 사용자를 확인할 수 있습니다.

사용자 계정이 검토 중인 경우검토 기간이 끝나도 메시지가 사용자 계정에서 스팸 트랩 주소로 계속 전송되는 경우에는 문제를 해결할 때까지 사용자 계정의 이메일 전송 기능을 일시 중지할 수 있습니다.

357

Page 366: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드취약 사이트 알림

문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 메시지에 적용한 변경에 대한 세부 정보를 제공하십시오. 이정보를 수신하면 AWS는 검토 기간을 연장하여 사용자가 조치를 시행한 후에 수신한 스팸 트랩 보고 수만 분석합니다. 이 연장 검토 기간이 끝나고 스팸 트랩 보고 수가 줄거나 없어진 경우 사용자 계정에 대한 검토를해제할 수 있습니다.

사용자 계정의 이메일 전송 기능이 일시 중지된 경우이 결정을 재고해 줄 것을 요청할 수 있습니다. 자세한 정보는 Amazon SES Sending review processFAQs (p. 463) 단원을 참조하십시오.

문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 이 문제를 해결하기 위해 시행한 조치의 세부 정보뿐만 아니라 이 문제가 다시 발생하지 않도록 하기 위한 계획의 세부 정보를 포함합니다. 요청이 접수된 후 AWS는 사용자가 제공한 정보를 검토하고 필요한 경우 계정 상태를 변경합니다.

취약 사이트 알림이 단원에는 Amazon SES 평판 대시보드에 표시되는 취약 사이트 알림에 대한 추가 정보가 포함되어 있습니다.

이 알림을 받는 이유포괄적인 검토 끝에 사용자의 계정에서 사용자가 전송하려고 한 것이 아닌 메시지가 전송된 것이 확인되었습니다. 이러한 메시지는 메일박스 제공업체 및 수신자가 스팸으로 플래그를 지정할 확률이 높습니다.

대부분의 이러한 상황은 제3자가 귀하의 웹 사이트 기능을 침해하여 원치 않는 이메일을 보내는 것입니다.예를 들어 귀하의 웹 사이트에 "친구에게 이메일로 보내기", "문의하기", "친구 초대" 등의 기능이 있는 경우제3자가 이 기능을 사용하여 원치 않는 이메일을 보낼 수 있습니다.

문제를 해결하기 위해 할 수 있는 조치먼저 웹 사이트나 애플리케이션에서 타사가 사용자 승인 없이 Amazon SES를 사용하여 이메일을 보낼 수 있는 기능을 확인하십시오. 지원 센터의 경우 이러한 방식으로 전송된 것으로 판단되는 메시지의 샘플을 요청할 수 있습니다.

그런 다음 애플리케이션이나 웹 사이트를 수정하여 원치 않는 발송을 방지하십시오. 예를 들어 CAPTCHA를추가하고, 이메일을 발송할 수 있는 비율을 제한하고, 사용자가 사용자 지정 콘텐츠를 제출할 수 있는 기능을제거하고, 사용자에게 로그인하여 이메일을 보내도록 요청하고, 동시에 여러 알림을 생성하는 애플리케이션기능을 제거하십시오.

사용자 계정이 검토 중이거나 사용자 계정의 이메일 전송 기능이일시 중지된 경우문제를 해결할 것으로 생각되는 변경 사항을 구현한 경우 AWS 콘솔에 로그인하고 지원 센터로 이동합니다.사용자를 대신하여 개설된 사례에 회신합니다.. 이 문제를 해결하기 위해 시행한 조치의 세부 정보뿐만 아니라 이 문제가 다시 발생하지 않도록 하기 위한 계획의 세부 정보를 포함합니다. 요청이 접수된 후 AWS는 사용자가 제공한 정보를 검토하고 필요한 경우 계정 상태를 변경합니다.

검토 기간을 해제하거나 사용자 계정에서 전송 일시 중지를 제거하여 나중에 같은 문제가 발견되면 AWS는다시 사용자 계정을 검토하거나 계정의 이메일 전송 기능을 일시 중지할 수 있습니다. 극단적인 문제 또는 동일한 문제의 반복적 발생을 발견한 경우 AWS는 사용자 계정의 이메일 전송 기능을 영구적으로 중지할 수 있습니다.

사용자 계정이 검토 중이거나 계정의 이메일 전송 기능이 일시 중지된 경우 수행할 작업에 대한 자세한 내용은 Amazon SES Sending review process FAQs (p. 463) 단원을 참조하십시오.

358

Page 367: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드기타 알림

기타 알림이 단원에는 Amazon SES 평판 대시보드에 표시되는 기타 알림에 대한 추가 정보가 포함되어 있습니다.

이 알림을 받는 이유자동 검토 또는 수동 검토를 통해 이 문서의 이전 단원에 나와 있지 않은 문제가 확인되었습니다.

문제를 해결하기 위해 할 수 있는 조치특정 문제에 대한 자세한 내용은 사용자를 대신하여 개설된 지원 센터 사례를 참조하십시오. 지원 센터에 액세스하려면 AWS 콘솔에 로그인한 다음 지원 센터를 선택합니다. 사례에 대한 응답으로 구현한 변경 사항을설명합니다. 특정 상황 및 발견된 문제의 특성에 따라 검토 기간을 종료하거나 사용자 계정의 이메일 전송 기능을 복원할 수 있습니다.

Creating reputation monitoring alarms usingCloudWatch

Amazon SES 두 개의 평판 관련 메트릭을 자동으로 Amazon CloudWatch: Reputation.BounceRate andReputation.ComplaintRate. 이 메트릭을 사용하여 귀하의 바운바운스 또는 불만 요율이 레벨에 도달했을 때 귀하에게 알려주는 알람을 생성할 수 있습니다. 이는 귀하의 이메일 전송 능력에 영향을 미칠 수 있습니다.

Note

이 단원의 절차에서는 CloudWatch 경보에 대한 선택적 설정과 관련된 일부 정보를 생략합니다. 자세한 내용은 Amazon CloudWatch 사용 설명서의 Amazon CloudWatch 경보 생성을 참조하십시오.

CloudWatch 경보를 생성하려면

1. Amazon SNS 주제를 새로 생성한 다음 원하는 엔드포인트(예: 이메일 또는 SMS)를 사용하여 해당 주제를 구독합니다. 자세한 내용은 주제 만들기 and 주제에 끝점 구독 in the Amazon Simple NotificationService 개발자 안내서.

2. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.3. 탐색 창에서 Alarms를 선택합니다.4. [Specify metric and conditions] 페이지에서 다음을 수행합니다.

a. 지표에서 지표 선택을 선택합니다.b. 지표 목록에서 [SES]를 선택합니다.

Note

현재 AWS 리전에서 이메일을 전송하지 않은 경우 사용 가능한 지표 목록에 SES가 표시되지 않을 수도 있습니다. 여러분은 SES 메트릭은 Amazon SES 메일박스 시뮬레이터 (p. 175). 지표는 몇 분 안에 CloudWatch에 표시됩니다.

c. 계정 지표를 선택합니다.d. 경보를 만들려는 지표를 선택합니다.

예를 들어 반송 메일 비율이 특정 수준에 도달한 경우 경보를 생성하려면 [Reputation.BounceRate]를 선택합니다. 불만 제기 비율이 특정 수준에 도달한 경우 경보를 생성하려면[Reputation.ComplaintRate]를 선택합니다.

359

Page 368: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Creating alarms using CloudWatch

Note

사용자의 계정에 반송 메일이나 수신 거부가 하나도 없다면 Reputation.BounceRate 및Reputation.ComplaintRate 지표가 이 페이지에 표시되지 않습니다.

지표를 선택한 후 [Select metric]을 선택합니다.e. [Conditions] 섹션의 [Threshold type]에서 [Static]을 선택합니다.f. 아래 명성.MetricName is, 선택 더 큼/동일.g. [than]에서 CloudWatch에 경보를 발생시켜야 하는 값을 지정합니다.

반송 메일 발생률을 모니터링하기 위한 경보를 만들 경우, Amazon SES는 반송 메일 발생률을 5%미만으로 유지할 것을 권장합니다. 해당 계정의 반송 메일 발생률이 10%가 넘으면 계정의 이메일전송 기능이 일시 중지될 수 있습니다. 따라서 다음 그림과 같이 해당 계정의 반송 메일 발생률이0.05(5%) 이상일 때 알림이 전송되도록 CloudWatch를 구성해야 합니다.

수신 거부율을 모니터링하기 위한 경보를 만들 경우, Amazon SES는 수신 거부율을 0.1% 미만으로유지할 것을 권장합니다. 해당 계정의 수신 거부율이 0.5%가 넘으면 계정의 이메일 전송 기능이 일시 중지될 수 있습니다. 따라서 다음 그림과 같이 해당 계정의 수신 거부율이 0.001(0.1%) 이상일 경우 알림이 전송되도록 CloudWatch를 구성해야 합니다.

360

Page 369: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Automatically pausing email sending

h. [Additional configuration]에서 [Missing data treatment]에 대해 [Treat missing data as ignore(maintain the alarm state)]를 선택합니다.

i. 다음을 선택합니다.5. [Configure details] 페이지에서 다음을 수행합니다.

a. [Whenever this alarm state is]에서 [in Alarm]을 선택합니다.b. [Select an SNS topic]에서 [Select an existing SNS topic]을 선택합니다. [Send notification to]에서

는 1단계에서 만들어 구독한 주제를 선택합니다.c. 다음을 선택합니다.

6. [Add a description] 페이지에서 다음을 수행합니다.

a. [Alarm name]에 경보의 고유한 이름을 입력합니다.b. (선택 사항) [Alarm description]에 경보를 설명하는 텍스트를 입력합니다.c. 다음을 선택합니다.

7. [Review and create] 페이지에서 이전 단계에서 지정한 설정을 확인합니다. 경보를 생성할 준비가 되면[Create Alarm]을 선택합니다.

Automatically pausing email sending발신자 평판을 보호하기 위해 특정 구성 세트를 사용하여 전송한 메시지 또는 특정 AWS 리전의 AmazonSES 계정에서 전송된 모든 메시지에 대한 이메일 전송을 임시로 일시 중지할 수 있습니다.

361

Page 370: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드For your entire account

Amazon CloudWatch 및 Lambda를 사용하면 평판 지표(예: 반송 메일 발생률 또는 수신 거부 발생률)가 특정임계값을 초과할 때 이메일 전송을 자동으로 일시 중지하는 솔루션을 생성할 수 있습니다. 이 주제에는 이러한 솔루션을 설정하는 절차가 포함되어 있습니다.

이 단원의 주제:• Automatically pausing email sending for your entire Amazon SES account (p. 362)• Automatically pausing email sending for a configuration set (p. 366)

Automatically pausing email sending for your entireAmazon SES account이 단원의 절차에서는 Amazon SES, Amazon SNS, Amazon CloudWatch 및 AWS Lambda을 설정하여 단일AWS 리전에 있는 Amazon SES 계정에 대한 이메일 전송을 자동으로 일시 중지하는 단계를 설명합니다. 여러 리전으로부터 이메일을 보내려면, 이 방법을 구현하고자 하는 리전마다 이 단원의 절차를 반복하십시오.

이 단원의 주제:• Part 1: Create an IAM Role (p. 362)• Part 2: Create the Lambda Function (p. 363)• Part 3: Re-Enable Email Sending for Your Account (p. 364)• Part 4: Create an Amazon SNS Topic (p. 364)• Part 5: Create a CloudWatch Alarm (p. 365)• Part 6: Test the solution (p. 365)

Part 1: Create an IAM Role이메일 전송 자동 일시 중지를 구성하는 첫 단계는 UpdateAccountSendingEnabled API 작업을 실행할수 있는 IAM 역할을 생성하는 것입니다.

IAM 역할을 만들려면

1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.2. 탐색 창에서 Roles(역할)를 선택합니다.3. [Create role]을 선택합니다.4. Select type of trusted entity(신뢰할 수 있는 유형의 엔터티 선택) 아래에서 AWS 서비스를 선택합니다.5. Choose the service that will use this role(이 역할을 사용할 서비스 선택) 아래에서 Lambda를 선택합니

다. 다음을 선택합니다. 권한6. [Attach permissions policies] 페이지에서 다음 정책을 선택합니다.

• AWSLambdaBasicExecutionRole• AmazonSESFullAccess

Tip

정책 목록 상단의 검색 상자를 사용하여 이러한 정책을 빨리 찾습니다.

다음을 선택합니다. 검토7. [Review] 페이지의 [Name]에서 역할 이름을 입력합니다. [Create role]을 선택합니다.

362

Page 371: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드For your entire account

Part 2: Create the Lambda FunctionIAM 역할을 생성한 후에는 계정에 대한 이메일 전송을 일시 중지시키는 Lambda 함수를 생성할 수 있습니다.

Lambda 함수를 생성하려면

1. https://console.aws.amazon.com/lambda/에서 AWS Lambda 콘솔을 엽니다.2. 리전 선택기를 사용하여 이 Lambda 함수를 배포할 리전을 선택합니다.

Note

이 함수는 이 단계에서 선택하는 AWS 리전에서만 이메일 전송을 일시 중지시킵니다. 둘 이상의 리전으로부터 이메일을 보내는 경우, 이메일 전송을 자동으로 일시 중지하려는 리전마다 이단원의 절차를 반복하십시오.

3. 함수 생성을 선택합니다.4. [Create function]에서, [Author from scratch]를 선택합니다.5. [Author from scratch]에서 다음 단계를 수행합니다.

• For Name, type a name for the Lambda function.• For Runtime, choose Node.js 6.10.• For Role, choose Choose an existing role.• For Existing role, choose the IAM role you created in the section called “Part 1: Create an IAM

Role” (p. 362).

함수 생성을 선택합니다.6. 코드 편집기의 [Function code]에 다음 코드를 붙여 넣습니다.

'use strict';

var aws = require('aws-sdk');

// Create a new SES object. var ses = new aws.SES();

// Specify the parameters for this operation. In this case, there is only one// parameter to pass: the Enabled parameter, with a value of false// (Enabled = false disables email sending, Enabled = true enables it).var params = { Enabled: false};

exports.handler = (event, context, callback) => { // Pause sending for your entire SES account ses.updateAccountSendingEnabled(params, function(err, data) { if(err) { console.log(err.message); } else { console.log(data); } });};

Save를 선택합니다.7. 테스트를 선택합니다. [Configure test event] 창이 나타나면 [Event name] 필드에 이름을 입력한 후

[Create]를 선택합니다.8. 페이지 상단에 있는 알림 표시줄이 Execution result: succeeded. 함수가 실행되지 않으면 다음

을 수행합니다.

363

Page 372: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드For your entire account

• Verify that the IAM role you created in the section called “Part 1: Create an IAM Role” (p. 362)contains the correct policies.

• Verify that the code in the Lambda function does not contain any errors. The Lambda code editorautomatically highlights syntax errors and other potential issues.

Part 3: Re-Enable Email Sending for Your Accountthe section called “Part 2: Create the Lambda Function” (p. 363)에서 Lambda 함수를 테스트할 때의 부작용은 Amazon SES 계정에 대한 이메일 전송이 일시 중지되는 것입니다. 대부분의 경우 CloudWatch 경보가트리거될 때까지 계정에 대한 전송을 일시 중지하지 않습니다.

이 단원의 절차에서는 Amazon SES 계정에 대한 이메일 전송을 다시 활성화합니다. 이 절차를 완료하려면AWS Command Line Interface을 설치하고 구성해야 합니다. 자세한 내용은 AWS Command Line Interface사용 설명서를 참조하십시오.

이메일 전송을 재활성화하려면

1. 명령줄에 다음 명령을 입력하여 계정에 대한 이메일 전송을 다시 활성화합니다. aws ses update-account-sending-enabled --enabled --region us-west-2

Note

Replace us-west-2 을(를) 사용하여 전자 메일 전송을 다시 활성화하려는 지역의 이름을 앞선 명령에 입력합니다.

2. 명령줄에 다음 명령을 입력하여 계정에 대한 이메일 전송 상태를 확인합니다. aws ses get-account-sending-enabled --region us-west-2

다음 결과가 표시되면 계정에 대한 이메일 전송이 성공적으로 재활성화된 것입니다.

{ "Enabled": true }

Part 4: Create an Amazon SNS Topic경보가 트리거될 때 CloudWatch가 Lambda 함수를 실행하려면 먼저 Amazon SNS 주제를 생성하고 해당Lambda 함수를 구독해야 합니다.

Amazon SNS 주제를 생성하려면

1. https://console.aws.amazon.com/sns/v3/home에서 Amazon SNS 콘솔을 엽니다.2. 리전 선택기를 사용하여 이메일 전송을 자동으로 일시 중지하려는 리전을 선택합니다.3. 탐색 창에서 주제를 선택합니다.4. [Create new topic]을 선택합니다.5. [Create new topic] 창의 [Topic name]에서 주제 이름을 입력합니다. 선택적으로 [Display name] 필드에

더 세부적인 이름을 입력할 수 있습니다.

[Create topic]을 선택합니다.6. 주제 목록에서 이전 단계에서 생성한 주제 옆의 상자를 선택합니다. [Actions] 메뉴에서 [Subscribe to

topic]을 선택합니다.7. [Create subscription] 창에서 다음과 같이 선택합니다.

• For Protocol, choose AWS Lambda.

364

Page 373: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드For your entire account

• For Endpoint, choose the Lambda function you created in the section called “Part 2: Create theLambda Function” (p. 363).

• For Version or alias, choose default.8. 구독 생성을 선택합니다.

Part 5: Create a CloudWatch Alarm이 단원에는 지표가 특정 임계값에 도달하면 트리거되는 CloudWatch에 경보를 생성하기 위한 절차가 포함되어 있습니다. 경보가 트리거되면 the section called “Part 4: Create an Amazon SNS Topic” (p. 364)에서 생성한 Amazon SNS 주제에 알림을 전달한 후 the section called “Part 2: Create the LambdaFunction” (p. 363)에서 생성한 Lambda 함수를 실행합니다.

CloudWatch 경보를 생성하려면

1. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.2. 리전 선택기를 사용하여 이메일 전송을 자동으로 일시 중지하려는 리전을 선택합니다.3. 탐색 창에서 Alarms를 선택합니다.4. [Create Alarm]을 선택합니다.5. [Create Alarm] 창의 [SES Metrics] 아래에서 [Account Metrics]를 선택합니다.6. [Metric Name] 아래에서 다음 옵션 중 하나를 선택합니다.

• Reputation.BounceRate – Choose this metric if you want to pause email sending for your accountwhen the overall hard bounce rate for your account crosses a threshold that you define.

• Reputation.ComplaintRate – Choose this metric if you want to pause email sending for your accountwhen the overall complaint rate for your account crosses a threshold that you define.

다음을 선택합니다.7. 다음 단계를 완료합니다.

• Under Alarm Threshold, for Name, type a name for the alarm.• Under Whenever: Reputation.BounceRate or Whenever: Reputation.ComplaintRate, specify the

threshold that causes the alarm to trigger.

Note

Your account is automatically placed under review if your bounce rate exceeds 10%, orif your complaint rate exceeds .5%. When you specify the bounce or complaint rate thatcauses the CloudWatch alarm to trigger, we recommend that you use values that are belowthese rates to prevent your account from being placed under review.

• Under Actions, for Whenever this alarm, choose State is ALARM. For Send notification to,choose the Amazon SNS topic you created in the section called “Part 4: Create an Amazon SNSTopic” (p. 364).

[Create Alarm]을 선택합니다.

Part 6: Test the solution이제 경보를 테스트하여 ALARM 상태로 전환될 때 Lambda 함수를 실행하는지 확인할 수 있습니다.SetAlarmState API 작업을 사용하여 경보의 상태를 일시적으로 변경할 수 있습니다.

이 단원의 절차는 선택 사항이지만 전체 솔루션을 올바로 구성할 수 있도록 완료하는 것이 좋습니다.

365

Page 374: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드For a configuration set

1. 명령줄에 다음 명령을 입력하여 계정에 대한 이메일 전송 상태를 확인합니다. aws ses get-account-sending-enabled --region us-west-2

Note

Replace us-west-2 이전 단계에서 지정한 영역의 이름을 앞선 명령에 입력합니다.

계정에 대해 전송이 활성화되어 있으면 다음 결과가 표시됩니다.

{ "Enabled": true }

2. 명령줄에 다음 명령을 입력하여 경보 상태를 ALARM으로 임시 변경합니다. aws cloudwatch set-alarm-state --alarm-name MyAlarm --state-value ALARM --state-reason "Testing execution of Lambdafunction" --region us-west-2

Replace MyAlarm 에서 만든 알람의 이름과 이전 명령에서 the section called “Part 5: Create aCloudWatch Alarm” (p. 365), 및 교체 us-west-2 이메일 전송을 자동으로 일시 중지하고자 하는 지역의 경우

Note

이 명령을 실행하면 경보의 상태가 OK에서 ALARM으로 바뀌고 몇 초 이내에 다시 OK로 바뀝니다. 콘솔의 경보 기록 탭에서 또는 DescribeAlarmHistoryCloudWatch 작업을 사용하여 이러한상태 변경을 볼 수 있습니다.

3. 명령줄에 다음 명령을 입력하여 계정에 대한 이메일 전송 상태를 확인합니다. aws ses get-account-sending-enabled --region us-west-2

Lambda 함수가 성공적으로 실행되면 다음 결과가 표시됩니다.

{ "Enabled": false}

4. the section called “Part 3: Re-Enable Email Sending for Your Account” (p. 364)의 단계를 완료하여 계정에 대한 이메일 전송을 재활성화합니다.

Automatically pausing email sending for aconfiguration setAmazon CloudWatch로 설정된 특정 구성을 사용하여 전송된 이메일 전용 평판 지표를 내보내도록 AmazonSES를 구성할 수 있습니다. 그 다음 이러한 지표를 사용하여 이러한 구성 세트 전용 CloudWatch 경보를 생성할 수 있습니다. 이러한 경보가 특정 임계값을 초과하면 Amazon SES 계정의 전체 이메일 전송 기능에 영향을 주지 않고 지정된 구성 세트를 사용하는 이메일 전송을 자동으로 일시 중지할 수 있습니다.

Note

이 단원에 설명된 솔루션에서는 단일 AWS 리전의 특정 구성 세트에 대해 이메일 전송을 일시 중지합니다. 여러 리전으로부터 이메일을 보내려면, 이 방법을 구현하고자 하는 리전마다 이 단원의 절차를 반복하십시오.

이 단원의 주제:• Part 1: Enable Reputation Metric Reporting for the Configuration Set (p. 367)• Part 2: Create an IAM Role (p. 367)• Part 3: Create the Lambda Function (p. 367)• Part 4: Re-Enable Email Sending for the Configuration Set (p. 369)

366

Page 375: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드For a configuration set

• Part 5: Create an Amazon SNS Topic (p. 369)• Part 6: Create a CloudWatch Alarm (p. 370)• Part 7: Test the solution (p. 371)

Part 1: Enable Reputation Metric Reporting for the ConfigurationSet구성 세트에 대해 이메일 전송을 자동으로 일시 중지하도록 Amazon SES를 구성하려면 먼저 구성 세트에 대한 평판 지표 내보내기를 활성화해야 합니다.

구성 세트에 대한 반송 메일 및 불만 지표 내보내기를 활성화하려면 the section called “평판 지표 내보내기” (p. 240)의 단계를 완료해야 합니다.

Part 2: Create an IAM Role이메일 전송 자동 일시 중지를 구성하는 첫 단계는 UpdateConfigurationSetSendingEnabled API 작업을 실행할 수 있는 IAM 역할을 생성하는 것입니다.

IAM 역할을 만들려면

1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.2. 탐색 창에서 Roles(역할)를 선택합니다.3. [Create role]을 선택합니다.4. Select type of trusted entity(신뢰할 수 있는 유형의 엔터티 선택) 아래에서 AWS 서비스를 선택합니다.5. Choose the service that will use this role(이 역할을 사용할 서비스 선택) 아래에서 Lambda를 선택합니

다. 다음을 선택합니다. 권한6. [Attach permissions policies] 페이지에서 다음 정책을 선택합니다.

• AWS LambdaBasicExecutionRole• AmazonSESFullAccess

Tip

정책 목록 상단의 검색 상자를 사용하여 이러한 정책을 빨리 찾습니다.

다음을 선택합니다. 검토7. [Review] 페이지의 [Name]에서 역할 이름을 입력합니다. [Create role]을 선택합니다.

Part 3: Create the Lambda FunctionIAM 역할을 생성한 후에는 구성 세트에 대한 이메일 전송을 일시 중지시키는 Lambda 함수를 생성할 수 있습니다.

Lambda 함수를 생성하려면

1. https://console.aws.amazon.com/lambda/에서 AWS Lambda 콘솔을 엽니다.2. 리전 선택기를 사용하여 이 Lambda 함수를 배포할 리전을 선택합니다.

Note

이 함수는 이 단계에서 선택하는 AWS 리전에서만 구성 세트에 대한 이메일 전송을 일시 중지시킵니다. 둘 이상의 리전으로부터 이메일을 보내는 경우, 이메일 전송을 자동으로 일시 중지하려는 리전마다 이 단원의 절차를 반복하십시오.

367

Page 376: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드For a configuration set

3. 함수 생성을 선택합니다.4. [Create function]에서, [Author from scratch]를 선택합니다.5. [Author from scratch]에서 다음 단계를 수행합니다.

• For Name, type a name for the Lambda function.• For Runtime, choose Node.js 6.10.• For Role, choose Choose an existing role.• For Existing role, choose the IAM role you created in the section called “Part 2: Create an IAM

Role” (p. 367).

함수 생성을 선택합니다.6. 코드 편집기의 [Function code]에 다음 코드를 붙여 넣습니다.

'use strict';

var aws = require('aws-sdk');

// Create a new SES object. var ses = new aws.SES();

// Specify the parameters for this operation. In this example, you pass the // Enabled parameter, with a value of false (Enabled = false disables email // sending, Enabled = true enables it). You also pass the ConfigurationSetName// parameter, with a value equal to the name of the configuration set for // which you want to pause email sending.var params = { ConfigurationSetName: ConfigSet, Enabled: false};

exports.handler = (event, context, callback) => { // Pause sending for a configuration set ses.updateConfigurationSetSendingEnabled(params, function(err, data) { if(err) { console.log(err.message); } else { console.log(data); } });};

Replace ConfigSet 이전 코드에 구성 세트 이름을 입력합니다. Save를 선택합니다.7. 테스트를 선택합니다. [Configure test event] 창이 나타나면 [Event name] 필드에 이름을 입력한 후

[Create]를 선택합니다.8. 페이지 상단에 있는 알림 표시줄이 Execution result: succeeded. 함수가 실행되지 않으면 다음

을 수행합니다.

• Verify that the IAM role you created in the section called “Part 2: Create an IAM Role” (p. 367)contains the correct policies.

• Verify that the code in the Lambda function does not contain any errors. The Lambda code editorautomatically highlights syntax errors and other potential issues.

368

Page 377: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드For a configuration set

Part 4: Re-Enable Email Sending for the Configuration Setthe section called “Part 3: Create the Lambda Function” (p. 367)에서 Lambda 함수를 테스트할 때의 부작용은 구성 세트에 대한 이메일 전송이 일시 중지되는 것입니다. 대부분의 경우 CloudWatch 경보가 트리거될때까지 구성 세트에 대한 전송을 일시 중지하지 않습니다.

이 단원의 절차에서는 구성 세트에 대한 이메일 전송 재활성화를 설명합니다. 이 절차를 완료하려면 AWSCommand Line Interface을 설치하고 구성해야 합니다. 자세한 내용은 AWS Command Line Interface 사용설명서를 참조하십시오.

이메일 전송을 재활성화하려면

1. 명령줄에 다음 명령을 입력하여 구성 세트에 대한 이메일 전송을 다시 활성화합니다.

aws ses update-configuration-set-sending-enabled \--configuration-set-name ConfigSet \--enabled

이전 명령에서 교체 ConfigSet e-메일 전송 일시 중지하고 us-west-2 이메일 전송을 자동으로 일시중지하고자 하는 지역의 경우

2. 명령줄에 다음 명령을 입력하여 이메일 전송이 활성화되었는지 확인합니다.

aws ses describe-configuration-set \--configuration-set-name ConfigSet \--configuration-set-attribute-names reputationOptions

이 명령은 다음 예제와 유사한 출력을 생성합니다.

{ "ConfigurationSet": { "Name": "ConfigSet" }, "ReputationOptions": { "ReputationMetricsEnabled": true, "SendingEnabled": true } }

SendingEnabled의 값이 true이면 구성 세트에 대한 이메일 전송이 성공적으로 재활성화된 것입니다.

Part 5: Create an Amazon SNS Topic경보가 트리거될 때 CloudWatch가 Lambda 함수를 실행하려면 먼저 Amazon SNS 주제를 생성하고 해당Lambda 함수를 구독해야 합니다.

Amazon SNS 주제를 생성하려면

1. https://console.aws.amazon.com/sns/v3/home에서 Amazon SNS 콘솔을 엽니다.2. 리전 선택기를 사용하여 이메일 전송을 자동으로 일시 중지하려는 리전을 선택합니다.3. 탐색 창에서 주제를 선택합니다.4. [Create new topic]을 선택합니다.5. [Create new topic] 창의 [Topic name]에서 주제 이름을 입력합니다. 선택적으로 [Display name] 필드에

더 세부적인 이름을 입력할 수 있습니다.

369

Page 378: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드For a configuration set

[Create topic]을 선택합니다.6. 주제 목록에서 이전 단계에서 생성한 주제 옆의 상자를 선택합니다. [Actions] 메뉴에서 [Subscribe to

topic]을 선택합니다.7. [Create subscription] 창에서 다음과 같이 선택합니다.

• For Protocol, choose AWS Lambda.• For Endpoint, choose the Lambda function you created in the section called “Part 3: Create the

Lambda Function” (p. 367).• For Version or alias, choose default.

8. 구독 생성을 선택합니다.

Part 6: Create a CloudWatch Alarm이 단원에는 지표가 특정 임계값에 도달하면 트리거되는 CloudWatch에 경보를 생성하기 위한 절차가 포함되어 있습니다. 경보가 트리거되면 the section called “Part 5: Create an Amazon SNS Topic” (p. 369)에서 생성한 Amazon SNS 주제에 알림을 전달한 후 the section called “Part 3: Create the LambdaFunction” (p. 367)에서 생성한 Lambda 함수를 실행합니다.

CloudWatch 경보를 생성하려면

1. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.2. 리전 선택기를 사용하여 이메일 전송을 자동으로 일시 중지하려는 리전을 선택합니다.3. 왼쪽의 탐색 창에서 [Alarms]를 선택합니다.4. [Create Alarm]을 선택합니다.5. [Create Alarm] 창의 [SES Metrics] 아래에서 [Configuration Set Metrics]를 선택합니다.6. [ses:configuration-set] 열에서 경보를 생성할 구성 세트를 찾습니다. [Metric Name] 아래에서 다음 옵션

중 하나를 선택합니다.

• Reputation.BounceRate – Choose this metric if you want to pause email sending for theconfiguration set when the overall hard bounce rate for the configuration set crosses a threshold thatyou define.

• Reputation.ComplaintRate – Choose this metric if you want to pause email sending for theconfiguration set when the overall complaint rate for the configuration set crosses a threshold thatyou define.

다음을 선택합니다.7. 다음 단계를 완료합니다.

• Under Alarm Threshold, for Name, type a name for the alarm.• Under Whenever: Reputation.BounceRate or Whenever: Reputation.ComplaintRate, specify the

threshold that causes the alarm to trigger.

Note

If the overall bounce rate for your Amazon SES account exceeds 10%, or if the overallcomplaint rate for your Amazon SES account exceeds .5%, your Amazon SES accountis automatically placed under review. When you specify the bounce or complaint rate thatcauses the CloudWatch alarm to trigger, we recommend that you use values that are farbelow these rates to prevent your account from being placed under review.

• Under Actions, for Whenever this alarm, choose State is ALARM. For Send notification to,choose the Amazon SNS topic you created in the section called “Part 5: Create an Amazon SNSTopic” (p. 369).

370

Page 379: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드For a configuration set

[Create Alarm]을 선택합니다.

Part 7: Test the solution이제 경보를 테스트하여 ALARM 상태로 전환될 때 Lambda 함수를 실행하는지 확인할 수 있습니다.CloudWatch API에서 SetAlarmState 작업을 사용하여 경보의 상태를 일시적으로 변경할 수 있습니다.

이 단원의 절차는 선택 사항이지만 전체 솔루션을 올바로 구성할 수 있도록 완료하는 것이 좋습니다.

솔루션을 테스트하려면

1. 명령줄에 다음 명령을 입력하여 구성 세트에 대한 이메일 전송 상태를 확인합니다. aws ses describe-configuration-set --configuration-set-name ConfigSet --region us-west-2

구성 세트에 대해 전송이 활성화되어 있으면 다음 결과가 표시됩니다.

{ "ConfigurationSet": { "Name": "ConfigSet" }, "ReputationOptions": { "ReputationMetricsEnabled": true, "SendingEnabled": true } }

SendingEnabled의 값이 true이면 구성 세트에 대한 이메일 전송이 현재 활성화된 것입니다.2. 명령줄에 다음 명령을 입력하여 경보 상태를 ALARM으로 임시 변경합니다.

aws cloudwatch set-alarm-state \--alarm-name MyAlarm \--state-value ALARM \--state-reason "Testing execution of Lambda function"

Replace MyAlarm 에서 만든 알람의 이름과 이전 명령에서 the section called “Part 6: Create aCloudWatch Alarm” (p. 370).

Note

이 명령을 실행하면 경보의 상태가 OK에서 ALARM으로 바뀌고 몇 초 이내에 다시 OK로 바뀝니다. 콘솔의 경보 기록 탭에서 또는 DescribeAlarmHistoryCloudWatch 작업을 사용하여 이러한상태 변경을 볼 수 있습니다.

3. 명령줄에 다음 명령을 입력하여 구성 세트에 대한 이메일 전송 상태를 확인합니다.

aws ses describe-configuration-set \--configuration-set-name ConfigSet

Lambda 함수가 성공적으로 실행되면 다음 예제와 유사한 출력이 표시됩니다.

{ "ConfigurationSet": { "Name": "ConfigSet" }, "ReputationOptions": { "ReputationMetricsEnabled": true,

371

Page 380: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드For a configuration set

"SendingEnabled": false } }

SendingEnabled의 값이 false이면 구성 세트에 대한 이메일 전송이 비활성화된 것으로, Lambda 함수가 성공적으로 실행되었음을 나타냅니다.

4. the section called “Part 4: Re-Enable Email Sending for the Configuration Set” (p. 369)의 단계를 완료하여 구성 세트에 대한 이메일 전송을 재활성화합니다.

372

Page 381: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Creating IAM Policies for Access to Amazon SES

Controlling access to Amazon SESAWS Identity and Access Management(IAM)에서 Amazon Simple Email Service(Amazon SES)를 사용하여IAM 사용자, 그룹 또는 역할이 수행할 수 있는 Amazon SES API 작업을 지정할 수 있습니다. (이 주제에서는다음과 같이 총체적으로 통칭합니다. user.) 또한 사용자가 "시작", 받는 사람 및 "경로" 주소에 사용할 수 있는 전자 메일 주소를 제어할 수 있습니다.

예를 들어, 조직의 사용자가 이메일은 보낼 수 있지만 전송 통계 확인 등의 관리 작업은 수행하지 못하도록하는 IAM 정책을 만들 수 있습니다. 또 다른 예를 들면, 사용자가 계정에서 Amazon SES를 통해 이메일을 보낼 수 있지만 특정 "From" 주소를 사용하는 경우에만 허용하는 정책을 작성할 수 있습니다.

IAM을 사용하려면 권한을 명시적으로 정의하는 문서인 IAM 정책을 정의하고 사용자에게 해당 정책을 연결합니다. IAM 정책을 생성하는 방법을 알아보려면 IAM 사용 설명서를 참조하십시오. 정책에서 설정하는 제한사항의 적용 외에는 사용자가 Amazon SES와 상호 작용하는 방법 또는 Amazon SES에서 요청을 수행하는방법이 변경되지 않습니다.

Note

또한 전송 권한 부여 정책을 사용하여 Amazon SES에 대한 액세스를 제어할 수 있습니다. IAM 정책은 개별 IAM 사용자가 수행할 수 있는 작업을 제한하지만 전송 권한 부여 정책은 확인된 개별 ID를 사용할 수 있는 방법을 제한합니다. 또한 전송 권한 부여 정책만 교차 계정 액세스 권한을 부여할 수 있습니다. 권한 부여 전송에 대한 자세한 내용은 Using sending authorization with AmazonSES (p. 144) 단원을 참조하십시오.

기존 IAM 사용자의 Amazon SES SMTP 자격 증명을 생성하는 방법에 대한 자세한 내용은 Obtaining yourAmazon SES SMTP credentials (p. 84) 단원을 참조하십시오.

Creating IAM Policies for Access to Amazon SES이 단원에서는 특히 Amazon SES에서 IAM 정책을 사용하는 방법을 설명합니다. 일반적으로 IAM 정책을 생성하는 방법을 알아보려면 IAM 사용 설명서를 참조하십시오.

다음 세 가지 이유로 Amazon SES에서 IAM을 사용할 수 있습니다.

• To restrict the email-sending action.• To restrict the "From", recipient, and "Return-Path" addresses of the emails that the user sends.• To control general aspects of API usage such as the time period during which a user is permitted to call

the APIs that they are authorized to use.

Restricting the Action사용자가 수행할 수 있는 Amazon SES 작업을 제어하려면 IAM 정책의 Action 요소를 사용합니다. 설정할수 있는 Action 요소 Amazon SES API 이름을 소문자 문자열로 사전 고정하여 API 작업 ses:. 예를 들어,Action ~ ses:SendEmail, ses:GetSendStatistics, 또는 ses:* (모든 작업).

그런 다음 Action에 따라 Resource 요소를 다음과 같이 지정합니다.

If the Action element only permits access to email-sending APIs (that is, ses:SendEmail and/orses:SendRawEmail):

• To allow the user to send from any identity in your AWS account, set Resource to *

373

Page 382: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Restricting Email Addresses

• To restrict the identities that a user is allowed to send from, set Resource to the ARNs of the identitiesthat you are permitting the user to use.

If the Action element permits access to all APIs:

• If you don't want to restrict the identities that the user can send from, set Resource to *• If you want to restrict the identities that a user is allowed to send from, you need to create two policies (or

two statements within one policy):• One with Action set to an explicit list of the permitted non-email-sending APIs and Resource set to *• One with Action set to one of the email-sending APIs (ses:SendEmail and/orses:SendRawEmail), and Resource set to the ARN(s) of the identities you are permitting the user touse.

사용할 수 있는 Amazon SES 작업의 목록은 Amazon Simple Email Service API Reference 단원을 참조하십시오. IAM 사용자가 SMTP 인터페이스를 사용할 경우 ses:SendRawEmail에 대한 액세스를 최소로 허용해야 합니다.

Restricting Email Addresses특정 이메일 주소로 사용자를 제한하려면 Condition 블록을 사용하면 됩니다. Condition 블록에서 IAM사용 설명서의 설명과 같이 조건 키를 사용하여 조건을 지정합니다. 조건 키를 사용하여 다음과 같은 이메일주소를 제어할 수 있습니다.

Note

이러한 이메일 주소 조건 키는 아래 표에 나와 있는 API에만 적용됩니다.

조건 키 설명 API

ses:Recipients To:, "CC" 및 "BCC" 주소가 포함된 수신자 주소를 제한합니다.

SendEmail, SendRawEmail

ses:FromAddress "From" 주소를 제한합니다. SendEmail, SendRawEmail,SendBounce

ses:FromDisplayName 표시 이름으로 사용된 "From" 주소를 제한합니다.

SendEmail, SendRawEmail

ses:FeedbackAddress 이메일 피드백 전달로 반송 메일과 불만 제기를 전송할 수 있는 주소인 "Return-Path" 주소를 제한합니다. 이메일 피드백 전달에 대한 자세한 내용은Amazon SES notifications sentby email (p. 248) 단원을 참조하십시오.

SendEmail, SendRawEmail

Restricting General API UsageAWS 차원 조건 키를 사용하여 사용자가 API에 액세스할 수 있는 날짜와 시간 등의 요소를 기반으로Amazon SES에 대한 액세스를 제한할 수 있습니다. Amazon SES는 다음과 같은 AWS 차원 정책 키만 구현합니다.

• aws:CurrentTime

374

Page 383: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Example IAM Policies for Amazon SES

• aws:EpochTime

• aws:SecureTransport

• aws:SourceIp

• aws:UserAgent

이 키에 대한 자세한 내용은 IAM 사용 설명서를 참조하십시오.

Example IAM Policies for Amazon SES이 주제에서는 사용자의 Amazon SES에 대한 액세스를 특정 조건에서만 허용하는 정책 예를 다룹니다.

이 단원의 정책 예:• Allowing Full Access to All Amazon SES Actions (p. 375)• Allowing Access to Email-Sending Actions Only (p. 375)• Restricting the Time Period of Sending (p. 376)• Restricting the Recipient Addresses (p. 376)• Restricting the "From" Address (p. 376)• Restricting the Display Name of the Email Sender (p. 377)• Restricting the Destination of Bounce and Complaint Feedback (p. 378)

Allowing Full Access to All Amazon SES Actions다음 정책은 사용자가 모든 Amazon SES 작업을 호출할 수 있도록 허용합니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:*" ], "Resource":"*" } ]}

Allowing Access to Email-Sending Actions Only다음 정책은 사용자가 Amazon SES를 사용하여 이메일을 전송하는 것을 허용하지만 Amazon SES 전송 통계에 액세스하는 것과 같은 관리 작업을 수행하는 것은 허용하지 않습니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ],

375

Page 384: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Restricting the Time Period of Sending

"Resource":"*" } ]}

Restricting the Time Period of Sending다음 정책은 사용자가 2018년 9월에만 Amazon SES 이메일 전송 API를 호출하도록 허용합니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "DateGreaterThan":{ "aws:CurrentTime":"2018-08-31T12:00Z" }, "DateLessThan":{ "aws:CurrentTime":"2018-10-01T12:00Z" } } } ]}

Restricting the Recipient Addresses다음 정책에 따라 사용자는 Amazon SES 전자 메일 전송 청구, 도메인의 수신자 주소 example.com.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "ForAllValues:StringLike":{ "ses:Recipients":[ "*@example.com" ] } } } ]}

Restricting the "From" Address다음 정책에 따라 사용자는 Amazon SES 이메일 전송 청구, 그러나 "시작" 주소가 [email protected].

376

Page 385: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Restricting the Display Name of the Email Sender

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "StringEquals":{ "ses:FromAddress":"[email protected]" } } } ]}

다음 정책에 따라 사용자는 sendbounce API, 그러나 "시작" 주소가 [email protected].

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendBounce" ], "Resource":"*", "Condition":{ "StringEquals":{ "ses:FromAddress":"[email protected]" } } } ]}

Restricting the Display Name of the Email Sender다음 정책에 따라 사용자는 Amazon SES 이메일 전송 청구, 그러나 "시작" 주소의 표시 이름에 포함된 경우에만 Marketing.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "StringLike":{ "ses:FromDisplayName":"Marketing" } } } ]

377

Page 386: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Restricting the Destination of

Bounce and Complaint Feedback

}

Restricting the Destination of Bounce and ComplaintFeedback다음 정책에 따라 사용자는 Amazon SES 이메일 전송 청구, 그러나 이메일의 "Return-Path"가 설정된 경우에만 [email protected].

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "StringEquals":{ "ses:FeedbackAddress":"[email protected]" } } } ]}

378

Page 387: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SES Information in CloudTrail

Logging Amazon SES API calls withAWS CloudTrail

Amazon SES는 Amazon SES에서 사용자, 역할 또는 AWS 서비스가 수행한 작업에 대한 레코드를 제공하는AWS CloudTrail 서비스와 통합됩니다. CloudTrail은 Amazon SES에 대한 API 호출을 이벤트로 캡처합니다.캡처되는 호출에는 Amazon SES 콘솔로부터의 호출과 Amazon SES API 작업에 대한 코드 호출이 포함됩니다. 추적을 생성하면 Amazon SES 이벤트를 비롯한 CloudTrail 이벤트를 Amazon S3 버킷으로 지속적으로배포할 수 있습니다. 추적을 구성하지 않은 경우 이벤트 기록에서 CloudTrail 콘솔의 최신 이벤트를 볼 수도있습니다. CloudTrail에서 수집한 정보를 사용하여 Amazon SES에 보낸 요청, 요청한 IP 주소, 요청한 사람,요청한 시간 및 추가 세부 정보를 확인할 수 있습니다.

그 구성 및 활성화 방법을 포함하여 CloudTrail에 대한 자세한 내용은 AWS CloudTrail User Guide를 참조하십시오.

Amazon SES Information in CloudTrailCloudTrail은 계정 생성 시 AWS 계정에서 활성화됩니다. 지원되는 이벤트 활동이 Amazon SES에서 이루어지면 해당 활동이 이벤트 이력의 다른 AWS 서비스 이벤트와 함께 CloudTrail 이벤트에 기록됩니다. AWS 계정에서 최신 이벤트를 확인, 검색 및 다운로드할 수 있습니다. 자세한 내용은 CloudTrail 이벤트 기록에서 이벤트 보기 단원을 참조하십시오.

Amazon SES 이벤트를 포함하여 AWS 계정에 이벤트를 지속적으로 기록하려는 경우 추적을 생성합니다. Atrail 활성화 CloudTrail 로그 파일을 Amazon S3 버킷. 콘솔에서 추적을 생성하면 기본적으로 모든 AWS 리전에 추적이 적용됩니다. 추적은 AWS 파티션에 있는 모든 리전의 이벤트를 로깅하고 지정한 Amazon S3 버킷으로 로그 파일을 전송합니다. 또는 CloudTrail 로그에서 수집된 이벤트 데이터를 추가 분석 및 처리하도록다른 AWS 서비스를 구성할 수 있습니다. 자세한 정보는 다음을 참조하십시오.

• Overview for Creating a Trail• CloudTrail Supported Services and Integrations• Configuring Amazon SNS Notifications for CloudTrail• Receiving CloudTrail Log Files from Multiple Regions and Receiving CloudTrail Log Files from Multiple

Accounts

Amazon SES는 CloudTrail 로그 파일에서 다음 작업을 이벤트로 로깅하는 작업을 지원합니다.

• CloneReceiptRuleSet• CreateReceiptFilter• CreateReceiptRule• CreateReceiptRuleSet• DeleteIdentity• DeleteIdentityPolicy• DeleteReceiptFilter• DeleteReceiptRule• DeleteReceiptRuleSet• DeleteVerifiedEmailAddress

379

Page 388: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SES Information in CloudTrail

• DescribeActiveReceiptRuleSet• DescribeReceiptRule• DescribeReceiptRuleSet• GetIdentityDkimAttributes• GetIdentityNotificationAttributes• GetIdentityPolicies• GetIdentityVerificationAttributes• GetSendQuota• GetSendStatistics• ListIdentities• ListIdentityPolicies• ListReceiptFilters• ListReceiptRuleSets• ListVerifiedEmailAddresses• PutIdentityPolicy• ReorderReceiptRuleSet• SetActiveReceiptRuleSet• SetReceiptRulePosition• SetIdentityDkimEnabled• SetIdentityFeedbackForwardingEnabled• SetIdentityHeadersInNotificationsEnabled• SetIdentityNotificationTopic• UpdateReceiptRule• VerifyDomainDkim• VerifyDomainIdentity• VerifyEmailAddress• VerifyEmailIdentity

Note

Amazon SES 제공 management events ~ CloudTrail. 관리 이벤트에는 AWS 계정 내 리소스 생성및 관리와 관련된 작업이 포함되어 있습니다. Amazon SES에서 관리 이벤트에는 자격 증명 또는 수신 규칙을 생성 및 삭제하는 등의 작업이 포함됩니다.관리 이벤트는 다음과 같습니다. data events. 데이터 이벤트는 AWS 계정. Amazon SES에서 데이터 이벤트에는 이메일 전송 등의 작업이 포함됩니다.왜냐하면 Amazon SES 관리 이벤트를 CloudTrail, 다음 이벤트 aren't 기록 CloudTrail:

• SendEmail• SendRawEmail• SendTemplatedEmail• SendBulkTemplatedEmail• SendCustomVerificationEmail

이벤트 게시를 사용하면 이메일 전송과 관련된 이벤트를 기록할 수 있습니다. 자세한 정보는Monitor email sending using Amazon SES event publishing (p. 269) 단원을 참조하십시오.

모든 이벤트 또는 로그 항목에는 요청을 생성한 사용자에 대한 정보가 들어 있습니다. 자격 증명 정보를 이용하면 다음을 쉽게 판단할 수 있습니다.

380

Page 389: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Example: Amazon SES Log File Entries

• Whether the request was made with root or AWS Identity and Access Management (IAM) usercredentials.

• Whether the request was made with temporary security credentials for a role or federated user.• Whether the request was made by another AWS service.

자세한 정보는 CloudTrail userIdentity 요소를 참조하십시오.

Example: Amazon SES Log File Entries추적은 지정한 Amazon S3 버킷에 이벤트를 로그 파일로 제공할 수 있도록 해주는 구성입니다. CloudTrail 로그 파일에는 하나 이상의 로그 항목이 포함됩니다. 이벤트는 어떤 소스로부터의 단일 요청을 나타내며 요청된 작업, 작업 날짜와 시간, 요청 파라미터 등에 대한 정보가 포함되어 있습니다. CloudTrail 로그 파일은 퍼블릭 API 호출의 주문 스택 추적이 아니므로 특정 순서로 표시되지 않습니다.

다음 예제는 DeleteIdentity 및 VerifyEmailIdentity 작업을 보여주는 CloudTrail 로그 항목입니다.

{ "Records":[ { "awsRegion":"us-west-2", "eventID":"0ffa308d-1467-4259-8be3-c749753be325", "eventName":"DeleteIdentity", "eventSource":"ses.amazonaws.com", "eventTime":"2018-02-02T21:34:50Z", "eventType":"AwsApiCall", "eventVersion":"1.02", "recipientAccountId":"111122223333", "requestID":"50b87bfe-ab23-11e4-9106-5b36376f9d12", "requestParameters":{ "identity":"amazon.com" }, "responseElements":null, "sourceIPAddress":"192.0.2.0", "userAgent":"aws-sdk-java/unknown-version", "userIdentity":{ "accessKeyId":"AKIAIOSFODNN7EXAMPLE", "accountId":"111122223333", "arn":"arn:aws:iam::111122223333:root", "principalId":"111122223333", "type":"Root" } }, { "awsRegion":"us-west-2", "eventID":"5613b0ff-d6c6-4526-9b53-a603a9231725", "eventName":"VerifyEmailIdentity", "eventSource":"ses.amazonaws.com", "eventTime":"2018-02-04T01:05:33Z", "eventType":"AwsApiCall", "eventVersion":"1.02", "recipientAccountId":"111122223333", "requestID":"eb2ff803-ac09-11e4-8ff5-a56a3119e253", "requestParameters":{ "emailAddress":"[email protected]" }, "responseElements":null, "sourceIPAddress":"192.0.2.0", "userAgent":"aws-sdk-java/unknown-version", "userIdentity":{ "accessKeyId":"AKIAIOSFODNN7EXAMPLE",

381

Page 390: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Example: Amazon SES Log File Entries

"accountId":"111122223333", "arn":"arn:aws:iam::111122223333:root", "principalId":"111122223333", "type":"Root" } } ]}

382

Page 391: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드API requests

Using the Amazon SES API세부 정보를 처리하는 상위 수준 데이터 유형 및 함수 호출로 Amazon SES API의 하위 수준 기능을 래핑하는 AWS SDK를 사용하여 Amazon SES API에 액세스할 수 있습니다. Amazon SES API에 대한 HTTPS 요청을 만들 수도 있습니다. 개별 API 작업에 대한 추가 정보는 Amazon Simple Email Service API Reference에서 확인할 수 있습니다.

이 섹션은 다음 주제를 포함합니다.• Amazon SES API requests (p. 383)• Authenticating requests to the Amazon SES API (p. 385)• GET and POST examples for the Amazon SES API (p. 386)• Amazon SES API responses (p. 387)• Error codes returned by the Amazon SES API (p. 388)

Amazon SES API requestsAmazon SES API 엔드포인트에 대한 요청을 만들어 Amazon SES API를 직접 호출할 수 있습니다. AmazonSES API에 대한 요청은 GET 또는 POST 메서드를 사용하는 단순한 HTTPS 요청입니다. API 요청에는 수행할 작업을 나타내기 위한 Action 파라미터가 포함되어야 합니다.

Important

Amazon SES는 HTTP 요청을 지원하지 않습니다. 대신 HTTPS를 사용해야 합니다.

Structure of a GET request이 가이드에서는 Amazon SES GET 요청을 URL로 표시합니다. 각 URL은 다음과 같은 요소로 구성됩니다.

• Endpoint—The resource the request is acting on. For a list of endpoint URLs for the AWS Regionswhere Amazon SES is available, see Amazon Simple Email Service (Amazon SES) in the AWS GeneralReference.

• Action—The action you want to perform on the endpoint, such as sending a message.• Parameters—Any request parameters.

다음 예제는 미국 서부(오레곤) 리전에서 Amazon SES 엔드포인트를 사용하여 메시지를 전송하는 GET 요청입니다.

https://email.us-west-2.amazonaws.com?Action=SendEmail&Source=user%40example.com&Destination.ToAddresses.member.1=allan%40example.com&Message.Subject.Data=This%20is%20the%20subject%20line.&Message.Body.Text.Data=Hello.%20I%20hope%20you%20are%20having%20a%20good%20day.

Important

GET 요청은 URL이므로 파라미터 값을 URL 인코딩해야 합니다. 예를 들어, 이전 예제에서는Source 매개 변수가 실제로 [email protected]. 그러나 "@" 문자는 URL에 허용되지 않으므로각 "@"는 URL로 인코딩됩니다.%40".

GET 예제를 보다 읽기 쉽게 만들기 위해, 이 가이드에서는 이들을 다음의 파싱된 형식으로 표시합니다.

383

Page 392: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Structure of a POST request

https://email.us-west-2.amazonaws.com?Action=SendEmail&Source=user%40example.com&Destination.ToAddresses.member.1=allan%40example.com&Message.Subject.Data=This%20is%20the%20subject%20line.&Message.Body.Text.Data=Hello.%20I%20hope%20you%20are%20having%20a%20good%20day.

첫 번째 줄은 endpoint 의 요청 엔드포인트 뒤의 물음표(?)는 엔드포인트와 파라미터를 구분합니다. 각 파라미터는 앰퍼샌드(&)로 구분됩니다.

Action 파라미터는 수행할 작업을 나타냅니다. 전체 작업 목록 및 각 작업과 함께 사용되는 파라미터는Amazon Simple Email Service API Reference 단원을 참조하십시오.

일부 작업은 파라미터의 목록을 허용합니다. 예를 들어 여러 수신자에게 이메일을 발송할 때 이메일 주소 목록을 제공할 수 있습니다. 이 유형의 목록을 param.n 표기법, n 은(는) 1부터 시작합니다. 예를 들어 첫 번째"대상:"을 지정합니다. 주소 Destination.ToAddresses.1, 두 번째는 Destination.ToAddresses.2,등.

Amazon SES에서는 어떤 파라미터 값에도 공백을 사용할 수 없습니다. 이 안내서의 예제에서는 공백을 포함하는 요청 파라미터 값이 다음 두 방식 중 하나로 표시됩니다.

• URL-encoded (as %20).• Represented by a plus sign ("+"). Within a request, a plus sign is reserved as a shorthand notation for a

space. (If you want to include a literal, uninterpreted plus sign in any parameter, you must URL-encode itas %2B.)

Note

모든 요청에는 X-Amzn-Authorization HTTP 헤더가 포함됩니다. 자세한 정보는 Authenticatingrequests to the Amazon SES API (p. 385) 단원을 참조하십시오.

Structure of a POST requestAmazon SES는 POST 요청도 수락합니다. POST 요청을 사용하면 다음 절차에 설명된 대로 파라미터를HTTP 요청 본문의 한 양식으로 전송할 수 있습니다.

POST 요청을 생성하려면

1. 파라미터 이름 및 값을 한 양식으로 수집합니다.

GET 요청과 마찬가지로 파라미터 및 값을 넣습니다(각 이름-값 쌍을 앰퍼샌드로 구분). 다음 예제는SendEmail 요청입니다. 여기에는 이 가이드에서 정보를 보다 쉽게 읽을 수 있도록 하기 위해 사용되는줄바꿈이 포함되어 있습니다.

Action=SendEmail&[email protected]&[email protected]&Message.Subject.Data=This is the subject line.&Message.Body.Text.Data=Hello. I hope you are having a good day.

2. HTML 사양의 양식 제출 섹션에 따라 양식을 양식 URL로 인코딩합니다.

자세한 내용은 http://www.w3.org/MarkUp/html-spec/html-spec_toc.html#SEC8.2.1을 참조하십시오.

Action=SendEmail&Source=user%40example.com&Destination.ToAddresses.member.1=allan%40example.com&Message.Subject.Data=This%20is%20the%20subject%20line.

384

Page 393: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Request authentication

&Message.Body.Text.Data=Hello.%20I%20hope%20you%20are%20having%20a%20good%20day.

3. 생성된 양식을 POST 요청의 본문으로 제공합니다.4. 요청에 다음 HTTP 헤더를 포함시킵니다.

• Content-Type, with the value set to application/x-www-form-urlencoded• Content-Length

• Date

• Authorization (For more information, see Authenticating requests to the Amazon SESAPI (p. 385).)

5. 완성된 요청을 전송합니다.

POST / HTTP/1.1Date: Thu, 26 May 2011 06:49:50 GMTHost: email.us-west-2.amazonaws.comContent-Type: application/x-www-form-urlencodedAuthorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE,SignedHeaders=Date;x-amz-date,Signature=9d63c3b5b7623d1fa3dc7fd1547313b9546c6d0fbbb6773a420613b7EXAMPLEContent-Length: 230

Action=SendEmail&Source=user%40example.com&Destination.ToAddresses.member.1=allan%40example.com&Message.Subject.Data=This%20is%20the%20subject%20line.&Message.Body.Text.Data=Hello.%20I%20hope%20you%20are%20having%20a%20good%20day.

Note

일반적으로 HTTP 클라이언트가 자체적으로 사용하는 HTTP의 버전에 따라 필요한 다른 항목을HTTP 요청에 추가합니다. 이 가이드의 예제에서는 추가 항목이 포함되어 있지 않습니다.

Authenticating requests to the Amazon SES APIAmazon SES API에 액세스할 때는 AWS Signature를 사용하여 요청을 인증합니다. 요청에 유효한 서명이포함되지 않은 경우 Amazon SES는 오류를 반환하고 요청을 처리하지 않습니다.

서명에 대한 자세한 정보 AWS 요청, 참조 서명 AWS 요청 in the AWS General Reference.Important

2020년 10월 1일부터 Amazon SES는 Signature 버전 4를 사용하여 서명된 요청만 지원합니다. 이전 버전의 AWS Signature를 사용하고 있는 경우 이 날짜 이전에 AWS Signature 버전 4를 도입해야합니다.

Authentication errors이메일을 보내려고 할 때 요청에 이전 버전의 AWS Signature가 사용된 경우 다음 예와 비슷한 오류 메시지가 표시됩니다.

<ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/"> <Error> <Type>Sender</Type> <Code>InvalidClientTokenId</Code> <Message>The security token included in the request is invalid</Message> </Error>

385

Page 394: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드GET and POST examples

</ErrorResponse>

이전 버전의 AWS SDK 또는 AWS CLI를 사용하는 경우 이 오류가 나타날 수 있습니다. 또한 이전 버전의AWS Signature를 사용하는 Amazon SES API에 직접 HTTPS 요청을 하는 경우에도 이 오류가 표시될 수 있습니다.

이 오류 메시지가 나타나면 AWS Signature 버전 4를 사용하도록 요청을 업데이트해야 합니다.

Migrating to the AWS Signature Version 4AWS SDK 또는 AWS CLI를 사용하는 경우 최신 버전의 SDK 또는 AWS CLI로 업데이트해야 합니다.Amazon SES API에 직접 HTTPS 요청을 하는 경우 AWS Signature 버전 4를 사용하도록 요청의 헤더를 업데이트합니다. 요청 헤더를 보면 이전 버전의 AWS Signature를 사용하는 API 요청을 쉽게 식별할 수 있습니다. 예를 들어, AWS Signature 버전 3을 사용하는 요청은 다음 예와 비슷하게 나타납니다.

X-Amzn-Authorization: AWS3-HTTPS AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE,Algorithm=HMACSHA256,Signature=lBP67vCvGl ...

AWS Signature 버전 4를 사용하는 요청에는 다음 정보가 포함된 Authorization 헤더가 있습니다.

• The algorithm you used for signing (AWS4-HMAC-SHA256)• The credential scope (with your access key ID)• A list of signed headers• The calculated signature. The signature is based on your request information, and you use your AWS

secret access key to produce the signature. The signature confirms your identity to AWS.

Amazon SES API requests (p. 383)에서 AWS Signature 버전 4를 사용하는 Amazon SES API 호출의 예를 찾을 수 있습니다. 사용에 대한 자세한 내용은 AWS 서명 버전 4, 참조 서명 버전 4 서명 프로세스 in theAWS General Reference.

GET and POST examples for the Amazon SES API이 섹션에는 Amazon SES API에 대해 발행할 수 있는 요청의 예제가 포함되어 있습니다.

Example GET request다음 코드는 GET 요청의 예제입니다. 계산된 서명이 포함되어 있습니다. 요청의 모든 파라미터는 URL로 인코딩됩니다.

https://email.us-west-2.amazonaws.com/?Action=SendEmail&Source=user%40example.com&Destination.ToAddresses.member.1=allan%40example.com&Message.Subject.Data=This%20is%20the%20subject%20line.&Message.Body.Text.Data=Hello.%20I%20hope%20you%20are%20having%20a%20good%20day.&AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Signature=RhU864jFu893mg7g9N9j9nr6h7EXAMPLE&Algorithm=HMACSHA256

Example POST request다음 코드는 POST 요청의 예제입니다. 계산된 서명이 포함되어 있습니다. 요청의 모든 파라미터는 URL로인코딩됩니다.

386

Page 395: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드API responses

POST / HTTP/1.1Host: email.us-west-2.amazonaws.comContent-Type: application/x-www-form-urlencodedDate: Tue, 25 May 2010 21:20:27 +0000Content-Length: 174

Action=SendRawEmail&Destinations.member.1=allan%40example.com&RawMessage.Data=RnJvbTp1c2VyQGV4YW1wbGUuY29tDQpTdWJqZWN0OiBUZXN0DQoNCk1lc3 ...

RawMessage.Data의 값은 다음 텍스트의 base64 인코딩 표시입니다.

From:[email protected]: Test

Message sent using SendRawEmail.

다음은 SendRawEmail 운영자에 대한 전체 POST 요청입니다. 요청에는 X-Amzn-Authorization 헤더가 포함됩니다. 헤더는 URL로 인코딩되지 않습니다.

POST / HTTP/1.1Host: email.us-west-2.amazonaws.comContent-Type: application/x-www-form-urlencodedDate: Tue, 25 May 2010 21:20:27 +0000Content-Length: 174X-Amzn-Authorization: AWS3-HTTPS AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE,Algorithm=HMACSHA256,Signature=lBP67vCvGl ...

Action=SendRawEmail&Destinations.member.1=allan%40example.com&RawMessage.Data=RnJvbTp1c2VyQGV4YW1wbGUuY29tDQpTdWJqZWN0OiBUZXN0DQoNCk1lc3 ...

Amazon SES API responsesAPI 요청에 대한 응답으로 Amazon SES는 요청 결과를 포함하는 XML 데이터 구조를 반환합니다.

모든 Amazon SES 응답에는 RequestId 요소에 요청 ID가 포함되어 있습니다. 이 값은 AWS에서 할당하는고유한 문자열입니다. 특정 요청에 문제가 있는 경우, AWS에서 요청 ID를 요청하여 문제 해결을 돕습니다.

또한 성공적인 Amazon SES 응답에는 하나 이상의 메시지 ID가 포함되어 있습니다. 메시지 ID를 AmazonSES에서 보내는 이메일 메시지에 대한 수신 확인으로 간주할 수 있습니다. 메시지가 거부되거나 반송되면,수신하는 수신 거부 또는 반송 메일 알림에 메시지 ID가 표시됩니다. 그러면 이 메시지 ID를 사용하여 전송한문제의 이메일 메시지를 확인하고 올바른 조치를 취할 수 있습니다.

Structure of a successful response요청이 성공하면 주 응답 요소는 작업의 이름을 따서 이름이 지정되고 "Response"가 추가됩니다. 예를 들어,SendEmailResponse는 성공한 SendEmail 요청에 대해 반환된 응답 요소입니다. 이 요소에는 다음과 같은 하위 요소가 포함되어 있습니다.

• ResponseMetadata, which contains the RequestId child element.• An optional element containing action-specific results. For example, the SendEmailResponse element

includes an element called SendEmailResult.

XML 스키마는 각 Amazon SES 작업에 대한 XML 응답 메시지를 설명합니다.

387

Page 396: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Structure of an Amazon SES API error response

다음은 성공적인 응답의 예입니다.

<SendEmailResponse xmlns="https://email.amazonaws.com/doc/2010-03-31/"> <SendEmailResult> <MessageId>000001271b15238a-fd3ae762-2563-11df-8cd4-6d4e828a9ae8-000000</MessageId> </SendEmailResult> <ResponseMetadata> <RequestId>fd3ae762-2563-11df-8cd4-6d4e828a9ae8</RequestId> </ResponseMetadata></SendEmailResponse>

Structure of an Amazon SES API error response요청이 실패한 경우 호출한 작업에 상관없이 주 응답 요소를 ErrorResponse라고 합니다. 이 요소에는Error 요소와 RequestId 요소가 포함되어 있습니다. 각 Error는 다음을 포함합니다.

• A Type element that identifies whether the error was a receiver or sender error• A Code element that identifies the type of error that occurred• A Message element that describes the error condition in a human-readable form• A Detail element that might give additional details about the error or might be empty

다음은 오류 응답의 예입니다.

<ErrorResponse> <Error> <Type> Sender </Type> <Code> ValidationError </Code> <Message> Value null at 'message.subject' failed to satisfy constraint: Member must not be null </Message> </Error> <RequestId> 42d59b56-7407-4c4a-be0f-4c88daeea257 </RequestId></ErrorResponse>

Error codes returned by the Amazon SES API이 주제에는 Amazon SES API가 반환하는 오류 코드의 목록이 포함되어 있습니다. Amazon SES API에 대한 자세한 내용은 Amazon Simple Email Service API Reference를 참조하십시오.

5xx 오류가 수신되는 HTTPS 요청을 재시도해야 합니다. 이 경우 중복 생성 가능성을 줄이려면 시간 초과가연이어 발생할 때마다 점진적으로 더 오래 대기한 후(5, 10, 30초) 지수 재시도 방법을 구현하는 것이 좋습니다. 세 번째 재시도 호출이 실패하면 20분 후 다시 처음부터 재시도를 수행하십시오. Amazon SES에서 지수재시도 정책을 사용하는 구현 예제는 Amazon SES 블로그의 "조절 - 최대 송신률 초과" 오류를 처리하는 방법을 참조하십시오.

Note

AWS SDK는 재시도 로직을 자동으로 구현합니다.

388

Page 397: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드API error codes

HTTPS 클라이언트 오류(4xx)가 발생할 경우 다시 시도하기 전에 요청을 수정하여 문제를 해결해야 합니다.예를 들어, AWS 인증 자격 증명이 잘못된 경우 이메일을 다시 전송하기 전에 설정을 업데이트하여 적절한자격 증명을 사용해야 합니다.

오류 설명 HTTPS 상태 코드 이 코드를 반환하는 작업

ConfigurationSetDoesNotExist지정된 구성 세트가 존재하지 않습니다. 구성세트는 이메일 전송 이벤트를 게시하는 데 사용하는 선택적 파라미터입니다. 자세한 정보는Monitor email sendingusing Amazon SESevent publishing (p. 269)단원을 참조하십시오.

400 SendEmail,SendRawEmail

IncompleteSignature 요청 서명이 AWS 표준을 준수하지 않습니다.

400 모두

InternalFailure 알 수 없는 오류, 예외 또는 장애 때문에 요청 처리가 실패했습니다.

500개 전체

InvalidAction 요청된 동작 또는 작업이유효하지 않습니다. 작업을 올바로 입력했는지 확인합니다.

400 모두

InvalidClientTokenId 제공된 X.509 인증서 또는 AWS 액세스 키 ID가AWS의 레코드에 존재하지 않습니다.

403 전체

InvalidParameterCombination함께 사용할 수 없는 파라미터가 함께 사용되었습니다.

400 모두

InvalidParameterValue 입력 파라미터로 잘못된값 또는 범위를 벗어나는값이 제공되었습니다.

400 모두

InvalidQueryParameter AWS 쿼리 문자열이 잘못된 양식이거나 AWS표준을 준수하지 않습니다.

400 모두

MailFromDomainNotVerifiedAmazon SES가 지정된MAIL FROM 도메인을사용하는 데 필요한 MX레코드를 읽을 수 없어메시지가 전송되지 않았습니다.

400 SendEmail,SendRawEmail

MalformedQueryString 쿼리 문자열에 구문 오류가 있습니다.

404 전체

MessageRejected 작업이 실패하고 메시지를 전송하지 못했음을 나

400 SendEmail,SendRawEmail

389

Page 398: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드API error codes

오류 설명 HTTPS 상태 코드 이 코드를 반환하는 작업타냅니다. 오류 스택에서오류 원인에 대한 설명이있는지 확인합니다. 이오류를 유발할 수 있는문제에 대한 자세한 내용은 Amazon SES emailsending errors (p. 450)단원을 참조하십시오.

MissingAction 요청에서 작업 또는 필요한 파라미터가 누락되었습니다.

400 모두

MissingAuthenticationToken요청은 유효한(등록된)AWS 액세스 키 ID 또는X.509 인증서를 포함해야 합니다.

403 전체

MissingParameter 지정된 작업에 필요한 파라미터가 제공되지 않았습니다.

400 모두

OptInRequired AWS 액세스 키 ID는 서비스에 대한 구독이 필요합니다.

403 전체

RequestExpired 요청이 요청상의 날짜 스탬프로부터 15분 이상,또는 요청 만료 날짜(예:미리 서명된 URL)로부터15분 이상 경과한 후 서비스에 도달했거나, 요청상의 날짜 스탬프가 15분이상 미래입니다.

400 모두

ServiceUnavailable 요청이 서버의 일시정적장애 때문에 실패했습니다.

503 전체

Throttling 요청 제한 때문에 요청이거부되었습니다.

400 모두

390

Page 399: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using AWS SDKs

Amazon SES code examples이 단원에는 처음에 Amazon SES를 사용하여 이메일을 보내거나 Amazon SES 계정을 관리하는 데 도움이될 수 있는 코드 예제가 포함되어 있습니다. 코드 예는 다음 언어로 제공됩니다. C#, 이동, 자바, 필리핀, 파이톤, 그리고 루비.

다음 링크 중 하나를 선택하면 해당 작업의 코드 예제를 볼 수 있습니다.• Sending email using AWS SDKs (p. 391)• Sending email using the Amazon SES SMTP Interface (p. 404)• Sending raw email using AWS SDKs (p. 417)• Verify multiple email addresses (p. 425)• 이메일 ID 복제 AWS 지역 (p. 426)

Sending email using AWS SDKsAWS SDK에는 Amazon SES를 비롯한 몇 가지 다른 AWS 서비스와 상호 작용할 수 있는 메서드가 기본적으로 포함되어 있습니다. 따라서 Amazon SES를 다른 AWS 서비스와 사용할 계획이라면 SDK 사용을 권장합니다. AWS SDK에 대해 자세히 알아보려면 Amazon Web Services 도구를 참조하십시오.

이 단원에서는 Amazon SES에서 AWS SDK를 사용하여 이메일을 전송하는 프로세스를 보여주는 몇 가지 프로그래밍 언어의 코드 예제를 찾아볼 수 있습니다.

C#

다음 코드 예제는 Amazon SES에서 .NET용 AWS SDK를 사용하여 이메일을 전송할 수 있는 완전한솔루션입니다. 이 코드 예시에서는 사용자가 .NET용 AWS SDK를 설치했고, 공유 자격 증명 파일을 생성했다고 가정합니다. 공유 자격 증명 파일의 생성에 대한 자세한 내용은 Create a shared credentialsfile (p. 29) 단원을 참조하십시오.

Important

공유 자격 증명 파일을 사용하여 AWS 액세스 키 ID 및 보안 액세스 키를 전달합니다. 공유 자격 증명 파일을 사용하는 대신, SDK 스토어에서 AWS 액세스 키 ID 및 보안 액세스 키를 지정할 수 있습니다. 자세한 내용은 .NET용 AWS SDK Developer Guide의 AWS 자격 증명 구성을참조하십시오. 다음 예시는 이러한 메서드 중 하나를 사용하여 자격 증명을 지정하지 않으면 작동하지 않습니다.

using Amazon;using System;using System.Collections.Generic;using Amazon.SimpleEmail;using Amazon.SimpleEmail.Model;

namespace AmazonSESSample { class Program { // Replace [email protected] with your "From" address.

391

Page 400: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using AWS SDKs

// This address must be verified with Amazon SES. static readonly string senderAddress = "[email protected]";

// Replace [email protected] with a "To" address. If your account // is still in the sandbox, this address must be verified. static readonly string receiverAddress = "[email protected]";

// The configuration set to use for this email. If you do not want to use a // configuration set, comment out the following property and the // ConfigurationSetName = configSet argument below. static readonly string configSet = "ConfigSet";

// The subject line for the email. static readonly string subject = "Amazon SES test (.NET개 AWS SDK)";

// The email body for recipients with non-HTML email clients. static readonly string textBody = "Amazon SES Test (.NET)\r\n" + "This email was sent through Amazon SES " + "using the .NET개 AWS SDK."; // The HTML body of the email. static readonly string htmlBody = @"<html><head></head><body> <h1>Amazon SES Test (.NET개 AWS SDK)</h1> <p>This email was sent with <a href='https://aws.amazon.com/ses/'>Amazon SES</a> using the <a href='https://aws.amazon.com/sdk-for-net/'> .NET개 AWS SDK</a>.</p></body></html>";

static void Main(string[] args) { // Replace USWest2 with the AWS Region you're using for Amazon SES. // Acceptable values are EUWest1, USEast1, and USWest2. using (var client = new AmazonSimpleEmailServiceClient(RegionEndpoint.USWest2)) { var sendRequest = new SendEmailRequest { Source = senderAddress, Destination = new Destination { ToAddresses = new List<string> { receiverAddress } }, Message = new Message { Subject = new Content(subject), Body = new Body { Html = new Content { Charset = "UTF-8", Data = htmlBody }, Text = new Content { Charset = "UTF-8", Data = textBody } } }, // If you are not using a configuration set, comment // or remove the following line

392

Page 401: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using AWS SDKs

ConfigurationSetName = configSet }; try { Console.WriteLine("Sending email using Amazon SES..."); var response = client.SendEmail(sendRequest); Console.WriteLine("The email was sent successfully."); } catch (Exception ex) { Console.WriteLine("The email was not sent."); Console.WriteLine("Error message: " + ex.Message);

} }

Console.Write("Press any key to continue..."); Console.ReadKey(); } }}

Go

다음 코드 예제는 Amazon SES에서 Go용 AWS SDK를 사용하여 이메일을 전송할 수 있는 완전한 솔루션입니다. 단, 이 코드 예제는 Go용 AWS SDK이 설치되어 있고 공유 자격 증명 파일이 생성되어 있다는가정을 전제로 합니다. 공유 자격 증명 파일의 생성에 대한 자세한 내용은 Create a shared credentialsfile (p. 29) 단원을 참조하십시오.

Important

공유 자격 증명 파일을 사용하여 AWS 액세스 키 ID 및 보안 액세스 키를 전달합니다. 공유 자격 증명 파일을 사용하는 대신, 두 가지 환경 변수(각각 AWS_ACCESS_KEY_ID 및AWS_SECRET_ACCESS_KEY)를 설정하여 AWS 액세스 키 ID 및 보안 액세스 키를 지정할 수 있습니다. 다음 예시는 이러한 메서드 중 하나를 사용하여 자격 증명을 지정하지 않으면 작동하지않습니다.

package main

import ( "fmt" //go get -u github.com/aws/aws-sdk-go "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/ses" "github.com/aws/aws-sdk-go/aws/awserr")

const ( // Replace [email protected] with your "From" address. // This address must be verified with Amazon SES. Sender = "[email protected]" // Replace [email protected] with a "To" address. If your account // is still in the sandbox, this address must be verified. Recipient = "[email protected]"

// Specify a configuration set. If you do not want to use a configuration // set, comment out the following constant and the // ConfigurationSetName: aws.String(ConfigurationSet) argument below ConfigurationSet = "ConfigSet"

393

Page 402: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using AWS SDKs

// Replace us-west-2 with the AWS Region you're using for Amazon SES. AwsRegion = "us-west-2" // The subject line for the email. Subject = "Amazon SES Test (Go개 AWS SDK)" // The HTML body for the email. HtmlBody = "<h1>Amazon SES Test Email (Go개 AWS SDK)</h1><p>This email was sent with " + "<a href='https://aws.amazon.com/ses/'>Amazon SES</a> using the " + "<a href='https://aws.amazon.com/sdk-for-go/'>Go개 AWS SDK</a>.</p>" //The email body for recipients with non-HTML email clients. TextBody = "This email was sent with Amazon SES using the Go개 AWS SDK." // The character encoding for the email. CharSet = "UTF-8")

func main() { // Create a new session and specify an AWS Region. sess, err := session.NewSession(&aws.Config{ Region:aws.String(AwsRegion)}, ) // Create an SES client in the session. svc := ses.New(sess) // Assemble the email. input := &ses.SendEmailInput{ Destination: &ses.Destination{ CcAddresses: []*string{ }, ToAddresses: []*string{ aws.String(Recipient), }, }, Message: &ses.Message{ Body: &ses.Body{ Html: &ses.Content{ Charset: aws.String(CharSet), Data: aws.String(HtmlBody), }, Text: &ses.Content{ Charset: aws.String(CharSet), Data: aws.String(TextBody), }, }, Subject: &ses.Content{ Charset: aws.String(CharSet), Data: aws.String(Subject), }, }, Source: aws.String(Sender), // Comment or remove the following line if you are not using a configuration set ConfigurationSetName: aws.String(ConfigurationSet), }

// Attempt to send the email. result, err := svc.SendEmail(input) // Display error messages if they occur. if err != nil { if aerr, ok := err.(awserr.Error); ok {

394

Page 403: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using AWS SDKs

switch aerr.Code() { case ses.ErrCodeMessageRejected: fmt.Println(ses.ErrCodeMessageRejected, aerr.Error()) case ses.ErrCodeMailFromDomainNotVerifiedException: fmt.Println(ses.ErrCodeMailFromDomainNotVerifiedException, aerr.Error()) case ses.ErrCodeConfigurationSetDoesNotExistException: fmt.Println(ses.ErrCodeConfigurationSetDoesNotExistException, aerr.Error()) default: fmt.Println(aerr.Error()) } } else { // Print the error, cast err to awserr.Error to get the Code and // Message from an error. fmt.Println(err.Error()) } return } fmt.Println("Email Sent!") fmt.Println(result)}

Java SDK v1

다음 코드 예제는 Amazon SES에서 AWS SDK for Java를 사용하여 이메일을 전송할 수 있는 완전한솔루션입니다. 단, 이 코드 예제는 AWS SDK for Java이 설치되어 있고 공유 자격 증명 파일이 생성되어 있다는 가정을 전제로 합니다. 공유 자격 증명 파일의 생성에 대한 자세한 내용은 Create a sharedcredentials file (p. 29) 단원을 참조하십시오.

package com.amazonaws.samples;

import java.io.IOException;

import com.amazonaws.regions.Regions;import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder;import com.amazonaws.services.simpleemail.model.Body;import com.amazonaws.services.simpleemail.model.Content;import com.amazonaws.services.simpleemail.model.Destination;import com.amazonaws.services.simpleemail.model.Message;import com.amazonaws.services.simpleemail.model.SendEmailRequest;

public class AmazonSESSample {

// Replace [email protected] with your "From" address. // This address must be verified with Amazon SES. static final String FROM = "[email protected]";

// Replace [email protected] with a "To" address. If your account // is still in the sandbox, this address must be verified. static final String TO = "[email protected]";

// The configuration set to use for this email. If you do not want to use a // configuration set, comment the following variable and the // .withConfigurationSetName(CONFIGSET); argument below. static final String CONFIGSET = "ConfigSet";

// The subject line for the email. static final String SUBJECT = "Amazon SES test (AWS SDK for Java)"; // The HTML body for the email. static final String HTMLBODY = "<h1>Amazon SES test (AWS SDK for Java)</h1>"

395

Page 404: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using AWS SDKs

+ "<p>This email was sent with <a href='https://aws.amazon.com/ses/'>" + "Amazon SES</a> using the <a href='https://aws.amazon.com/sdk-for-java/'>" + "AWS SDK for Java</a>";

// The email body for recipients with non-HTML email clients. static final String TEXTBODY = "This email was sent through Amazon SES " + "using the AWS SDK for Java.";

public static void main(String[] args) throws IOException {

try { AmazonSimpleEmailService client = AmazonSimpleEmailServiceClientBuilder.standard() // Replace US_WEST_2 with the AWS Region you're using for // Amazon SES. .withRegion(Regions.US_WEST_2).build(); SendEmailRequest request = new SendEmailRequest() .withDestination( new Destination().withToAddresses(TO)) .withMessage(new Message() .withBody(new Body() .withHtml(new Content() .withCharset("UTF-8").withData(HTMLBODY)) .withText(new Content() .withCharset("UTF-8").withData(TEXTBODY))) .withSubject(new Content() .withCharset("UTF-8").withData(SUBJECT))) .withSource(FROM) // Comment or remove the next line if you are not using a // configuration set .withConfigurationSetName(CONFIGSET); client.sendEmail(request); System.out.println("Email sent!"); } catch (Exception ex) { System.out.println("The email was not sent. Error message: " + ex.getMessage()); } }}

Java SDK v2

다음 코드 예는 Amazon SES에서 Java 2.x용 AWS SDK 및 JavaMail API를 사용하여 이메일을 전송할수 있는 완전한 솔루션입니다. 단, 이 코드 예제는 Java 2.x용 SDK이 설치되어 있고 공유 자격 증명 파일이 생성되어 있다는 가정을 전제로 합니다. 공유 자격 증명 파일의 생성에 대한 자세한 내용은 Create ashared credentials file (p. 29) 단원을 참조하십시오.

package com.example.ses;

import software.amazon.awssdk.core.exception.SdkException;import software.amazon.awssdk.regions.Region;import software.amazon.awssdk.services.ses.SesClient;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Session;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import javax.mail.internet.MimeBodyPart;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.nio.ByteBuffer;import java.util.Properties;

396

Page 405: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using AWS SDKs

import software.amazon.awssdk.core.SdkBytes;import software.amazon.awssdk.services.ses.model.SendRawEmailRequest;import software.amazon.awssdk.services.ses.model.RawMessage;

public class SendMessage {

// This value is set as an input parameter private static String SENDER = "";

// This value is set as an input parameter private static String RECIPIENT = "";

// This value is set as an input parameter private static String SUBJECT = "";

// The email body for recipients with non-HTML email clients private static String BODY_TEXT = "Hello,\r\n" + "Here is a list of customers to contact.";

// The HTML body of the email private static String BODY_HTML = "<html>" + "<head></head>" + "<body>" + "<h1>Hello!</h1>" + "<p>Here is a list of customers to contact.</p>" + "</body>" + "</html>";

public static void main(String[] args) throws IOException {

if (args.length < 3) { System.out.println("Please specify a sender email address, a recipient email address, and a subject line"); System.exit(1); }

SENDER = args[0]; RECIPIENT = args[1]; SUBJECT = args[2];

try { send();

} catch (IOException | MessagingException e) { e.getStackTrace(); } }

public static void send() throws AddressException, MessagingException, IOException {

Session session = Session.getDefaultInstance(new Properties());

// Create a new MimeMessage object MimeMessage message = new MimeMessage(session);

// Add subject, from and to lines message.setSubject(SUBJECT, "UTF-8"); message.setFrom(new InternetAddress(SENDER)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(RECIPIENT));

// Create a multipart/alternative child container MimeMultipart msgBody = new MimeMultipart("alternative");

// Create a wrapper for the HTML and text parts MimeBodyPart wrap = new MimeBodyPart();

397

Page 406: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using AWS SDKs

// Define the text part MimeBodyPart textPart = new MimeBodyPart(); textPart.setContent(BODY_TEXT, "text/plain; charset=UTF-8");

// Define the HTML part MimeBodyPart htmlPart = new MimeBodyPart(); htmlPart.setContent(BODY_HTML, "text/html; charset=UTF-8");

// Add the text and HTML parts to the child container msgBody.addBodyPart(textPart); msgBody.addBodyPart(htmlPart);

// Add the child container to the wrapper object wrap.setContent(msgBody);

// Create a multipart/mixed parent container MimeMultipart msg = new MimeMultipart("mixed");

// Add the parent container to the message message.setContent(msg);

// Add the multipart/alternative part to the message msg.addBodyPart(wrap);

try { System.out.println("Attempting to send an email through Amazon SES " + "using the AWS SDK for Java...");

Region region = Region.US_WEST_2;

SesClient client = SesClient.builder().region(region).build();

ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); message.writeTo(outputStream);

ByteBuffer buf = ByteBuffer.wrap(outputStream.toByteArray());

byte[] arr = new byte[buf.remaining()]; buf.get(arr);

SdkBytes data = SdkBytes.fromByteArray(arr);

RawMessage rawMessage = RawMessage.builder() .data(data) .build();

SendRawEmailRequest rawEmailRequest = SendRawEmailRequest.builder() .rawMessage(rawMessage) .build();

client.sendRawEmail(rawEmailRequest);

} catch (SdkException e) { e.getStackTrace(); } }}

JavaScript

다음 코드 예제는 Amazon SES에서 AWS SDK for JavaScript in Node.js를 사용하여 이메일을 전송할수 있는 완전한 솔루션입니다. 이 코드 예제에서는 Node.js의 JavaScript용 SDK가 설치되어 있다고 가

398

Page 407: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using AWS SDKs

정합니다. AWS 액세스 키 ID, 보안 액세스 키, 원하는 AWS 리전이 들어 있는 구성 파일도 생성해야 합니다. 이 파일 생성에 대한 자세한 내용은 JSON 파일에서 Node.js의 자격 증명 로드를 참조하십시오.

Important

공유 자격 증명 파일을 사용하여 AWS 액세스 키 ID 및 보안 액세스 키를 전달합니다. 공유 자격 증명 파일을 사용하는 대신, 두 가지 환경 변수(각각 AWS_ACCESS_KEY_ID 및AWS_SECRET_ACCESS_KEY)를 설정하여 AWS 액세스 키 ID 및 보안 액세스 키를 지정할 수 있습니다. 다음 예시는 이러한 메서드 중 하나를 사용하여 자격 증명을 지정하지 않으면 작동하지않습니다.

'use strict';

var aws = require('aws-sdk');

// Provide the full path to your config.json file. aws.config.loadFromPath('./config.json');

// Replace [email protected] with your "From" address.// This address must be verified with Amazon SES.const sender = "Sender Name <[email protected]>";

// Replace [email protected] with a "To" address. If your account // is still in the sandbox, this address must be verified.const recipient = "[email protected]";

// Specify a configuration set. If you do not want to use a configuration// set, comment the following variable, and the // ConfigurationSetName : configuration_set argument below.const configuration_set = "ConfigSet";

// The subject line for the email.const subject = "Amazon SES Test (AWS SDK for JavaScript in Node.js)";

// The email body for recipients with non-HTML email clients.const body_text = "Amazon SES Test (Node.js개 JavaScript개 SDK)\r\n" + "This email was sent with Amazon SES using the " + "AWS SDK for JavaScript in Node.js."; // The HTML body of the email.const body_html = `<html><head></head><body> <h1>Amazon SES Test (Node.js개 JavaScript개 SDK)</h1> <p>This email was sent with <a href='https://aws.amazon.com/ses/'>Amazon SES</a> using the <a href='https://aws.amazon.com/sdk-for-node-js/'> AWS SDK for JavaScript in Node.js</a>.</p></body></html>`;

// The character encoding for the email.const charset = "UTF-8";

// Create a new SES object. var ses = new aws.SES();

// Specify the parameters to pass to the API.var params = { Source: sender, Destination: { ToAddresses: [ recipient ],

399

Page 408: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using AWS SDKs

}, Message: { Subject: { Data: subject, Charset: charset }, Body: { Text: { Data: body_text, Charset: charset }, Html: { Data: body_html, Charset: charset } } }, ConfigurationSetName: configuration_set};

//Try to send the email.ses.sendEmail(params, function(err, data) { // If something goes wrong, print an error message. if(err) { console.log(err.message); } else { console.log("Email sent! Message ID: ", data.MessageId); }});

PHP

다음 코드 예제는 Amazon SES에서 PHP용 AWS SDK를 사용하여 이메일을 전송할 수 있는 완전한솔루션입니다. 단, 이 코드 예제는 PHP용 AWS SDK이 설치되어 있고 공유 자격 증명 파일이 생성되어 있다는 가정을 전제로 합니다. 공유 자격 증명 파일의 생성에 대한 자세한 내용은 Create a sharedcredentials file (p. 29) 단원을 참조하십시오.

Important

공유 자격 증명 파일을 사용하여 AWS 액세스 키 ID 및 보안 액세스 키를 전달합니다. 공유 자격 증명 파일을 사용하는 대신, 두 가지 환경 변수(각각 AWS_ACCESS_KEY_ID 및AWS_SECRET_ACCESS_KEY)를 설정하여 AWS 액세스 키 ID 및 보안 액세스 키를 지정할 수 있습니다. 다음 예시는 이러한 메서드 중 하나를 사용하여 자격 증명을 지정하지 않으면 작동하지않습니다.

<?php

// If necessary, modify the path in the require statement below to refer to the // location of your Composer autoload.php file.require 'vendor/autoload.php';

use Aws\Ses\SesClient;use Aws\Exception\AwsException;

// Create an SesClient. Change the value of the region parameter if you're // using an AWS Region other than 개개 개개(개개개). Change the value of the// profile parameter if you want to use a profile in your credentials file// other than the default.$SesClient = new SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-west-2']);

400

Page 409: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using AWS SDKs

// Replace [email protected] with your "From" address.// This address must be verified with Amazon SES.$sender_email = '[email protected]';

// Replace these sample addresses with the addresses of your recipients. If// your account is still in the sandbox, these addresses must be verified.$recipient_emails = ['[email protected]','[email protected]'];

// Specify a configuration set. If you do not want to use a configuration// set, comment the following variable, and the// 'ConfigurationSetName' => $configuration_set argument below.$configuration_set = 'ConfigSet';

$subject = 'Amazon SES test (PHP개 AWS SDK)';$plaintext_body = 'This email was sent with Amazon SES using the AWS SDK for PHP.' ;$html_body = '<h1>AWS Amazon Simple Email Service Test Email</h1>'. '<p>This email was sent with <a href="https://aws.amazon.com/ses/">'. 'Amazon SES</a> using the <a href="https://aws.amazon.com/sdk-for-php/">'. 'PHP개 AWS SDK</a>.</p>';$char_set = 'UTF-8';

try { $result = $SesClient->sendEmail([ 'Destination' => [ 'ToAddresses' => $recipient_emails, ], 'ReplyToAddresses' => [$sender_email], 'Source' => $sender_email, 'Message' => [ 'Body' => [ 'Html' => [ 'Charset' => $char_set, 'Data' => $html_body, ], 'Text' => [ 'Charset' => $char_set, 'Data' => $plaintext_body, ], ], 'Subject' => [ 'Charset' => $char_set, 'Data' => $subject, ], ], // If you aren't using a configuration set, comment or delete the // following line 'ConfigurationSetName' => $configuration_set, ]); $messageId = $result['MessageId']; echo("Email sent! Message ID: $messageId"."\n");} catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo("The email was not sent. Error message: ".$e->getAwsErrorMessage()."\n"); echo "\n";}

Python

다음 코드 예제는 Amazon SES에서 AWS SDK for Python (Boto)를 사용하여 이메일을 전송할 수 있는완전한 솔루션입니다. 단, 이 코드 예제는 AWS SDK for Python (Boto)이 설치되어 있고 공유 자격 증명 파일이 생성되어 있다는 가정을 전제로 합니다. 공유 자격 증명 파일의 생성에 대한 자세한 내용은Create a shared credentials file (p. 29) 단원을 참조하십시오.

401

Page 410: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using AWS SDKs

Important

공유 자격 증명 파일을 사용하여 AWS 액세스 키 ID 및 보안 액세스 키를 전달합니다. 공유 자격 증명 파일을 사용하는 대신, 두 가지 환경 변수(각각 AWS_ACCESS_KEY_ID 및AWS_SECRET_ACCESS_KEY)를 설정하여 AWS 액세스 키 ID 및 보안 액세스 키를 지정할 수 있습니다. 다음 예시는 이러한 메서드 중 하나를 사용하여 자격 증명을 지정하지 않으면 작동하지않습니다.

import boto3from botocore.exceptions import ClientError

개 Replace [email protected] with your "From" address.개 This address must be verified with Amazon SES.SENDER = "Sender Name <[email protected]>"

개 Replace [email protected] with a "To" address. If your account 개 is still in the sandbox, this address must be verified.RECIPIENT = "[email protected]"

개 Specify a configuration set. If you do not want to use a configuration개 set, comment the following variable, and the 개 ConfigurationSetName=CONFIGURATION_SET argument below.CONFIGURATION_SET = "ConfigSet"

개 If necessary, replace us-west-2 with the AWS Region you're using for Amazon SES.AWS_REGION = "us-west-2"

개 The subject line for the email.SUBJECT = "Amazon SES Test (SDK for Python)"

개 The email body for recipients with non-HTML email clients.BODY_TEXT = ("Amazon SES Test (Python)\r\n" "This email was sent with Amazon SES using the " "AWS SDK for Python (Boto)." ) 개 The HTML body of the email.BODY_HTML = """<html><head></head><body> <h1>Amazon SES Test (SDK for Python)</h1> <p>This email was sent with <a href='https://aws.amazon.com/ses/'>Amazon SES</a> using the <a href='https://aws.amazon.com/sdk-for-python/'> AWS SDK for Python (Boto)</a>.</p></body></html> """

개 The character encoding for the email.CHARSET = "UTF-8"

개 Create a new SES resource and specify a region.client = boto3.client('ses',region_name=AWS_REGION)

개 Try to send the email.try: 개Provide the contents of the email. response = client.send_email( Destination={ 'ToAddresses': [ RECIPIENT, ], },

402

Page 411: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using AWS SDKs

Message={ 'Body': { 'Html': { 'Charset': CHARSET, 'Data': BODY_HTML, }, 'Text': { 'Charset': CHARSET, 'Data': BODY_TEXT, }, }, 'Subject': { 'Charset': CHARSET, 'Data': SUBJECT, }, }, Source=SENDER, 개 If you are not using a configuration set, comment or delete the 개 following line ConfigurationSetName=CONFIGURATION_SET, )개 Display an error if something goes wrong. except ClientError as e: print(e.response['Error']['Message'])else: print("Email sent! Message ID:"), print(response['MessageId'])

Ruby

다음 코드 예제는 Amazon SES에서 Ruby용 AWS SDK를 사용하여 이메일을 전송할 수 있는 완전한 솔루션입니다. 단, 이 코드 예제는 Ruby용 AWS SDK가 설치되어 있고 공유 자격 증명 파일이 생성되어 있다는 가정을 전제로 합니다. 설치에 대한 자세한 내용은 Ruby용 SDK, 참조: 설치 Ruby용 AWS SDK inthe Ruby용 AWS SDK Developer Guide. 공유 자격 증명 파일 생성에 대한 자세한 내용은 다음을 참조하십시오. Create a shared credentials file (p. 29).

Important

공유 자격 증명 파일을 사용하여 AWS 액세스 키 ID 및 보안 액세스 키를 전달합니다. 공유 자격 증명 파일을 사용하는 대신, 두 가지 환경 변수(각각 AWS_ACCESS_KEY_ID 및AWS_SECRET_ACCESS_KEY)를 설정하여 AWS 액세스 키 ID 및 보안 액세스 키를 지정할 수 있습니다. 다음 예시는 이러한 메서드 중 하나를 사용하여 자격 증명을 지정하지 않으면 작동하지않습니다.

require 'aws-sdk'

개 Replace [email protected] with your "From" address.개 This address must be verified with Amazon SES.sender = "[email protected]"

개 Replace [email protected] with a "To" address. If your account 개 is still in the sandbox, this address must be verified.recipient = "[email protected]"

개 Specify a configuration set. If you do not want to use a configuration개 set, comment the following variable and the 개 configuration_set_name: configsetname argument below. configsetname = "ConfigSet" 개 Replace us-west-2 with the AWS Region you're using for Amazon SES.awsregion = "us-west-2"

개 The subject line for the email.subject = "Amazon SES test (Ruby개 AWS SDK)"

403

Page 412: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using the SMTP Interface

개 The HTML body of the email.htmlbody = '<h1>Amazon SES test (Ruby개 AWS SDK)</h1>'\ '<p>This email was sent with <a href="https://aws.amazon.com/ses/">'\ 'Amazon SES</a> using the <a href="https://aws.amazon.com/sdk-for-ruby/">'\ 'Ruby개 AWS SDK</a>.'

개 The email body for recipients with non-HTML email clients. textbody = "This email was sent with Amazon SES using the Ruby개 AWS SDK."

개 Specify the text encoding scheme.encoding = "UTF-8"

개 Create a new SES resource and specify a regionses = Aws::SES::Client.new(region: awsregion)

개 Try to send the email.begin

개 Provide the contents of the email. resp = ses.send_email({ destination: { to_addresses: [ recipient, ], }, message: { body: { html: { charset: encoding, data: htmlbody, }, text: { charset: encoding, data: textbody, }, }, subject: { charset: encoding, data: subject, }, }, source: sender, 개 Comment or remove the following line if you are not using 개 a configuration set configuration_set_name: configsetname, }) puts "Email sent!"

개 If something goes wrong, display an error message.rescue Aws::SES::Errors::ServiceError => error puts "Email not sent. Error message: 개{error}"

end

Sending email using the Amazon SES SMTPInterface

일부 프로그래밍 언어에는 SMTP를 사용해 이메일을 전송할 수 있는 표준 라이브러리가 포함되어 있습니다.이러한 라이브러리를 사용해 가볍지만 고도로 구성 가능한 이메일 전송 애플리케이션을 개발할 수 있습니다.

404

Page 413: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using the SMTP Interface

이 단원에서는 Amazon SES에서 SMTP 인터페이스를 사용하여 이메일을 전송하는 프로세스를 보여주는 몇가지 프로그래밍 언어의 코드 예제를 찾아볼 수 있습니다. 이러한 코드 예제들은 가능하다면 표준 라이브러리를 사용합니다.

C#

다음 코드 예제는 Amazon SES SMTP 인터페이스에서 C#를 사용하여 이메일을 전송할 수 있는 완전한 솔루션입니다. 이 코드 예제를 실행하려면 SMTP 자격 증명을 가져와야 합니다. 자세한 내용은Obtaining your Amazon SES SMTP credentials (p. 84) 단원을 참조하십시오.

using System;using System.Net;using System.Net.Mail;

namespace AmazonSESSample{ class Program { static void Main(string[] args) { // Replace [email protected] with your "From" address. // This address must be verified with Amazon SES. String FROM = "[email protected]"; String FROMNAME = "Sender Name";

// Replace [email protected] with a "To" address. If your account // is still in the sandbox, this address must be verified. String TO = "[email protected]";

// Replace smtp_username with your Amazon SES SMTP user name. String SMTP_USERNAME = "smtp_username";

// Replace smtp_password with your Amazon SES SMTP user name. String SMTP_PASSWORD = "smtp_password";

// (Optional) the name of a configuration set to use for this message. // If you comment out this line, you also need to remove or comment out // the "X-SES-CONFIGURATION-SET" header below. String CONFIGSET = "ConfigSet";

// If you're using Amazon SES in a region other than 개개 개개(개개개), // replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP // endpoint in the appropriate AWS Region. String HOST = "email-smtp.us-west-2.amazonaws.com";

// The port you will connect to on the Amazon SES SMTP endpoint. We // are choosing port 587 because we will use STARTTLS to encrypt // the connection. int PORT = 587;

// The subject line of the email String SUBJECT = "Amazon SES test (SMTP interface accessed using C개)";

// The body of the email String BODY = "<h1>Amazon SES Test</h1>" + "<p>This email was sent through the " + "<a href='https://aws.amazon.com/ses'>Amazon SES</a> SMTP interface " + "using the .NET System.Net.Mail library.</p>";

// Create and build a new MailMessage object MailMessage message = new MailMessage(); message.IsBodyHtml = true;

405

Page 414: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using the SMTP Interface

message.From = new MailAddress(FROM, FROMNAME); message.To.Add(new MailAddress(TO)); message.Subject = SUBJECT; message.Body = BODY; // Comment or delete the next line if you are not using a configuration set message.Headers.Add("X-SES-CONFIGURATION-SET", CONFIGSET);

using (var client = new System.Net.Mail.SmtpClient(HOST, PORT)) { // Pass SMTP credentials client.Credentials = new NetworkCredential(SMTP_USERNAME, SMTP_PASSWORD);

// Enable SSL encryption client.EnableSsl = true;

// Try to send the message. Show status in console. try { Console.WriteLine("Attempting to send email..."); client.Send(message); Console.WriteLine("Email sent!"); } catch (Exception ex) { Console.WriteLine("The email was not sent."); Console.WriteLine("Error message: " + ex.Message); } } } }}

Go

다음 코드 예는 이메일을 통해 이메일을 보내는 완벽한 솔루션입니다. Amazon SES SMTP 인터페이스를 사용하여 Go 프로그래밍 언어. 이 코드 예제를 실행하려면 SMTP 자격 증명을 가져와야 합니다. 자세한 내용은 Obtaining your Amazon SES SMTP credentials (p. 84) 단원을 참조하십시오. 또한 Gomail 패키지도 설치해야 합니다.

package main

import ( "fmt" "gopkg.in/gomail.v2" //go get gopkg.in/gomail.v2)

const ( // Replace [email protected] with your "From" address. // This address must be verified with Amazon SES. Sender = "[email protected]" SenderName = "Sender Name" // Replace [email protected] with a "To" address. If your account // is still in the sandbox, this address must be verified. Recipient = "[email protected]"

// Replace SmtpUser with your Amazon SES SMTP user name. SmtpUser = "SmtpUser" // Replace SmtpPass with your Amazon SES SMTP password. SmtpPass = "SmtpPass" // The name of the configuration set to use for this message.

406

Page 415: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using the SMTP Interface

// If you comment out or remove this variable, you will also need to // comment out or remove the header below. ConfigSet = "ConfigSet" // If you're using Amazon SES in an AWS Region other than 개개 개개(개개개), // replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP // endpoint in the appropriate region. Host = "email-smtp.us-west-2.amazonaws.com" Port = 587 // The subject line for the email. Subject = "Amazon SES Test (Gomail)" // The HTML body for the email. HtmlBody = "<html><head><title>SES Sample Email</title></head><body>" + "<h1>Amazon SES Test Email (Gomail)</h1>" + "<p>This email was sent with " + "<a href='https://aws.amazon.com/ses/'>Amazon SES</a> using " + "the <a href='https://github.com/go-gomail/gomail/'>Gomail " + "package</a> for <a href='https://golang.org/'>Go</a>.</p>" + "</body></html>" //The email body for recipients with non-HTML email clients. TextBody = "This email was sent with Amazon SES using the Gomail package." // The tags to apply to this message. Separate multiple key-value pairs // with commas. // If you comment out or remove this variable, you will also need to // comment out or remove the header on line 80. Tags = "genre=test,genre2=test2" // The character encoding for the email. CharSet = "UTF-8"

)

func main() { // Create a new message. m := gomail.NewMessage() // Set the main email part to use HTML. m.SetBody("text/html", HtmlBody) // Set the alternative part to plain text. m.AddAlternative("text/plain", TextBody)

// Construct the message headers, including a Configuration Set and a Tag. m.SetHeaders(map[string][]string{ "From": {m.FormatAddress(Sender,SenderName)}, "To": {Recipient}, "Subject": {Subject}, // Comment or remove the next line if you are not using a configuration set "X-SES-CONFIGURATION-SET": {ConfigSet}, // Comment or remove the next line if you are not using custom tags "X-SES-MESSAGE-TAGS": {Tags}, }) // Send the email. d := gomail.NewPlainDialer(Host, Port, SmtpUser, SmtpPass) // Display an error message if something goes wrong; otherwise, // display a message confirming that the message was sent. if err := d.DialAndSend(m); err != nil { fmt.Println(err) } else {

407

Page 416: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using the SMTP Interface

fmt.Println("Email sent!") }}

Java

다음 코드 예제는 Amazon SES SMTP 인터페이스에서 Java를 사용하여 이메일을 전송할 수 있는 완전한 솔루션입니다. 이 코드 예제를 실행하려면 SMTP 자격 증명을 가져와야 합니다. 자세한 내용은Obtaining your Amazon SES SMTP credentials (p. 84) 단원을 참조하십시오. 또한 JavaMail API도 설치해야 합니다.

import java.util.Properties;

import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;

public class AmazonSESSample {

// Replace [email protected] with your "From" address. // This address must be verified. static final String FROM = "[email protected]"; static final String FROMNAME = "Sender Name"; // Replace [email protected] with a "To" address. If your account // is still in the sandbox, this address must be verified. static final String TO = "[email protected]"; // Replace smtp_username with your Amazon SES SMTP user name. static final String SMTP_USERNAME = "smtp_username"; // Replace smtp_password with your Amazon SES SMTP password. static final String SMTP_PASSWORD = "smtp_password"; // The name of the Configuration Set to use for this message. // If you comment out or remove this variable, you will also need to // comment out or remove the header below. static final String CONFIGSET = "ConfigSet"; // Amazon SES SMTP host name. This example uses the 개개 개개(개개개) region. // See https://docs.aws.amazon.com/ses/latest/DeveloperGuide/regions.html개region-endpoints // for more information. static final String HOST = "email-smtp.us-west-2.amazonaws.com"; // The port you will connect to on the Amazon SES SMTP endpoint. static final int PORT = 587; static final String SUBJECT = "Amazon SES test (SMTP interface accessed using Java)"; static final String BODY = String.join( System.getProperty("line.separator"), "<h1>Amazon SES SMTP Email Test</h1>", "<p>This email was sent with Amazon SES using the ", "<a href='https://github.com/javaee/javamail'>Javamail Package</a>", " for <a href='https://www.java.com'>Java</a>." );

public static void main(String[] args) throws Exception {

// Create a Properties object to contain connection configuration information.

408

Page 417: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using the SMTP Interface

Properties props = System.getProperties(); props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.port", PORT); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.auth", "true");

// Create a Session object to represent a mail session with the specified properties. Session session = Session.getDefaultInstance(props);

// Create a message with the specified information. MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(FROM,FROMNAME)); msg.setRecipient(Message.RecipientType.TO, new InternetAddress(TO)); msg.setSubject(SUBJECT); msg.setContent(BODY,"text/html"); // Add a configuration set header. Comment or delete the // next line if you are not using a configuration set msg.setHeader("X-SES-CONFIGURATION-SET", CONFIGSET); // Create a transport. Transport transport = session.getTransport(); // Send the message. try { System.out.println("Sending..."); // Connect to Amazon SES using the SMTP username and password you specified above. transport.connect(HOST, SMTP_USERNAME, SMTP_PASSWORD); // Send the email. transport.sendMessage(msg, msg.getAllRecipients()); System.out.println("Email sent!"); } catch (Exception ex) { System.out.println("The email was not sent."); System.out.println("Error message: " + ex.getMessage()); } finally { // Close and terminate the connection. transport.close(); } }}

JavaScript

다음 코드 예제는 Node.js에서 NodeMailer 모듈을 사용하여 Amazon SES SMTP 인터페이스를 통해 이메일을 전송할 수 있는 완전한 솔루션입니다.

이 코드 예제를 실행하려면 먼저 SMTP 자격 증명을 가져와야 합니다. 자세한 정보는 Obtaining yourAmazon SES SMTP credentials (p. 84) 단원을 참조하십시오. 또한 NodeMailer 모듈을 설치해야 합니다.

/*This code uses callbacks to handle asynchronous function responses.It currently demonstrates using an async-await pattern.AWS supports both the async-await and promises patterns.For more information, see the following:

409

Page 418: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using the SMTP Interface

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_functionhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promiseshttps://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/calling-services-asynchronously.htmlhttps://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html*/

"use strict";const nodemailer = require("nodemailer");

// If you're using Amazon SES in a region other than US West (Oregon),// replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP// endpoint in the appropriate AWS Region.const smtpEndpoint = "email-smtp.us-west-2.amazonaws.com";

// The port to use when connecting to the SMTP server.const port = 587;

// Replace [email protected] with your "From" address.// This address must be verified with Amazon SES.const senderAddress = "Mary Major <[email protected]>";

// Replace [email protected] with a "To" address. If your account// is still in the sandbox, this address must be verified. To specify// multiple addresses, separate each address with a comma.var toAddresses = "[email protected]";

// CC and BCC addresses. If your account is in the sandbox, these// addresses have to be verified. To specify multiple addresses, separate// each address with a comma.var ccAddresses = "[email protected],[email protected]";var bccAddresses = "[email protected]";

// Replace smtp_username with your Amazon SES SMTP user name.const smtpUsername = "AKIAIOSFODNN7EXAMPLE";

// Replace smtp_password with your Amazon SES SMTP password.const smtpPassword = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY";

// (Optional) the name of a configuration set to use for this message.var configurationSet = "ConfigSet";

// The subject line of the emailvar subject = "Amazon SES test (Nodemailer)";

// The email body for recipients with non-HTML email clients.var body_text = `Amazon SES Test (Nodemailer)---------------------------------This email was sent through the Amazon SES SMTP interface using Nodemailer.`;

// The body of the email for recipients whose email clients support HTML content.var body_html = `<html><head></head><body> <h1>Amazon SES Test (Nodemailer)</h1> <p>This email was sent with <a href='https://aws.amazon.com/ses/'>Amazon SES</a> using <a href='https://nodemailer.com'>Nodemailer</a> for Node.js.</p></body></html>`;

// The message tags that you want to apply to the email.var tag0 = "key0=value0";var tag1 = "key1=value1";

410

Page 419: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using the SMTP Interface

async function main(){

// Create the SMTP transport. let transporter = nodemailer.createTransport({ host: smtpEndpoint, port: port, secure: false, // true for 465, false for other ports auth: { user: smtpUsername, pass: smtpPassword } });

// Specify the fields in the email. let mailOptions = { from: senderAddress, to: toAddresses, subject: subject, cc: ccAddresses, bcc: bccAddresses, text: body_text, html: body_html, // Custom headers for configuration set and message tags. headers: { 'X-SES-CONFIGURATION-SET': configurationSet, 'X-SES-MESSAGE-TAGS': tag0, 'X-SES-MESSAGE-TAGS': tag1 } };

// Send the email. let info = await transporter.sendMail(mailOptions)

console.log("Message sent! Message ID: ", info.messageId);}

main().catch(console.error);

Perl

다음 코드 예제는 Amazon SES SMTP 인터페이스에서 Perl를 사용하여 이메일을 전송할 수 있는 완전한 솔루션입니다. 이 코드 예제를 실행하려면 SMTP 자격 증명을 가져와야 합니다. 자세한 내용은Obtaining your Amazon SES SMTP credentials (p. 84) 단원을 참조하십시오. 또한 이메일::Sender, 이메일::MIME, 그리고 시도::소형 모듈 CPAN.

개!/usr/bin/perl use warnings;use strict;use Email::Sender::Simple qw(sendmail);use Email::Sender::Transport::SMTP;use Email::MIME;use Try::Tiny;

개 Replace [email protected] with your "From" address. 개 This address must be verified.my $sender = 'Sender name <[email protected]>';

개 Replace [email protected] with a "To" address. If your account 개 is still in the sandbox, this address must be verified.my $recipient = '[email protected]';

개 Replace smtp_username with your Amazon SES SMTP user name.my $smtp_username = "smtp_username";

411

Page 420: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using the SMTP Interface

개 Replace smtp_password with your Amazon SES SMTP password.my $smtp_password = "smtp_password";

개 (Optional) the name of a configuration set to use for this message.개 If you comment out this line, you also need to remove or comment out개 the "X-SES-CONFIGURATION-SET:" header below.my $configset = "ConfigSet";

개 If you're using Amazon SES in an AWS Region other than 개개 개개(개개개), 개 replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP 개 endpoint in the appropriate region.my $host = "email-smtp.us-west-2.amazonaws.com";my $port = 587;

개 The subject line of the email.my $subject = "Amazon SES Test (Perl)";

개 The HTML body for the email.my $htmlbody = <<'END_HTML';<html> <head></head> <body> <h1>Amazon SES SMTP Email Test</h1> <p>This email was sent with Amazon SES using the <a href='https://www.perl.org/'>Perl</a> <a href='http://search.cpan.org/~rjbs/Email-Sender-1.300031/'> Email::Sender</a> library.</p> </body></html>END_HTML

개 The email body for recipients with non-HTML email clients.my $textbody = "Amazon SES Test\r\n" . "This message was sent with Amazon SES using the Perl " . "Email::Sender module.";

개 Create the SMTP transport.my $transport = Email::Sender::Transport::SMTP->new( host => "$host", port => "$port", ssl => 'starttls', sasl_username => "$smtp_username", sasl_password => "$smtp_password",);

개 Build a multipart MIME message with an HTML part and a text part.my $message = Email::MIME->create( attributes => { content_type => 'multipart/alternative', charset => 'UTF-8', }, header_str => [ From => "$sender", To => "$recipient", Subject => "$subject", ], parts => [ Email::MIME->create( attributes => { content_type => 'text/plain' }, body => "$textbody", ), Email::MIME->create( attributes => { content_type => 'text/html' }, body => "$htmlbody", )

412

Page 421: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using the SMTP Interface

],);

개 Add the configuration set header to the MIME message.$message->header_str_set( 'X-SES-CONFIGURATION-SET' => "$configset" );

개 Try to send the email using the sendmail function from 개 Email::Sender::Simple.try { sendmail($message, { transport => $transport });개 If something goes wrong, print an error message.} catch { die "Error sending email: $_";};

PHP

다음 코드 예제는 Amazon SES SMTP 인터페이스에서 C#를 사용하여 이메일을 전송할 수 있는 완전한 솔루션입니다. 이 코드 예제를 실행하려면 SMTP 자격 증명을 가져와야 합니다. 자세한 내용은Obtaining your Amazon SES SMTP credentials (p. 84) 단원을 참조하십시오. 또한 PHPMAILER 패키지사용 작곡가.

<?php

// Import PHPMailer classes into the global namespace// These must be at the top of your script, not inside a functionuse PHPMailer\PHPMailer\PHPMailer;use PHPMailer\PHPMailer\Exception;

// If necessary, modify the path in the require statement below to refer to the// location of your Composer autoload.php file.require 'vendor/autoload.php';

// Replace [email protected] with your "From" address.// This address must be verified with Amazon SES.$sender = '[email protected]';$senderName = 'Sender Name';

// Replace [email protected] with a "To" address. If your account// is still in the sandbox, this address must be verified.$recipient = '[email protected]';

// Replace smtp_username with your Amazon SES SMTP user name.$usernameSmtp = 'smtp_username';

// Replace smtp_password with your Amazon SES SMTP password.$passwordSmtp = 'smtp_password';

// Specify a configuration set. If you do not want to use a configuration// set, comment or remove the next line.$configurationSet = 'ConfigSet';

// If you're using Amazon SES in a region other than US West (Oregon),// replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP// endpoint in the appropriate region.$host = 'email-smtp.us-west-2.amazonaws.com';$port = 587;

// The subject line of the email$subject = 'Amazon SES test (SMTP interface accessed using PHP)';

// The plain-text body of the email$bodyText = "Email Test\r\nThis email was sent through the Amazon SES SMTP interface using the PHPMailer class.";

413

Page 422: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using the SMTP Interface

// The HTML-formatted body of the email$bodyHtml = '<h1>Email Test</h1> <p>This email was sent through the <a href="https://aws.amazon.com/ses">Amazon SES</a> SMTP interface using the <a href="https://github.com/PHPMailer/PHPMailer"> PHPMailer</a> class.</p>';

$mail = new PHPMailer(true);

try { // Specify the SMTP settings. $mail->isSMTP(); $mail->setFrom($sender, $senderName); $mail->Username = $usernameSmtp; $mail->Password = $passwordSmtp; $mail->Host = $host; $mail->Port = $port; $mail->SMTPAuth = true; $mail->SMTPSecure = 'tls'; $mail->addCustomHeader('X-SES-CONFIGURATION-SET', $configurationSet);

// Specify the message recipients. $mail->addAddress($recipient); // You can also add CC, BCC, and additional To recipients here.

// Specify the content of the message. $mail->isHTML(true); $mail->Subject = $subject; $mail->Body = $bodyHtml; $mail->AltBody = $bodyText; $mail->Send(); echo "Email sent!" , PHP_EOL;} catch (phpmailerException $e) { echo "An error occurred. {$e->errorMessage()}", PHP_EOL; //Catch errors from PHPMailer.} catch (Exception $e) { echo "Email not sent. {$mail->ErrorInfo}", PHP_EOL; //Catch errors from Amazon SES.}

?>

Python

다음 코드 예제는 Amazon SES SMTP 인터페이스에서 Python을 사용하여 이메일을 전송할 수 있는완전한 솔루션입니다. 이 코드 예제를 실행하려면 SMTP 자격 증명을 가져와야 합니다. 자세한 내용은Obtaining your Amazon SES SMTP credentials (p. 84) 단원을 참조하십시오.

import smtplib import email.utilsfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMEText

개 Replace [email protected] with your "From" address. 개 This address must be verified.SENDER = '[email protected]' SENDERNAME = 'Sender Name'

개 Replace [email protected] with a "To" address. If your account 개 is still in the sandbox, this address must be verified.RECIPIENT = '[email protected]'

개 Replace smtp_username with your Amazon SES SMTP user name.

414

Page 423: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using the SMTP Interface

USERNAME_SMTP = "smtp_username"

개 Replace smtp_password with your Amazon SES SMTP password.PASSWORD_SMTP = "smtp_password"

개 (Optional) the name of a configuration set to use for this message.개 If you comment out this line, you also need to remove or comment out개 the "X-SES-CONFIGURATION-SET:" header below.CONFIGURATION_SET = "ConfigSet"

개 If you're using Amazon SES in an AWS Region other than 개개 개개(개개개), 개 replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP 개 endpoint in the appropriate region.HOST = "email-smtp.us-west-2.amazonaws.com"PORT = 587

개 The subject line of the email.SUBJECT = 'Amazon SES Test (Python smtplib)'

개 The email body for recipients with non-HTML email clients.BODY_TEXT = ("Amazon SES Test\r\n" "This email was sent through the Amazon SES SMTP " "Interface using the Python smtplib package." )

개 The HTML body of the email.BODY_HTML = """<html><head></head><body> <h1>Amazon SES SMTP Email Test</h1> <p>This email was sent with Amazon SES using the <a href='https://www.python.org/'>Python</a> <a href='https://docs.python.org/3/library/smtplib.html'> smtplib</a> library.</p></body></html> """

개 Create message container - the correct MIME type is multipart/alternative.msg = MIMEMultipart('alternative')msg['Subject'] = SUBJECTmsg['From'] = email.utils.formataddr((SENDERNAME, SENDER))msg['To'] = RECIPIENT개 Comment or delete the next line if you are not using a configuration setmsg.add_header('X-SES-CONFIGURATION-SET',CONFIGURATION_SET)

개 Record the MIME types of both parts - text/plain and text/html.part1 = MIMEText(BODY_TEXT, 'plain')part2 = MIMEText(BODY_HTML, 'html')

개 Attach parts into message container.개 According to RFC 2046, the last part of a multipart message, in this case개 the HTML message, is best and preferred.msg.attach(part1)msg.attach(part2)

개 Try to send the message.try: server = smtplib.SMTP(HOST, PORT) server.ehlo() server.starttls() 개stmplib docs recommend calling ehlo() before & after starttls() server.ehlo() server.login(USERNAME_SMTP, PASSWORD_SMTP) server.sendmail(SENDER, RECIPIENT, msg.as_string()) server.close()

415

Page 424: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending email using the SMTP Interface

개 Display an error message if something goes wrong.except Exception as e: print ("Error: ", e)else: print ("Email sent!")

Ruby

다음 코드 예제는 Amazon SES SMTP 인터페이스에서 Ruby를 사용하여 이메일을 전송할 수 있는 완전한 솔루션입니다. 이 코드 예제를 실행하려면 SMTP 자격 증명을 가져와야 합니다. 자세한 내용은Obtaining your Amazon SES SMTP credentials (p. 84) 단원을 참조하십시오.

require 'net/smtp'

개 Replace [email protected] with your "From" address.개 This address must be verified with Amazon SES.sender = "[email protected]"senderName = "Sender Name"

개 Replace [email protected] with a "To" address. If your account 개 is still in the sandbox, this address must be verified.recipient = "[email protected]"

개 Replace smtp_username with your Amazon SES SMTP user name.smtp_username = "smtp_username"

개 Replace smtp_password with your Amazon SES SMTP password.smtp_password = "smtp_password"

개 (Optional) the name of a configuration set to use for this message.개 If you comment out this line, you also need to remove or comment out개 the "X-SES-CONFIGURATION-SET" header below.configSet = "ConfigSet"

개 If you're using Amazon SES in an AWS Region other than 개개 개개(개개개), 개 replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP 개 endpoint in the appropriate region.server = "email-smtp.us-west-2.amazonaws.com"port = 587

개 The subject line of the email.subject = "Amazon SES Test (Ruby Net::SMTP library)"

개 Specify the headers and body of the message as a variable.message = [ 개Remove the next line if you are not using a configuration set "X-SES-CONFIGURATION-SET: 개{configSet}", "Content-Type: text/html; charset=UTF-8", "Content-Transfer-Encoding: 7bit", "From: 개{senderName} <개{sender}>", "To: 개{recipient}", "Subject: 개{subject}", "", "<h1>Amazon SES Test (Ruby Net::SMTP library)</h1>", "<p>This email was sent with \ <a href='https://aws.amazon.com/ses/'>\ Amazon SES</a> using the Ruby Net::SMTP library.</p>" ].join("\n") 개 Create a new SMTP object called "smtp."smtp = Net::SMTP.new(server, port)

개 Tell the smtp object to connect using TLS.smtp.enable_starttls

416

Page 425: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending raw email using AWS SDKs

개 Open an SMTP session and log in to the server using SMTP authentication.smtp.start(server,smtp_username,smtp_password, :login)

개 Try to send the message.begin smtp.send_message(message, sender, recipient) puts "Email sent!"개 Print an error message if something goes wrong.rescue => e puts eend

Sending raw email using AWS SDKsAWS SDK에는 Amazon SES를 비롯한 몇 가지 다른 AWS 서비스와 상호 작용할 수 있는 메서드가 기본적으로 포함되어 있습니다. 따라서 Amazon SES를 다른 AWS 서비스와 사용할 계획이라면 SDK 사용을 권장합니다. AWS SDK에 대해 자세히 알아보려면 Amazon Web Services 도구를 참조하십시오.

이 단원에서는 Amazon SES에서 AWS SDK를 사용하여 원시 이메일을 전송하는 프로세스를 보여주는 몇 가지 프로그래밍 언어의 코드 예제를 찾아볼 수 있습니다.

Java

다음 코드 예제는 JavaMail 라이브러리와 AWS SDK for Java를 사용하여 HTML 부분, 텍스트 부분 및첨부 파일이 들어 있는 원시 이메일을 작성하고 보내는 방법을 보여줍니다.

단, 이 코드 예제는 AWS SDK for Java가 설치되어 있고 공유 자격 증명 파일이 생성되어 있다는 가정을 전제로 합니다. 공유 자격 증명 파일의 생성에 대한 자세한 내용은 Create a shared credentialsfile (p. 29) 단원을 참조하십시오.

Important

공유 자격 증명 파일을 사용하여 AWS 액세스 키 ID 및 보안 액세스 키를 전달합니다. 공유 자격 증명 파일을 사용하는 대신, 두 가지 환경 변수(각각 AWS_ACCESS_KEY_ID 및AWS_SECRET_ACCESS_KEY)를 설정하여 AWS 액세스 키 ID 및 보안 액세스 키를 지정할 수 있습니다. 다음 예시는 이러한 메서드 중 하나를 사용하여 자격 증명을 지정하지 않으면 작동하지않습니다.

package com.amazonaws.samples;

import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.PrintStream;import java.nio.ByteBuffer;import java.util.Properties;

// JavaMail libraries. Download the JavaMail API // from https://javaee.github.io/javamail/import javax.activation.DataHandler;import javax.activation.DataSource;import javax.activation.FileDataSource;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Session;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;

417

Page 426: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending raw email using AWS SDKs

// AWS SDK libraries. Download the AWS SDK for Java // from https://aws.amazon.com/sdk-for-javaimport com.amazonaws.regions.Regions;import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder;import com.amazonaws.services.simpleemail.model.RawMessage;import com.amazonaws.services.simpleemail.model.SendRawEmailRequest;

public class AmazonSESSample {

// Replace [email protected] with your "From" address. // This address must be verified with Amazon SES. private static String SENDER = "Sender Name <[email protected]>";

// Replace [email protected] with a "To" address. If your account // is still in the sandbox, this address must be verified. private static String RECIPIENT = "[email protected]";

// Specify a configuration set. If you do not want to use a configuration // set, comment the following variable, and the // ConfigurationSetName=CONFIGURATION_SET argument below. private static String CONFIGURATION_SET = "ConfigSet";

// The subject line for the email. private static String SUBJECT = "Customer service contact info";

// The full path to the file that will be attached to the email. // If you're using Windows, escape backslashes as shown in this variable. private static String ATTACHMENT = "C:\\Users\\sender\\customers-to-contact.xlsx";

// The email body for recipients with non-HTML email clients. private static String BODY_TEXT = "Hello,\r\n" + "Please see the attached file for a list " + "of customers to contact.";

// The HTML body of the email. private static String BODY_HTML = "<html>" + "<head></head>" + "<body>" + "<h1>Hello!</h1>" + "<p>Please see the attached file for a " + "list of customers to contact.</p>" + "</body>" + "</html>";

public static void main(String[] args) throws AddressException, MessagingException, IOException { Session session = Session.getDefaultInstance(new Properties()); // Create a new MimeMessage object. MimeMessage message = new MimeMessage(session); // Add subject, from and to lines. message.setSubject(SUBJECT, "UTF-8"); message.setFrom(new InternetAddress(SENDER)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(RECIPIENT));

// Create a multipart/alternative child container. MimeMultipart msg_body = new MimeMultipart("alternative"); // Create a wrapper for the HTML and text parts. MimeBodyPart wrap = new MimeBodyPart();

418

Page 427: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending raw email using AWS SDKs

// Define the text part. MimeBodyPart textPart = new MimeBodyPart(); textPart.setContent(BODY_TEXT, "text/plain; charset=UTF-8"); // Define the HTML part. MimeBodyPart htmlPart = new MimeBodyPart(); htmlPart.setContent(BODY_HTML,"text/html; charset=UTF-8"); // Add the text and HTML parts to the child container. msg_body.addBodyPart(textPart); msg_body.addBodyPart(htmlPart); // Add the child container to the wrapper object. wrap.setContent(msg_body); // Create a multipart/mixed parent container. MimeMultipart msg = new MimeMultipart("mixed"); // Add the parent container to the message. message.setContent(msg); // Add the multipart/alternative part to the message. msg.addBodyPart(wrap); // Define the attachment MimeBodyPart att = new MimeBodyPart(); DataSource fds = new FileDataSource(ATTACHMENT); att.setDataHandler(new DataHandler(fds)); att.setFileName(fds.getName()); // Add the attachment to the message. msg.addBodyPart(att);

// Try to send the email. try { System.out.println("Attempting to send an email through Amazon SES " +"using the AWS SDK for Java...");

// Instantiate an Amazon SES client, which will make the service // call with the supplied AWS credentials. AmazonSimpleEmailService client = AmazonSimpleEmailServiceClientBuilder.standard() // Replace US_WEST_2 with the AWS Region you're using for // Amazon SES. .withRegion(Regions.US_WEST_2).build(); // Print the raw email content on the console PrintStream out = System.out; message.writeTo(out);

// Send the email. ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); message.writeTo(outputStream); RawMessage rawMessage = new RawMessage(ByteBuffer.wrap(outputStream.toByteArray()));

SendRawEmailRequest rawEmailRequest = new SendRawEmailRequest(rawMessage) .withConfigurationSetName(CONFIGURATION_SET); client.sendRawEmail(rawEmailRequest); System.out.println("Email sent!"); // Display an error if something goes wrong. } catch (Exception ex) { System.out.println("Email Failed"); System.err.println("Error message: " + ex.getMessage());

419

Page 428: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending raw email using AWS SDKs

ex.printStackTrace(); } }}

PHP

다음 코드 예제는 PHPMailer 패키지와 PHP용 AWS SDK를 사용하여 HTML 부분, 텍스트 부분 및 첨부파일이 들어 있는 원시 이메일을 작성하고 보내는 방법을 보여줍니다.

이 코드 예는 PHPMAILER 패키지 사용 작곡가. 또한 PHP용 AWS SDK가 설치되어 있고 공유 자격 증명 파일이 생성되어 있다는 가정도 전제로 합니다. 공유 자격 증명 파일의 생성에 대한 자세한 내용은Create a shared credentials file (p. 29) 단원을 참조하십시오.

Important

공유 자격 증명 파일을 사용하여 AWS 액세스 키 ID 및 보안 액세스 키를 전달합니다. 공유 자격 증명 파일을 사용하는 대신, 두 가지 환경 변수(각각 AWS_ACCESS_KEY_ID 및AWS_SECRET_ACCESS_KEY)를 설정하여 AWS 액세스 키 ID 및 보안 액세스 키를 지정할 수 있습니다. 다음 예시는 이러한 메서드 중 하나를 사용하여 자격 증명을 지정하지 않으면 작동하지않습니다.

<?phprequire 'vendor/autoload.php';use PHPMailer\PHPMailer\PHPMailer;use Aws\Ses\SesClient;use Aws\Ses\Exception\SesException;

// Replace [email protected] with your "From" address. // This address must be verified with Amazon SES.$sender = '[email protected]'; $sendername = 'Sender Name';

// Replace [email protected] with a "To" address. If your account // is still in the sandbox, this address must be verified.$recipient = '[email protected]';

// Specify a configuration set.$configset = 'ConfigSet';

// Replace us-west-2 with the AWS Region you're using for Amazon SES.$region = 'us-west-2';

$subject = 'List of customers to contact';

$htmlbody = <<<EOD<html><head></head><body><h1>Hello!</h1><p>Please see the attached file for a list of customers to contact.</p></body></html>EOD;

$textbody = <<<EODHello,Please see the attached file for a list of customers to contact.EOD;

// The full path to the file that will be attached to the email. $att = 'path/to/customers-to-contact.xlsx';

// Create an SesClient.

420

Page 429: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending raw email using AWS SDKs

$client = SesClient::factory(array( 'version'=> 'latest', 'region' => $region));

// Create a new PHPMailer object.$mail = new PHPMailer;

// Add components to the email.$mail->setFrom($sender, $sendername);$mail->addAddress($recipient);$mail->Subject = $subject;$mail->Body = $htmlbody;$mail->AltBody = $textbody;$mail->addAttachment($att);$mail->addCustomHeader('X-SES-CONFIGURATION-SET', $configset);

// Attempt to assemble the above components into a MIME message.if (!$mail->preSend()) { echo $mail->ErrorInfo;} else { // Create a new variable that contains the MIME message. $message = $mail->getSentMIMEMessage();}

// Try to send the message.try { $result = $client->sendRawEmail([ 'RawMessage' => [ 'Data' => $message ] ]); // If the message was sent, show the message ID. $messageId = $result->get('MessageId'); echo("Email sent! Message ID: $messageId"."\n");} catch (SesException $error) { // If the message was not sent, show a message explaining what went wrong. echo("The email was not sent. Error message: " .$error->getAwsErrorMessage()."\n");}

?>

Python

다음 코드 예제는 Python 이메일 패키지와 AWS SDK for Python (Boto)을 사용하여 HTML 부분, 텍스트부분 및 첨부 파일이 들어 있는 원시 이메일을 작성하고 보내는 방법을 보여줍니다.

단, 이 코드 예제는 AWS SDK for Python (Boto)이 설치되어 있고 공유 자격 증명 파일이 생성되어있다는 가정을 전제로 합니다. 공유 자격 증명 파일의 생성에 대한 자세한 내용은 Create a sharedcredentials file (p. 29) 단원을 참조하십시오.

Important

공유 자격 증명 파일을 사용하여 AWS 액세스 키 ID 및 보안 액세스 키를 전달합니다. 공유 자격 증명 파일을 사용하는 대신, 두 가지 환경 변수(각각 AWS_ACCESS_KEY_ID 및AWS_SECRET_ACCESS_KEY)를 설정하여 AWS 액세스 키 ID 및 보안 액세스 키를 지정할 수 있습니다. 다음 예시는 이러한 메서드 중 하나를 사용하여 자격 증명을 지정하지 않으면 작동하지않습니다.

import osimport boto3from botocore.exceptions import ClientErrorfrom email.mime.multipart import MIMEMultipart

421

Page 430: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending raw email using AWS SDKs

from email.mime.text import MIMETextfrom email.mime.application import MIMEApplication

개 Replace [email protected] with your "From" address.개 This address must be verified with Amazon SES.SENDER = "Sender Name <[email protected]>"

개 Replace [email protected] with a "To" address. If your account 개 is still in the sandbox, this address must be verified.RECIPIENT = "[email protected]"

개 Specify a configuration set. If you do not want to use a configuration개 set, comment the following variable, and the 개 ConfigurationSetName=CONFIGURATION_SET argument below.CONFIGURATION_SET = "ConfigSet"

개 If necessary, replace us-west-2 with the AWS Region you're using for Amazon SES.AWS_REGION = "us-west-2"

개 The subject line for the email.SUBJECT = "Customer service contact info"

개 The full path to the file that will be attached to the email.ATTACHMENT = "path/to/customers-to-contact.xlsx"

개 The email body for recipients with non-HTML email clients.BODY_TEXT = "Hello,\r\nPlease see the attached file for a list of customers to contact."

개 The HTML body of the email.BODY_HTML = """\<html><head></head><body><h1>Hello!</h1><p>Please see the attached file for a list of customers to contact.</p></body></html>"""

개 The character encoding for the email.CHARSET = "utf-8"

개 Create a new SES resource and specify a region.client = boto3.client('ses',region_name=AWS_REGION)

개 Create a multipart/mixed parent container.msg = MIMEMultipart('mixed')개 Add subject, from and to lines.msg['Subject'] = SUBJECT msg['From'] = SENDER msg['To'] = RECIPIENT

개 Create a multipart/alternative child container.msg_body = MIMEMultipart('alternative')

개 Encode the text and HTML content and set the character encoding. This step is개 necessary if you're sending a message with characters outside the ASCII range.textpart = MIMEText(BODY_TEXT.encode(CHARSET), 'plain', CHARSET)htmlpart = MIMEText(BODY_HTML.encode(CHARSET), 'html', CHARSET)

개 Add the text and HTML parts to the child container.msg_body.attach(textpart)msg_body.attach(htmlpart)

개 Define the attachment part and encode it using MIMEApplication.

422

Page 431: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending raw email using AWS SDKs

att = MIMEApplication(open(ATTACHMENT, 'rb').read())

개 Add a header to tell the email client to treat this part as an attachment,개 and to give the attachment a name.att.add_header('Content-Disposition','attachment',filename=os.path.basename(ATTACHMENT))

개 Attach the multipart/alternative child container to the multipart/mixed개 parent container.msg.attach(msg_body)

개 Add the attachment to the parent container.msg.attach(att)개print(msg)try: 개Provide the contents of the email. response = client.send_raw_email( Source=SENDER, Destinations=[ RECIPIENT ], RawMessage={ 'Data':msg.as_string(), }, ConfigurationSetName=CONFIGURATION_SET )개 Display an error if something goes wrong. except ClientError as e: print(e.response['Error']['Message'])else: print("Email sent! Message ID:"), print(response['MessageId'])

Ruby

다음 코드 예제는 Ruby MIME Gem과 Ruby용 AWS SDK를 사용하여 HTML 부분, 텍스트 부분 및 첨부파일이 들어 있는 원시 이메일을 작성하고 보내는 방법을 보여줍니다.

단, 이 코드 예제는 Ruby용 AWS SDK 및 MIME Gem이 설치되어 있고 공유 자격 증명 파일이 생성되어 있다는 가정을 전제로 합니다. 공유 자격 증명 파일의 생성에 대한 자세한 내용은 Create a sharedcredentials file (p. 29) 단원을 참조하십시오.

Important

공유 자격 증명 파일을 사용하여 AWS 액세스 키 ID 및 보안 액세스 키를 전달합니다. 공유 자격 증명 파일을 사용하는 대신, 두 가지 환경 변수(각각 AWS_ACCESS_KEY_ID 및AWS_SECRET_ACCESS_KEY)를 설정하여 AWS 액세스 키 ID 및 보안 액세스 키를 지정할 수 있습니다. 다음 예시는 이러한 메서드 중 하나를 사용하여 자격 증명을 지정하지 않으면 작동하지않습니다.

require 'base64' 개standard libraryrequire 'aws-sdk' 개gem install aws-sdkrequire 'mime' 개gem install mime

개 Replace [email protected] with your "From" address.개 This address must be verified with Amazon SES.sender = "[email protected]"sendername = "Sender Name"

개 Replace [email protected] with a "To" address. If your account 개 is still in the sandbox, this address must be verified.recipient = "[email protected]"

개 Specify a configuration set.

423

Page 432: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending raw email using AWS SDKs

configsetname = "ConfigSet" 개 Replace us-west-2 with the AWS Region you're using for Amazon SES.awsregion = "us-west-2"

개 The subject line for the email.subject = "Customer service contact info"

개 The full path to the file that will be attached to the email.attachment = "path/to/customers-to-contact.xlsx"

개 The email body for recipients with non-HTML email clients. textbody = """Hello,Please see the attached file for a list of customers to contact."""

개 The HTML body of the email.htmlbody = """<html><head></head><body><h1>Hello!</h1><p>Please see the attached file for a list of customers to contact.</p></body></html>"""

개 Create a new MIME text object that contains the base64-encoded content of the개 file that will be attached to the message.file = MIME::Application.new(Base64::encode64(open(attachment,"rb").read))

개 Specify that the file is a base64-encoded attachment to ensure that the 개 receiving client handles it correctly. file.transfer_encoding = 'base64'file.disposition = 'attachment'

개 Create a MIME Multipart Mixed object. This object will contain the body of the개 email and the attachment.msg_mixed = MIME::Multipart::Mixed.new

개 Create a MIME Multipart Alternative object. This object will contain both the개 HTML and plain text versions of the email.msg_body = MIME::Multipart::Alternative.new

개 Add the plain text and HTML content to the Multipart Alternative part.msg_body.add(MIME::Text.new(textbody,'plain'))msg_body.add(MIME::Text.new(htmlbody,'html'))

개 Add the Multipart Alternative part to the Multipart Mixed part.msg_mixed.add(msg_body)

개 Add the attachment to the Multipart Mixed part.msg_mixed.attach(file, 'filename' => attachment)

개 Create a new Mail object that contains the entire Multipart Mixed object. 개 This object also contains the message headers.msg = MIME::Mail.new(msg_mixed)msg.to = { recipient => nil }msg.from = { sender => sendername }msg.subject = subjectmsg.headers.set('X-SES-CONFIGURATION-SET',configsetname)

개 Create a new SES resource and specify a regionses = Aws::SES::Client.new(region: awsregion)

424

Page 433: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verify multiple email addresses

개 Try to send the email.begin

개 Provide the contents of the email. resp = ses.send_raw_email({ raw_message: { data: msg.to_s } }) 개 If the message was sent, show the message ID. puts "Email sent! Message ID: " + resp[0].to_s

개 If the message was not sent, show a message explaining what went wrong.rescue Aws::SES::Errors::ServiceError => error puts "Email not sent. Error message: 개{error}"

end

Verify multiple email addresses다른 이메일 전송 솔루션에서 Amazon SES로 마이그레이션하는 경우 이메일을 보내는 데 사용할 이메일 주소를 이미 많이 가지고 있을 수 있습니다. 이 예의 Python 스크립트는 입력으로 JSON 형식의 이메일 주소 목록을 허용합니다. 다음 예에서는 입력 파일의 구조를 보여 줍니다.

[ { "email":"[email protected]" }, { "email":"[email protected]" }, { "email":"[email protected]" }]

다음 스크립트에서는 입력 파일을 읽고 파일에 포함되어 있는 모든 이메일 주소를 확인하려고 시도합니다. 단, 이 코드 예제는 AWS SDK for Python (Boto)이 설치되어 있고 공유 자격 증명 파일이 생성되어 있다는 가정을 전제로 합니다. 공유 자격 증명 파일의 생성에 대한 자세한 내용은 Create a shared credentialsfile (p. 29) 단원을 참조하십시오.

import json 개Python standard libraryimport boto3 개sudo pip install boto3from botocore.exceptions import ClientError

개 The full path to the file that contains the identities to be verified. 개 The input file must be JSON-formatted. See개 https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sample-code-bulk-verify.html 개 for a sample input file.FILE_INPUT = '/path/to/identities.json'

개 If necessary, replace us-west-2 with the AWS Region you're using for Amazon SES.AWS_REGION = "us-west-2"

개 Create a new SES resource specify a region.client = boto3.client('ses',region_name=AWS_REGION)

개 Read the file that contains the identities to be verified.with open(FILE_INPUT) as data_file: data = json.load(data_file)

425

Page 434: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드ID 복제

개 Iterate through the array from the input file. Each time an object named개 'email' is found, run the verify_email_identity operation against the value 개 of that object.for i in data: try: response = client.verify_email_identity( EmailAddress=i['email'] ) 개 Display an error if something goes wrong. except ClientError as e: print(e.response['Error']['Message']) 개 Otherwise, show the request ID of the verification message. else: print('Verification email sent to ' + i['email'] + '. Request ID: ' + response['ResponseMetadata']['RequestId'])

이메일 ID 복제 AWS 지역동일한 ID를 사용하여 둘 이상의 전자 메일을 보내려는 경우 AWS 각 지역에서 해당 ID를 확인해야 합니다.이 예제의 Python 스크립트는 다른 지역에서 이미 확인한 경우 새 지역에서 ID를 확인하는 프로세스를 단순화합니다.

이 스크립트를 사용하여 e-메일 주소 또는 도메인 ID를 복제할 수 있습니다. 이 스크립트를 사용하여 전자 메일 주소를 복제하는 경우 Amazon SES 이(가) 해당 주소로 을(를) 보냅니다. 이 스크립트는 해당 도메인에 대한 DNS 설정이 Route 53.

Note

샌드박스 및 계정 할당량 설정은 각 AWS 지역. 즉, 귀하의 계정이 Amazon SES 한 지역의 샌드박스를 사용하는 경우 다른 지역에서도 이를 제거해야 합니다. 귀하의 계정을 Amazon SES 샌드박스,참조 Amazon SES 샌드박스 환경에서 나가기 (p. 69). 귀하의 건강 증진을 위한 Amazon SES 서비스 할당량, 참조 더 많은 Amazon SES 할당량 보내기 (p. 142).

import jsonimport sysimport boto3from boto3 import Sessionfrom botocore.exceptions import ClientError

개 Calls Amazon SES API to trigger a verification email.def email_verify(email_list, client): for email in email_list: response = client.\ verify_email_identity(EmailAddress=email)

개 Calls Amazon SES API to generate a verification token for the domain being verified.def domain_verify(domain_list, client): token_list = [] for domain in domain_list: response = client.verify_domain_identity(Domain=domain) token_list.append(response['VerificationToken']) verification_table = dict(zip(domain_list, token_list)) 개 print(verificationTable) return verification_table

개 Calls Amazon Route 53 API to add a TXT record with the verification token for all

426

Page 435: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드ID 복제

개 domains in the verification table.def add_route_53_record(table='', rec_type='', dkim_dom='', dkim_tok='', r53=''): ses_prefix = "_amazonses." zone_list = [] 개 Added pagination for listing hosted zones paginator_hz = r53.get_paginator('list_hosted_zones') response_iterator_hz = paginator_hz.\ paginate( PaginationConfig={ 'MaxItems': 20, 'PageSize': 20 } ) for item in response_iterator_hz: for z in item['HostedZones']: zone_list.append(z) if rec_type == 'domainVerify': for domain in table: print(domain) for zone in zone_list: compare = '.'.join(domain.split('.')[-2:]) if compare == zone['Name'][:-1]: zone_id = zone['Id'].strip('/hostedzone/') record_list = [] paginator_rr = r53.\ get_paginator('list_resource_record_sets') resp_iterator_rr =\ paginator_rr.\ paginate( HostedZoneId=zone_id, PaginationConfig={ 'MaxItems': 20, 'PageSize': 20 } ) for item in resp_iterator_rr: for i in item['ResourceRecordSets']: record_list.append(i) is_txt_present = False for r_set in record_list: if (r_set['Name'][:-1] == ses_prefix+domain and r_set['Type'] == 'TXT'): is_txt_present = True txt_vals = r_set['ResourceRecords'] token = json.dumps(table[domain]) txt_vals.append({'Value': token}) batch = { "Changes": [ {"Action": "UPSERT", "ResourceRecordSet": { "Name": ses_prefix+domain, "Type": "TXT", "TTL": 1800, "ResourceRecords": txt_vals } } ] } try: add_txt = r53.change_resource_record_sets( HostedZoneId=zone_id, ChangeBatch=batch ) 개 print(add_txt)

427

Page 436: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드ID 복제

except ClientError as err: print(err) if (err.response['Error']['Code'] == 'InvalidChangeBatch'): print("Check if TXT record", "for the domain already exists.\n") else: pass

if is_txt_present is False: token = json.dumps(table[domain]) batch = { "Changes": [ {"Action": "UPSERT", "ResourceRecordSet": {"Name": ses_prefix+domain, "Type": "TXT", "TTL": 1800, "ResourceRecords": [{"Value": token}]} } ] } add_txt = r53.change_resource_record_sets( HostedZoneId=zone_id, ChangeBatch=batch ) else: pass elif rec_type == 'dkimVerify': for zone in zone_list: compare = '.'.join(dkim_dom.split('.')[-2:]) print(compare) if compare == zone['Name'][:-1]: zone_id = zone['Id'].strip('/hostedzone/') batch = { "Changes": [ {"Action": "UPSERT", "ResourceRecordSet": {"Name": dkim_tok+"._domainkey."+dkim_dom, "Type": "CNAME", "TTL": 1800, "ResourceRecords": [{"Value": dkim_tok+".dkim.amazonses.com"} ] } } ] } add_txt = r53.change_resource_record_sets( HostedZoneId=zone_id, ChangeBatch=batch ) 개 print(add_txt) else: pass

개 Enable DKIM and add CNAME records for verification.def generate_dkim(identity, client, dom_check, dns_client): ask = input("Do you want to configure DKIM for "+identity+"? (yes/no)") if ask == 'yes': if '@' in identity: dkim_tokens = client.verify_domain_dkim(Domain=identity.\ split('@')[1])['DkimTokens'] if dom_check == 'no': print("Add the following DKIM tokens as \ CNAME records through your DNS provider:")

428

Page 437: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드ID 복제

print(dkim_tokens) elif dom_check == 'yes': for token in dkim_tokens: 개 Then add CNAME records add_route_53_record(rec_type='dkimVerify', dkim_dom=identity.split('@')[1], dkim_tok=token, r53=dns_client ) else: dkim_tokens = client.verify_domain_dkim(Domain=identity)['DkimTokens'] if dom_check == 'no': print("Add the following DKIM tokens as \ CNAME records through your DNS provider:") print(dkim_tokens) elif dom_check == 'yes': for token in dkim_tokens: 개 Then add CNAME records add_route_53_record(rec_type='dkimVerify', dkim_dom=identity, dkim_tok=token, r53=dns_client ) elif ask == 'no': return

개 Add Amazon SNS topic for bounces, deliveries, and complaints for a single identity.def sns_topics(identity, client): ask = input("Do you want to configure an Amazon SNS topic for "+identity+"? (yes/no)") if ask == 'yes': bounce_topic = input("Enter ARN of bounce topic: ") if bounce_topic == '': pass else: try: client.ses_identity_notif_topic(Identity=identity, NotifType='Bounce', SnsTopic=bounce_topic ) except ClientError: print("Invalid ARN")

delivery_topic = input("Enter ARN of delivery topic: ") if delivery_topic == '': pass else: try: client.ses_identity_notif_topic(Identity=identity, NotifType='Delivery', SnsTopic=delivery_topic ) except ClientError: print("Invalid ARN")

complaint_topic = input("Enter ARN of complaint topic: ") if complaint_topic == '': pass else: try: client.ses_identity_notif_topic(Identity=identity, NotifType='Complaint', SnsTopic=complaint_topic ) except ClientError: print("Invalid ARN")

429

Page 438: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드ID 복제

elif ask == 'no': return

def main(): s = Session() 개 Returns list of regions where Amazon SES is available. regions = s.get_available_regions('ses') print("This is the list of available regions:") print(regions)

개 Source region. while True: src_region = input("Which region do you want to replicate from? ") if src_region in regions: 개 Create Amazon SES client for source region. ses_source_client = s.client('ses', region_name=src_region) region_email_identities = [] region_dom_identities = [] 개 Added pagination for listing Amazon SES identities. paginator = ses_source_client.get_paginator('list_identities') response_iterator = paginator.paginate(PaginationConfig={ 'MaxItems': 20, 'PageSize': 20 } ) for entry in response_iterator: for element in entry['Identities']: if '@' in element: region_email_identities.append(element) else: region_dom_identities.append(element) print("Email addresses in source region:") print(region_email_identities) print("Domains in source region:") print(region_dom_identities) break

else: print("The Region that you entered is invalid. ", "Enter a Region where Amazon SES is available.")

개 Destination region. while True: dst_region = input("Which region do you want to replicate to? ") if dst_region in regions: 개 Create Amazon SES client for destination region. ses_dest_client = s.client('ses', region_name=dst_region) email_call = email_verify(region_email_identities, ses_dest_client) verification_table = domain_verify(region_dom_identities, ses_dest_client)

개 Route 53 subroutine. Based on user-input, used if 개 domains being verified are in Route 53. r53dom = input("Is the DNS configuration for this domain managed by Amazon Route 53? (yes/no) ") if r53dom == 'yes': 개 Prints domain names and their verification tokens. print(verification_table) print("") r53_client = s.client('route53') add_route_53_record(table=verification_table, rec_type='domainVerify', r53=r53_client ) elif r53dom == 'no': print("Use the verification tokens returned to ",

430

Page 439: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드ID 복제

"create TXT records through your DNS provider.") 개 Prints domain names and their verification tokens. print(verification_table) print("")

개 Amazon SNS topic addition sns = input("Do you want to add Amazon SNS notifications for the identities? (yes/no) ") if sns == 'yes': for addr in region_email_identities: sns_topics(addr, ses_dest_client) for dom in region_dom_identities: sns_topics(dom, ses_dest_client) elif sns == 'no': pass

개 DKIM verification dkim = input("Do you want to configure DKIM for the identities? (yes/no) ") if dkim == 'yes': for addr in region_email_identities: generate_dkim(addr, ses_dest_client, r53dom, r53_client) for dom in region_dom_identities: generate_dkim(dom, ses_dest_client, r53dom, r53_client) break

else: print("Region entered invalid. ", "Please enter a region where SES is available.")

if __name__ == '__main__': main()

431

Page 440: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Amazon SES regions and endpoints

Regions and Amazon SESAmazon SES는 전 세계 여러 AWS 리전에서 사용할 수 있습니다. AWS는 각 리전에서 여러 가용 영역을 유지합니다. 이러한 가용 영역은 물리적으로 서로 분리되어 있지만, 지연 시간이 짧고 처리량과 중복성이 우수한 프라이빗 네트워크 연결로 통합됩니다. 이러한 가용 영역을 사용하여 아주 높은 수준의 가용성과 중복성을 제공하면서 지연 시간을 최소화할 수 있습니다.

전체 목록을 보려면 Amazon SES 지역 엔드포인트, 참조 Amazon Simple Email Service 엔드포인트 및 할당량 in the Amazon Web Services 일반 참조. 각 지역에서 사용할 수 있는 가용성 영역의 수에 대해 자세히 알아보려면 다음을 참조하십시오. AWS 글로벌 인프라.

이 단원에서는 여러 AWS 리전에서 Amazon SES를 사용하기 전에 꼭 알아야 할 내용을 설명합니다. 다음 내용으로 구성됩니다.

• Amazon SES regions and endpoints (p. 432)• Sandbox and sending limit increases (p. 432)• Verification of email addresses and domains (p. 433)• Easy DKIM (p. 433)• Suppression list (p. 433)• Feedback notifications (p. 433)• SMTP credentials (p. 433)• Sending authorization (p. 434)• Custom MAIL FROM domains (p. 434)• Email receiving (p. 435)

일반적인 정보 AWS 지역, 참조 AWS 지역 및 평가변수 in the AWS General Reference.

Amazon SES regions and endpointsAmazon Simple Email Service(Amazon SES)를 사용하여 이메일을 전송하는 경우 Amazon SES API 또는SMTP 인터페이스에 대한 엔드포인트를 제공하는 URL에 연결합니다. Amazon SES를 통해 이메일을 보내고 받는 데 사용되는 엔드포인트의 전체 목록은 AWS General Reference에 나와 있습니다. 자세한 내용은Amazon Simple Email Service (Amazon SES) in the AWS General Reference.

다음을 통해 이메일을 보낼 때 Amazon SES의 URL을 API (HTTPS) Endpoint HTTPS 요청을 Amazon SESAPI 또한 SMTP Endpoint 열 - SMTP 인터페이스를 사용하여 전자 메일 보내기

도메인으로 전송한 이메일을 수신하도록 Amazon SES를 구성한 경우, 사용 중인 도메인에 대한 DNS 설정에서 MX(메일 교환기) 레코드를 설정 (p. 201)할 때 인바운드 SMTP 엔드포인트 URL(즉, "inbound-smtp"로시작하는 URL)을 사용할 수 있습니다.

Note

인바운드 SMTP URL은 IMAP 서버 주소가 아닙니다. 즉, 이 URL은 Outlook과 같은 애플리케이션을사용하여 이메일을 수신하는 데 사용할 수 없습니다. 수신 이메일용 IMAP 서버를 제공하는 서비스는 Amazon WorkMail을 참조하십시오.

Sandbox and sending limit increases계정의 샌드박스 상태는 AWS리전마다 다를 수 있습니다. 즉, 계정이 미국 서부(오레곤) 리전의 샌드박스에서 제거된 경우, 미국 동부(버지니아 북부) 리전의 샌드박스에서도 계정을 제거한 경우가 아니라면 후자에 해당되는 리전의 샌드박스에 계정이 남아 있을 수 있습니다.

432

Page 441: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verification of email addresses and domains

발신 한도는 AWS 리전에 따라 다를 수도 있습니다. 예를 들면, 사용 중인 계정이 유럽(아일랜드) 리전에서초당 10건의 메시지를 발신할 수 있는 경우, 다른 리전에서는 이보다 더 많거나 또는 더 적은 메시지를 보낼수 있습니다.

샌드박스에서 계정을 제거하라는 요청을 제출 (p. 69)하거나 계정의 발신 할당량을 늘리라는 요청을 제출 (p. 142)할 때에는 해당 요청이 적용되는 모든 AWS 리전을 선택해야 합니다. 단일 지원 센터 사례에서 여러 건의 요청을 제출할 수 있습니다.

Verification of email addresses and domainsAmazon SES를 사용하여 이메일을 보내려면 먼저 발신 이메일 주소 또는 도메인이 사용자 본인의 소유인지확인해야 합니다. 이메일 주소 및 도메인의 확인 상태도 AWS 리전마다 다릅니다. 예를 들면, 미국 서부(오레곤) 리전의 도메인을 확인하는 경우, 미국 동부(버지니아 북부) 리전의 확인 프로세스를 다시 완료할 때까지후자의 리전에서 이메일을 전송하기 위해 전자의 도메인을 사용할 수는 없습니다. 이메일 주소 및 도메인 확인에 대한 자세한 내용은 Verifying identities in Amazon SES (p. 46)을 참조하십시오.

Easy DKIMEasy DKIM을 사용할 각 리전에 대해 Easy DKIM 설정 프로세스를 수행해야 합니다. 즉, 각 리전에서Amazon SES 콘솔 또는 Amazon SES API를 사용하여 TXT 레코드를 생성해야 합니다. 그런 다음, 도메인에 대한 DNS 구성에 모든 TXT 레코드를 추가해야 합니다. Easy DKIM 설정에 대한 자세한 내용은 AmazonSES에서의 Easy DKIM (p. 127) 단원을 참조하십시오.

Suppression list각 지역에는 별도의 글로벌 억제 목록이 있지만 한 지역의 전역 억제 목록에서 주소를 제거하면 AmazonSES 모든 지역의 전역 억제 목록에서 주소를 제거합니다. Amazon SES 콘솔을 사용하여 금지 목록에서 주소를 제거합니다. 금지 목록에서 주소를 제거하는 방법에 대한 자세한 내용은 Using the Amazon SES globalsuppression list (p. 187) 단원을 참조하십시오.

Feedback notifications여러 리전에서 피드백 알림을 설정하는 것에 대한 두 가지 중요 사항은 다음과 같습니다.

• Verified identity settings, such as whether you receive feedback by email or through Amazon SimpleNotification Service (Amazon SNS), only apply to the Region that you set them in. For example, if youverify [email protected] in the 미국 서부(오레곤) and 미국 동부(버지니아 북부) Regions and you wantto receive bounced emails via Amazon SNS notifications, you have to use the Amazon SES API or theAmazon SES console to set up Amazon SNS feedback notifications for [email protected] in bothRegions.

• Amazon SNS topics that you use for feedback forwarding have to be in the same Region where you useAmazon SES.

SMTP credentialsAmazon SES SMTP 인터페이스를 통해 이메일을 전송하는 데 사용하는 자격 증명은 각 AWS 리전마다 고유합니다. Amazon SES SMTP 인터페이스를 사용하여 둘 이상의 리전에서 이메일을 전송하는 경우, 각 리전에대해 SMTP 자격 증명 세트를 생성 (p. 84)해야 합니다.

433

Page 442: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Custom MAIL FROM domains

Note

2019년 1월 10일 이전에 SMTP 자격 증명을 생성한 경우 이전 버전의 버전을 사용하여 SMTP 자격증명을 생성했습니다. AWS 서명. 보안을 위해 이 날짜 이전에 생성한 자격 증명을 삭제하고 새 자격 증명을 사용하여 이를 대체해야 합니다. IAM 콘솔을 사용하여 이전 자격 증명을 삭제할 수 있습니다.

Custom MAIL FROM domains서로 다른 AWS 리전에서 확인된 자격 증명에 동일한 사용자 지정 MAIL FROM 도메인을 사용할 수 있습니다. 이를 위해서는 MAIL FROM 도메인의 DNS 서버에 1개의 MX 레코드만 게시하면 됩니다. 이러한 상황에서 반송 메일 알림은 MX 레코드에 먼저 지정된 해당 리전의 Amazon SES 피드백 엔드포인트로 전송됩니다.그런 다음, Amazon SES는 이메일을 전송한 리전에서 확인된 ID로 반송 메일을 리디렉션합니다.

여러 리전 중 한 곳에서 자격 증명에 대한 사용자 지정 MAIL FROM 설정 프로세스가 진행되는 동안 AmazonSES가 제공하는 MX 레코드 설정을 사용합니다. 사용자 지정 MAIL FROM 설정 프로세스에 대한 설명은Setting up a custom MAIL FROM domain (p. 63)에 나와 있습니다. 참조를 위해 모든 리전의 피드백 엔드포인트를 다음 표에 수록했습니다.

리전 이름 사용자 지정 MAIL FROM 전송 구성을 위한 피드백엔드포인트

미국 동부(오하이오) feedback-smtp.us-east-2.amazonses.com

미국 동부(버지니아 북부) feedback-smtp.us-east-1.amazonses.com

미국 서부(오레곤) feedback-smtp.us-west-2.amazonses.com

아시아 태평양(뭄바이) feedback-smtp.ap-south-1.amazonses.com

아시아 태평양(서울) 피드백-smtp.ap-northeast-2.amazonses.com

아시아 태평양(싱가포르) feedback-smtp.ap-southeast-1.amazonses.com

아시아 태평양(시드니) feedback-smtp.ap-southeast-2.amazonses.com

아시아 태평양(도쿄) 피드백-smtp.ap-northeast-1.amazonses.com

캐나다(중부) feedback-smtp.ca-central-1.amazonses.com

유럽(프랑크푸르트) feedback-smtp.eu-central-1.amazonses.com

유럽(아일랜드) feedback-smtp.eu-west-1.amazonses.com

유럽(런던) feedback-smtp.eu-west-2.amazonses.com

남아메리카(상파울루) feedback-smtp.sa-east-1.amazonses.com

AWS GovCloud (US) feedback-smtp.us-gov-west-1.amazonses.com

Sending authorization위임 발신자는 자격 증명 소유자의 자격 증명이 확인된 AWS 리전에서 이메일 전송만 수행할 수 있습니다.위임 발신자에게 권한을 부여하는 전송 권한 부여 정책이 해당 리전의 자격 증명에 연결되어야 합니다. 권한부여 전송에 대한 자세한 내용은 Using sending authorization with Amazon SES (p. 144) 단원을 참조하십시오.

434

Page 443: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Email receiving

Email receivingAmazon S3 버킷을 제외하고 Amazon SES에서 이메일 수신에 사용하는 모든 AWS 리소스는 Amazon SES엔드포인트와 동일한 AWS 리전에 있어야 합니다. 예를 들어 미국 서부(오레곤) 리전에서 Amazon SES를 사용하는 경우 사용하는 Amazon SNS 주제, AWS KMS 키, Lambda 함수도 미국 서부(오레곤) 리전에 있어야합니다. 마찬가지로 어떤 리전 내에서 Amazon SES로 이메일을 수신하려면 해당 리전 내에 활성 수신 규칙세트를 만들어야 합니다.

다음 표에는 Amazon SES가 이메일 수신을 지원하는 모든 AWS 리전에 대한 이메일 수신 엔드포인트가 나열되어 있습니다.

리전 이름 이메일 수신 엔드포인트

미국 동부(버지니아 북부) inbound-smtp.us-east-1.amazonaws.com

미국 서부(오레곤) inbound-smtp.us-west-2.amazonaws.com

유럽(아일랜드) inbound-smtp.eu-west-1.amazonaws.com

Note

Amazon SES 다음 지역에서 이메일 수신을 지원하지 않습니다. 미국 동부(오하이오), 아시아 태평양(뭄바이), 아시아 태평양(서울), 아시아 태평양(싱가포르), 아시아 태평양(시드니), 아시아 태평양(도쿄), 캐나다(중부), 유럽(프랑크푸르트), 유럽(런던), 남아메리카(상파울루), 그리고 AWSGovCloud (US).

435

Page 444: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Email sending quotas

Service quotas in Amazon SES다음 단원에서는 Amazon SES 리소스 및 작업에 적용되는 할당량을 나열하고 설명합니다. 일부 할당량만 늘릴 수 있습니다. 할당량 증가를 요청할 수 있는지 확인하려면 Eligible for Increase 각 섹션의 열.

Email sending quotas다음 할당량은 Amazon SES를 통해 이메일을 보낼 때 적용됩니다.

Sending quotasNote

할당량은 메시지 수가 아니라 수신자 수를 기준으로 합니다.

Resource 기본 할당량 증가 가능 여부

24시간의 기간당 보낼 수 있는 이메일 수

계정이 샌드박스에 있는 경우 24시간당 최대 200개의 이메일을 보낼 수 있습니다.

계정이 샌드박스 외부에 있는 경우, 이 수는 구체적인 사용 사례에따라 달라집니다.

Note

이전에는 이 값을 “발신할당량”이라고 일컬었습니다.

예 (p. 142)

초당 보낼 수 있는 스탠드 수(sending rate)

계정이 샌드박스에 있는 경우 초당 이메일 1개를 보낼 수 있습니다.

계정이 샌드박스 외부에 있는 경우, 이 속도는 구체적인 사용 사례에 따라 달라집니다.

예 (p. 142)

Message quotas

Resource 기본 할당량 증가 가능 여부

최대 메시지 크기(첨부 파일 포함) 메시지당 10MB(base64 인코딩후)

아니요

436

Page 445: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sender and recipient quotas

Sender and recipient quotas

Resource 기본 할당량 증가 가능 여부

메시지당 최대 수신자 수 메시지당 수신자 50명

Note

수신자는 모든 "To","CC" 또는 "BCC" 주소입니다.

아니요

확인할 수 있는 최대 자격 증명 수 AWS 리전당 ID 10,000개

Note

An identity 다음을 통해이메일을 보내는 데 사용하는 도메인 또는 이메일 주소입니다. AmazonSES.

아니요

Quotas related to event publishing

Resource 기본 할당량 증가 가능 여부

최대 구성 세트 개수 10,000개 아니요

구성 세트 이름의 최대 길이 구성 세트 이름에는 최대 64개의영숫자가 포함될 수 있습니다. 또한 하이픈(-) 및 밑줄(_)을 포함할수 있습니다. 이름에는 공백, 억양표시가 되어 있는 문자 또는 기타특수 문자를 사용할 수 없습니다.

아니요

구성 세트당 최대 이벤트 대상 개수

-10 아니요

CloudWatch 이벤트 대상당 최대크기 수

-10 아니요

Email template quotas

Resource 기본 할당량 증가 가능 여부

AWS 리전당 최대 이메일 템플릿수

10,000개 아니요

최대 템플릿 크기 500KB 아니요

각 템플릿의 최대 대체 값 수 무제한. 해당 사항 없음

437

Page 446: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Quotas related to email receiving

Resource 기본 할당량 증가 가능 여부

각 템플릿 이메일의 최대 수신인수

대상 50개. A destination 은(는)"To", "CC" 또는 "BCC" 행에 있는전자 메일 주소입니다.

Note

단일 API 호출에서 연락할 수 있는 대상 수는 계정의 최대 전송 속도에의해 제한될 수 있습니다.

아니요

Quotas related to email receiving다음 표에 Amazon SES를 통한 이메일 수신과 관련된 할당량이 나와 있습니다.

Resource 기본 할당량 증가 가능 여부

수신 규칙 세트당 최대 수신 규칙수

200 아니요

수신 규칙당 최대 작업 수 -10 아니요

수신 규칙당 최대 수신자 수 -100 아니요

AWS 계정당 최대 수신 규칙 세트수

40 아니요

AWS 계정당 최대 IP 주소 필터 수 -100 아니요

Amazon S3 버킷에 저장할 수 있는 최대 이메일 용량(헤더 포함)

30MB 아니요

Amazon SNS 알림에 게시할 수있는 최대 이메일 용량(헤더 포함)

150KB 아니요

General quotas다음 표에 Amazon SES를 통한 이메일 송수신에 모두 적용되는 할당량이 나와 있습니다.

Amazon SES API quotas

Resource 기본 할당량 증가 가능 여부

Amazon SES API 작업을 호출할수 있는 속도

모든 작업(SendEmail 및SendRawEmail 제외)이 초당 요청 하나로 제한됩니다. AmazonSES API에 대한 자세한 내용은Amazon Simple Email ServiceAPI Reference를 참조하십시오.

아니요

438

Page 447: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드성공 지표

Best practices for sending emailusing Amazon SES

고객과의 이메일 통신을 관리하는 방법은 email program. 이메일 프로그램의 성공이나 실패로 이어질 수 있는 여러 가지 요인이 있습니다. 이 요소들은 처음 혼란스럽거나 신비스러운 것으로 보일 수 있습니다. 하지만이메일 전송 방식에 대해 이해하고 몇 가지 모범 사례를 따르다 보면 이메일이 고객의 메일 수신함까지 이르는 가능성을 높일 수 있습니다.

주제• 이메일 프로그램을 위한 성공 지표 (p. 439)• Tips and best practices (p. 441)

이메일 프로그램을 위한 성공 지표이메일 프로그램의 성공 측정에 도움이 되는 여러 지표가 있습니다.

이번 단원에서는 다음 주제에 대한 정보에 대해서 살펴봅니다.• Bounces (p. 439)• Complaints (p. 440)• 메시지 품질 (p. 441)

Bounces반송은 이메일이 원하는 수신자에게 전송되지 않았을 때 발생합니다. 반송 메일에는 하드 바운스 및 소프트바운스라는 두 가지 유형이 있습니다. 하드 바운스는 이메일 주소가 존재하지 않는 것과 같은 영구적인 문제로 인해 이메일이 전송되지 않을 때 발생합니다. 소프트 바운스는 일시적인 문제로 인해 이메일을 전송할 수없을 때 발생합니다. 소프트 바운스는 수신자의 받은 편지함이 가득 찼거나 혹은 수신 서버가 일시적으로 중단되었을 때 발생할 수 있습니다. Amazon SES는 일정 기간 동안 소프트 바운스 이메일을 다시 전송하여 소프트 바운스를 처리합니다.

사용자는 이메일 프로그램에서 하드 바운스의 수를 모니터링하고 수신자 목록에서 하드 바운스를 일으키는이메일 주소를 제거해야 합니다. 이메일 수신기가 높은 하드 바운스 발생률을 감지하면 사용자가 수신자에대해서 잘 모른다고 가정합니다. 결과적으로 하드 바운스 발생률이 높으면 이메일 메시지의 발송률에 부정적인 영향을 미칠 수 있습니다.

다음은 반송 메일을 방지하여 발신자 평판을 높이는 데 도움이 될 수 있는 지침입니다.

• 하드 바운스 발생률을 5% 미만으로 유지하십시오. 이메일 프로그램의 하드 바운스 수가 적을수록 ISP가메시지의 적합성과 가치를 인정할 가능성이 높습니다. 이러한 비율은 합리적이고 달성 가능한 목표로 간주해야 하지만 모든 ISP에게 동일하게 적용되는 규칙은 아닙니다.

• 이메일 목록은 빌리거나 구매하지 마십시오. 이메일 목록에는 잘못된 주소가 상당수 포함되어 하드 바운스발생률이 크게 높아지는 원인이 될 수 있습니다. 또한 이러한 목록에는 불법 발신자를 가려내기 위해 사용하는 이메일 주소인 스팸 트랩이 포함되어 있기도 합니다. 메시지가 이러한 스팸 트랩으로 전송되면 전송완료율과 발신자 평판은 돌이킬 수 없을 정도로 손상될 수 있습니다.

439

Page 448: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드불만 제기

• 목록을 최신 상태로 유지하십시오. 일부 수신자에게 장기간 이메일을 보내지 않았다면 몇 가지 수단(웹사이트 로그인 활동, 구매 이력 등)을 통해 고객 상태의 유효성을 검증하는 것이 좋습니다.

• 고객 상태를 검증할 방법이 없다면 윈백(win-back) 이메일을 전송하는 것도 좋은 방법입니다. 윈백 이메일이란 오랫동안 소식을 듣지 못한 고객이 여전히 이메일 수신에 동의하는지 확인하는 것을 말합니다. 윈백이메일을 전송한 후에도 응답이 없는 수신자는 모두 목록에서 제거하십시오.

반송 메일을 받으면 다음 규칙을 준수하여 적절하게 대응해야 합니다.

• 하드 바운스를 일으키는 이메일 주소는 즉시 목록에서 제거하십시오. 또한 하드 바운스를 일으킨 주소로메시지를 재전송하지 마십시오. 하드 바운스가 반복되면서 누적되면 결국 수신자의 ISP가 판단하는 평판이 떨어지게 됩니다.

• 반송 메일 알림을 받는 데 사용하는 주소가 이메일을 수신할 수 있는지 확인합니다. 반송 메일 및 수신 거부 알림 설정에 대한 자세한 내용은 Monitoring Amazon SES email sending using notifications (p. 247) 단원을 참조하십시오.

• 인바운드 이메일이 자체 내부 서버가 아닌 ISP를 통해서 수신되는 경우에는 반송 메일 알림이 스팸 폴더로도착하거나, 혹은 완전히 삭제될 수도 있습니다. 따라서 반송 메일을 수신할 때는 호스팅 이메일 주소를 사용하지 않는 것이 바람직합니다. 하지만 호스팅 이메일 주소를 사용해야 한다면 자주 스팸 폴더를 확인하여 반송 메일 메시지가 스팸으로 표시되지 않도록 하십시오. Amazon SES에서는 반송 메일 알림이 전송되는 주소를 지정할 수 있습니다.

• 일반적으로 반송 메일에는 전송을 거부하는 메일 수신함의 주소가 포함되어 있습니다. 하지만 수신자 주소를 특정 이메일 캠페인과 연계할 수 있는 세부 데이터가 추가로 필요하다면 X-헤더에 내부 추적 시스템까지 밝혀낼 수 있는 값을 추가하십시오. 자세한 정보는 Header fields (p. 484) 단원을 참조하십시오.

Complaints불만 제기는 수신자가 자신의 웹 기반 이메일 클라이언트에서 "Mark as Spam" 또는 이와 비슷한 버튼을 클릭할 때 발생합니다. 이러한 불만 제기가 상당수 누적되면 ISP가 스팸을 전송하는 것으로 간주하여 발송률과 발신자 평판에 부정적인 영향을 미칠 수 있습니다. 하지만 ISP 중에는 수신 거부 신고 사실을 알려주는 곳도 있습니다. 이를 피드백 루프라고 합니다. Amazon SES는 피드백 루프를 제공하는 ISP의 수신 거부 사실을 자동으로 사용자에게 전송합니다.

다음은 수신 거부를 방지하여 발신자 평판을 높이는 데 도움이 될 수 있는 지침입니다.

• 불만 제기 발생률을 0.1% 미만으로 유지하십시오. 이메일 프로그램의 불만 제기 수가 적을수록 ISP가 메시지의 적합성과 가치를 인정할 가능성이 높습니다. 이러한 비율은 합리적이고 달성 가능한 목표로 간주해야 하지만 모든 ISP에게 동일하게 적용되는 규칙은 아닙니다.

• 고객이 마케팅 이메일에 불만을 제기하는 경우 해당 고객에게 더 이상 마케팅 이메일을 보내서는 안 됩니다. 하지만 이메일 프로그램에 다른 유형의 이메일, 예를 들어 알림 메시지나 거래 이메일 등이 포함되는경우에는 불만 제기를 선택한 수신자라고 해도 이러한 유형의 메시지는 계속해서 보낼 수 있습니다.

• 하드 바운스와 마찬가지로 오랫동안 이메일을 전송하지 않은 목록이 있다면 수신자가 메시지를 받는 이유에 대해서 잘 알 수 있도록 해야 합니다. 이러한 경우에는 인사말 메시지를 보내서 본인이 누구이고, 왜 이메일을 보내는지 알려주는 것이 좋습니다.

수신 거부 메일을 받으면 다음 규칙을 준수하여 적절하게 대응해야 합니다.

• 수신 거부 알림을 받는 데 사용하는 주소가 이메일을 수신할 수 있는지 확인합니다. 반송 메일 및 수신 거부 알림 설정에 대한 자세한 내용은 Monitoring Amazon SES email sending using notifications (p. 247) 단원을 참조하십시오.

• 수신 거부 알림이 ISP 또는 메일 시스템에서 스팸으로 표시되지 않도록 하십시오.• 수신 거부 알림에는 일반적으로 이메일 본문이 포함되므로, 이메일 헤더만 포함되는 반송 메일 알림과는

다릅니다. 하지만 수신 거부 알림에서는 수신을 거부한 개인의 이메일 주소가 제거됩니다. 수신을 거부한이메일 주소를 식별할 수 있도록 이메일 본문에 포함된 사용자 지정 X-헤더나 특수 식별자를 사용하십시

440

Page 449: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드메시지 품질

오. 이 방법을 사용하면 수신을 거부한 이메일을 쉽게 식별하여 해당 이메일을 수신자 목록에서 제거할 수있습니다.

메시지 품질이메일 수신기는 콘텐츠 필터를 사용하여 메시지의 속성을 감지함으로써 메시지의 적합성 여부를 식별합니다. 이 콘텐츠 필터는 메시지 내용을 자동으로 검토하여 불필요하거나 악의적인 메시지의 공통 특성을 찾아냅니다. Amazon SES는 콘텐츠 필터링 기술을 사용하여 맬웨어가 포함된 메시지를 감지하여 발신 전에 미리차단합니다.

이메일 수신기의 콘텐츠 필터가 메시지에 스팸 또는 악성 이메일의 특성이 포함되어 있다고 판단할 경우 해당 메시지는 플래그 처리되어 수신자의 메일 수신함이 아닌 다른 곳으로 전송될 가능성이 높습니다.

이메일을 설계할 때는 다음 사항에 주의하십시오.

• 최신 콘텐츠 필터는 지능적이어서 상황에 따라 적응하며 계속해서 바뀝니다. 사전 정의된 규칙에 의존하지도 않습니다. ReturnPath 또는 Litmus와 같은 타사 서비스는 이메일에서 콘텐츠 필터를 트리거하는 내용을식별하는 데 도움이 될 수 있습니다.

• 이메일에 링크가 포함되어 있는 경우, DNS 기반 블랙홀 목록(DNSBL)(예: URIBL.com을 참조하십시오. 및SURBL.org를 방문하십시오..

• 링크 단축 서비스는 사용하지 마십시오. 악의적인 발신자는 링크 단축 서비스를 사용하여 실제 링크 목적지를 숨기기도 합니다. ISP가 쇼트닝 서비스를 연결하는 것을 알아차릴 때—심지어 가장 평판이 좋은—악의적인 목적으로 사용되는 경우, 이러한 서비스에 대한 액세스를 완전히 거부할 수 있습니다. 이메일에 거부 목록에 추가된 링크 단축 서비스에 대한 링크가 포함된 경우, 고객의 받은 편지함에 도달하지 못하며 이메일 캠페인의 성공은 겪게 됩니다.

• 이메일의 링크가 모두 원하는 페이지를 가리키고 있는지 테스트하십시오.• 웹사이트에는 개인정보 보호정책 및 이용 약관 문서가 포함되어야 하는 동시에 이러한 문서들이 최신 상태

를 유지해야 합니다. 전송하는 이메일마다 이러한 문서에 대한 링크를 추가하는 것도 좋은 방법입니다. 이러한 문서 링크를 제공하면 고객에게 숨길 것도 없다는 것을 보여주면서 신뢰 관계를 형성하는 데 도움이될 수 있습니다.

• 잦은 빈도 수의 콘텐츠("일별 거래" 메시지 등)를 전송할 계획이라면 배포할 때마다 이메일 내용이 달라야합니다. 잦은 횟수로 메시지를 보낼 때는 각 메시지가 일정한 시간에 적합성을 유지해야만 반복적이고 귀찮게 느껴지지 않습니다.

Tips and best practices고객의 이익을 가장 먼저 생각한다고 해도 메시지 발송률에 영향을 미치는 상황은 언제든지 발생할 수 있습니다. 다음 단원에서는 이메일 커뮤니케이션이 의도한 고객에게 이르도록 하는 데 도움이 될 수 있는 권장 사항에 대해서 살펴봅니다.

General recommendations• Put yourself in your customer's shoes. Ask yourself if the message you are sending is something you

would want to receive in your own inbox. If the answer is anything less than an enthusiastic "yes!" thenyou probably shouldn't send it.

• Some industries have a reputation for poor quality or even malicious email practices. If you are involvedin the following industries, you must monitor your reputation very closely and resolve issues immediately:• Home mortgage• Credit• Pharmaceuticals and supplements

441

Page 450: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Domain and "From" address considerations

• Alcohol and tobacco• Adult entertainment• Casinos and gambling• Work-from-home programs

Domain and "From" address considerations• Think carefully about the addresses you send email from. The "From" address is one of the first pieces

of information your recipients see, and therefore can leave a lasting first impression. Additionally, someISPs associate your reputation with your "From" address.

• Consider using subdomains for different types of communications. For example, assume you are sendingemail from the domain example.com, and you plan to send both marketing and transactional messages.Rather than sending all of your messages from example.com, send your marketing messages from asubdomain such as marketing.example.com, and your transactional messages from a subdomain suchas orders.example.com. Unique subdomains develop their own reputations. Using subdomains reducesthe risk of damage to your reputation if, for example, your marketing communications land in a spam trapor trigger a content filter.

• If you plan to send a large number of messages, don't send those messages from an ISP-basedaddress such as [email protected]. If an ISP notices a large volume of messages coming [email protected], that email is treated differently than an email that comes from an outbound emailsending domain that you own.

• Work with your domain registrar to ensure that the WHOIS information for your domain is accurate.Maintaining an honest and up-to-date WHOIS record demonstrates that you value transparency, andallows users to quickly identify whether or not your domain is legitimate.

• Avoid using a no-reply address, such as [email protected], as your "From" or "Reply-to" address.Using a no-reply@ email address sends your recipients a clear message: that you aren't offering them away to contact you, and that you're not interested in their feedback.

Authentication• Authenticate your domain with SPF (p. 125) and SenderID. These authentication methods confirm to

email recipients that each email you send is actually from the domain it claims to be from.• Sign your outbound mail with DKIM (p. 126). This step confirms to recipients that the content has not

been changed in transit between sender and receiver.• You can test your authentication settings for both SPF and DKIM by sending an email to an ISP-

based email address that you own, such as a personal Gmail or Hotmail account, and then viewing themessage's headers. The headers indicate whether your attempts to authenticate and sign the messagewere successful.

Building and maintaining your lists• Implement a double opt-in strategy. When users sign up to receive email from you, send them a message

with a confirmation link, and do not start sending them email until they confirm their address by clickingthat link. A double opt-in strategy helps reduce the number of hard bounces resulting from typographicalerrors.

• When collecting email addresses with a web-based form, perform minimal validation on those addressesupon submission. For example, ensure that the addresses you collect are well-formed (that is, they are inthe format [email protected]), and that they refer to domains with valid MX records.

• Use caution when allowing user-defined input to be passed to Amazon SES unchecked. Forumsregistrations and form submissions present unique risks because the content is completely user-

442

Page 451: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Compliance

generated, and spammers can fill out forms with their own content. It's your responsibility to ensure thatyou only send email with high-quality content.

• It is highly unlikely that a standard alias (such as postmaster@, abuse@, or noc@) will ever sign up foryour email intentionally. Ensure that you are only sending messages to real people who actually wantto receive them. This rule is especially true for standard aliases, which are customarily reserved foremail watchdogs. These aliases can be maliciously added to your list as a form of sabotage, in order todamage your reputation.

Compliance• Be aware of the email marketing and anti-spam laws and regulations in the countries and regions you

send email to. You're responsible for ensuring that the email you send complies with these laws. Thisguide doesn't cover these laws, so it's important that you research them. For a list of laws, see EmailSpam Legislation by Country on Wikipedia.

• Always consult an attorney to obtain legal advice.

443

Page 452: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드General issues

Amazon SES 문제 해결이 섹션에는 문제가 발생했을 때 도움이 될 수 있는 다음의 주제가 포함되어 있습니다.

• 발생할 수 있는 도메인 확인 문제에 대한 자세한 내용은 Email address and domain verificationproblems (p. 445) 단원을 참조하십시오.

• DKIM 관련 문제에 대한 해결 방법은 Troubleshooting DKIM problems in Amazon SES (p. 447) 단원을참조하십시오.

• 이메일을 전송할 때 발생할 수 있는 일반적인 전송 문제 및 각각 취할 수 있는 교정 작업의 목록은 AmazonSES Delivery problems (p. 448) 단원을 참조하십시오.

• 수신자가 Amazon SES를 통해 전송된 이메일을 수신할 때 발생할 수 있는 문제에 대한 설명은 Problemswith emails received from Amazon SES (p. 449) 단원을 참조하십시오.

• 반송 메일, 불만 제기 및 전송 알림 관련 문제에 대한 해결 방법은 Amazon SES notificationproblems (p. 449) 단원을 참조하십시오.

• Amazon SES를 통해 이메일을 전송할 때 발생할 수 있는 오류의 목록은 Amazon SES email sendingerrors (p. 450) 단원을 참조하십시오.

• API 또는 SMTP 인터페이스를 사용하여 Amazon SES로 다중 호출을 수행할 때 이메일 전송 속도를 높이는 방법에 대한 팁은 Increasing throughput with Amazon SES (p. 451) 단원을 참조하십시오.

• Amazon SES에서 반환하는 SMTP 응답 코드 목록 및 Simple Mail Transfer Protocol(SMTP) 인터페이스를 통해 Amazon SES를 사용할 때 발생할 수 있는 일반적인 문제에 대한 해결 방법은 Amazon SES SMTPissues (p. 452) 단원을 참조하십시오.

• Amazon SES 쿼리(HTTPS) API가 반환하는 오류 코드의 목록은 Error codes returned by the AmazonSES API (p. 388) 단원을 참조하십시오.

• 전송 검토 프로세스와 관련된 일반적인 문제 및 이를 처리하는 방법에 대한 설명은 Amazon SES Sendingreview process FAQs (p. 463) 단원을 참조하십시오.

• DNS 기반 블랙홀 목록(DNSBL)이 을(를) 통해 보내는 것에 어떤 영향을 미치는지에 대한 논의 AmazonSES, 참조 DNS 블랙홀 목록(DNSBL) FAQ (p. 477).

Amazon SES API를 직접 호출하는 경우 수신할 수 있는 HTTP 오류는 Amazon Simple Email Service APIReference를 참조하십시오.

General Amazon SES issues이 페이지의 정보는 Amazon SES를 사용할 때 발생할 수 있는 문제를 설명하며 이를 진단하는 데 도움이 됩니다.

Changes that I make are not immediately visible사용자들이 전세계 데이터 센터의 컴퓨터들을 통해 액세스하는 서비스인 Amazon SES은 최종 일관성이라고 하는 분산 컴퓨팅 모델을 사용합니다. Amazon SES(또는 다른 AWS 서비스)에서 변경한 사항을, 있을 수있는 모든 엔드포인트에서 보게 될 때까지는 시간이 걸립니다. 일부 지연은 서버에서 서버로, 전 세계의 리전에서 리전으로 데이터를 보내는 데 걸리는 시간으로 인해 발생합니다. 대부분의 경우, 이 지연에는 몇 분이채 소요되지 않습니다.

지연이 발생할 수 있는 영역에는 다음이 포함됩니다.

444

Page 453: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Verification problems

• Creating and modifying configuration sets – When you create or modify a configuration set (for example,if you associate a dedicated IP pool with an existing configuration set (p. 239)), there may be a brief delayfrom the time that you create or modify it to the time those changes are active.

• Creating and modifying event destinations – When you create or modify an event destination (forexample, to tell Amazon SES to send your email sending data to another AWS service (p. 269)), theremay be a delay between the time your created or modified the event destination and the time emailsending events actually arrive at the specified destination.

Email address and domain verification problemsAmazon SES에서 이메일 주소 또는 도메인을 확인하려면 Amazon SES 콘솔 또는 Amazon SES API를 사용하여 해당 절차를 시작합니다. 이 단원에는 확인 절차 관련 문제를 해결하는 데 도움이 될 수 있는 정보가 포함되어 있습니다.

Common email verification problems• The verification email didn't arrive – If you complete the procedures in Verifying email addresses in

Amazon SES (p. 46) but you don't receive the verification email within a few minutes, complete thefollowing steps:• Check the spam or junk mail folder for the email address you're attempting to verify.• Confirm that the address that you're trying to verify is able to receive email. Using a separate email

address (such as your personal email address), send a test email to the address that you want toverify.

• Check the list of verified addresses in the Amazon SES console. Make sure that there aren't any errorsin the email address that you're attempting to verify.

Common domain verification problemsVerifying domains in Amazon SES (p. 57) 내 절차를 사용하여 도메인을 확인하다가 문제가 발생할 경우 아래와 같은 예상 원인 및 해결 방법을 검토합니다.

• You're attempting to verify a domain that you don't own – You can't verify a domain that you don't own.For example, if you want to send email through Amazon SES from an address on the gmail.com domain,you need to verify that email address specifically (p. 46). You can't verify the entire gmail.com domain.

• Your DNS provider doesn't allow underscores in TXT record names – Some DNS providers don't allowyou to include the underscore character in the DNS record names for your domain. If this is true for yourprovider, you can omit _amazonses from the name of the TXT record.

• Your DNS provider appended the domain name to the end of the TXT record – Some DNS providersautomatically append the name of your domain to the attribute name of TXT record. For example, if youcreate a record where the attribute name is _amazonses.example.com, the provider might append thedomain name, resulting in _amazonses.example.com.example.com). To avoid duplication of the domainname, add a period to the end of the domain name when you create the TXT record. This step tells yourDNS provider that it isn't necessary to append the domain name to the TXT record.

• Your DNS provider modified the DNS record value – Some providers automatically modify DNS recordvalues to use only lowercase letters. Amazon SES only verifies your domain when it detects a verificationrecord for which the attribute value exactly matches the value that Amazon SES provided when youstarted the domain verification process. If the DNS provider for your domain changes your TXT recordvalues to use only lowercase letters, contact the DNS provider for additional assistance.

• You want to verify the same domain multiple times – You might need to verify your domain more thanonce because you're sending in different regions, or because you're using the same domain to send from

445

Page 454: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Checking domain verification settings

multiple AWS accounts. If your DNS provider doesn't allow you to have more than one TXT record withthe same attribute name, you might still be able to verify two domains. If your DNS provider allows it, youcan assign multiple attribute values to the same TXT record. For example, if your DNS is managed byAmazon Route 53, you can set up multiple values for the same TXT record by completing the followingsteps:1. In the Route 53 console, choose the TXT record you created when you verified your domain in the first

region.2. In the Value box, go to the end of the existing attribute value, and then press Enter.3. Add the attribute value for the additional region, and then save the record set.

If your DNS provider doesn't let you to assign multiple values to the same TXT record, you can verifythe domain once with _amazonses in the attribute name of the TXT record, and another time with_amazonses removed from the attribute name. The downside of this solution is that you can only verifythe same domain two times.

Checking domain verification settingsAmazon SES 도메인 확인 TXT 레코드가 올바로 DNS 서버에 게시되었는지 다음 절차를 사용하여 확인할 수있습니다. 이 절차는 Windows 및 Linux에서 사용 가능한 nslookup 도구를 사용합니다. Linux의 경우, dig도사용할 수 있습니다.

이 지침의 명령은 Windows 7에서 실행되었으며, ses-example.com.

이 절차에서, 먼저 사용자의 도메인에 서비스하는 DNS 서버를 찾은 후 해당 서버에 TXT 레코드를 보기 위한쿼리를 전송합니다. 사용자의 도메인에 서비스하는 DNS 서버로 쿼리하는 이유는 이들 서버가 도메인에 대한 가장 최신 정보를 포함하고 있으며, 이 정보가 다른 DNS 서버로 전파되려면 시간이 걸릴 수 있기 때문입니다.

도메인 확인 TXT 레코드가 올바로 DNS 서버에 게시되었는지 확인하려면

1. 다음 단계에 따라 도메인의 이름 서버를 찾습니다.

a. 명령줄로 이동합니다. Windows 7에서 명령줄로 이동하려면 [Start]를 선택하고 cmd를 입력하십시오. Linux 기반 운영 체제에서, 터미널 창을 엽니다.

b. 명령 프롬프트에서 다음을 입력합니다. <domain> 은(는) 도메인 입니다. 그러면 사용자의 도메인에서비스하는 모든 이름 서버가 나열됩니다.

nslookup -type=NS <domain>

귀하의 도메인이 ses-example.com이 명령은 다음과 같습니다.

nslookup -type=NS ses-example.com

이 명령의 출력은 사용자의 도메인에 서비스하는 모든 이름 서버를 나열합니다. 다음 단계에서 이들서버 중 하나에 쿼리합니다.

2. 다음 단계에 따라 TXT 레코드가 올바로 게시되었는지 확인합니다.

a. 명령 프롬프트에서 다음을 입력합니다. <domain> 귀하의 도메인입니다. <name server> 은(는) 1단계에서 찾은 이름 서버 중 하나입니다.

nslookup -type=TXT _amazonses.<domain> <name server>

우리의 ses-example.com 1단계에서 발견된 이름 서버를 호출하는 경우 ns1.name-server.net다음을 입력합니다.

446

Page 455: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DKIM problems

nslookup -type=TXT _amazonses.ses-example.com ns1.name-server.net

b. 명령의 출력에서 text = 이하의 문자열이 Amazon SES 콘솔의 자격 증명 목록에서 도메인을 선택하면 표시되는 TXT 값과 일치하는지 확인합니다.

이 예에서는 다음과 같은 TXT 기록을 찾고 있습니다. _amazonses.ses-example.com 가치 있는fmxqxT/icOYx4aA/bEUrDPMeax9/s3frblS+niixmqk=. 기록이 올바르게 게시되면 명령이 다음과 같은 출력을 갖게 됩니다.

_amazonses.ses-example.com text = "fmxqxT/icOYx4aA/bEUrDPMeax9/s3frblS+niixmqk="

Troubleshooting DKIM problems in Amazon SES이 단원에서는 Amazon SES에서 DKIM 인증을 구성할 때 발생할 수 있는 몇 가지 문제에 대해 설명합니다.DKIM을 설정하려고 할 때 문제가 발생하면 아래의 가능한 원인과 해결 방법을 검토하십시오.

You set up DKIM successfully, but your messages aren't being DKIM-signed

Easy DKIM (p. 127) 또는 BYODKIM (p. 134)을 사용하여 도메인에 대한 DKIM을 구성했지만 보내는 메시지에 DKIM 서명이 없는 경우 다음을 수행하십시오.• Make sure that DKIM is enabled for the appropriate identity. To enable DKIM for an identity in the

Amazon SES console, choose the email domain in the Identities list. On the details page for thedomain, expand DKIM, and then choose Enable to enable DKIM.

• Make sure that you're not sending from a verified email address on the same domain. If you setup DKIM for a domain, then all of the messages that you send from that domain are DKIM-signed,except for email addresses that you verified individually. Individually verified email addressesuse separate settings. For example, if you configured DKIM for the domain example.com, andyou separately verified the email address [email protected] (but didn't configure DKIM for theaddress), then emails that you send from [email protected] are sent without DKIM authentication.You can resolve this issue by deleting the email address identity from the list of identities for youraccount.

• If you use the same identity in more than one AWS Region, you have to configure DKIM for eachregion separately. Similarly, if you use the same domain with more than one AWS account, you haveto configure DKIM for each account. If you remove the necessary DNS records for a specific regionor account, Amazon SES disables DKIM signing in that region or account. If DKIM signing becomesdisabled, Amazon SES sends you a notification by email.

Your domain's DKIM details in the Amazon SES console show DKIM: waiting on sender verification... DKIMVerification Status: pending verification.

Easy DKIM (p. 127) 또는 자체 DKIM 인증 토큰 제공 (p. 134)의 절차를 완료하여 도메인에 대해 DKIM을구성했지만 Amazon SES 콘솔에 여전히 DKIM 확인 대기 중으로 표시되는 경우 다음을 수행하십시오.• Wait up to 72 hours. In rare cases, it can take time for the DNS records to become visible to Amazon

SES.• Confirm that the CNAME record (for Easy DKIM) or the TXT record (for BYODKIM) uses the correct

name. Some DNS providers automatically append the domain name to records that you create.For example, if you create a record with a Name of example._domainkey.example.com,your DNS provider might add the name of your domain to the end of this string, resultingin example._domainkey.example.com.example.com. For more information, see thedocumentation for your DNS provider.

You receive an email from Amazon SES that says your DKIM setup has been (or will be) revoked.

이는 Amazon SES가 더 이상 DNS 서버에서 필요한 CNAME 레코드(Easy DKIM을 사용한 경우) 또는 필요한 TXT 레코드(BYODKIM을 사용한 경우)를 찾을 수 없음을 의미합니다. 이 알림 이메일은 DKIM 설정

447

Page 456: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Delivery problems

이 취소 상태로 되고 DKIM 서명이 비활성화되기 전에 DNS 레코드를 다시 게시해야 하는 시간을 안내합니다. DKIM 설정이 취소되면 DKIM 설정 절차를 처음부터 다시 시작해야 합니다.

When attempting to set up BYODKIM, the DKIM verification process fails.

프라이빗 키가 올바른 형식을 사용하는지 확인합니다. 프라이빗 키는 PKCS #1 형식이어야 하며 1024비트 RSA 암호화를 사용해야 합니다. 또한 프라이빗 키는 base64로 인코딩되어야 합니다.

While setting up BYODKIM, you receive a BadRequestException error when you try to specify a publickey for the domain.

BadRequestException 오류가 발생하면 다음을 수행하십시오.• Make sure that the selector that you specify for the public key contains at least 1 and less than

or equal to 63 alphanumeric characters. The selector can't include periods or other symbols orpunctuation.

• Make sure that you've removed the header and footer lines from the public key, and that you'veremoved all of the line breaks from the public key.

When using Easy DKIM, your DNS servers successfully return the Amazon SES DKIM CNAME records,but return SERVFAIL for the domain verification TXT record.

DNS 공급자가 CNAME 레코드를 리디렉션하지 못할 수도 있습니다. Amazon SES 및 ISP는 TXT 레코드를 쿼리합니다. DKIM 사양을 준수하기 위해 DNS 서버는 TXT 레코드 쿼리 및 CNAME 레코드 쿼리 모두에 응답해야 합니다. DNS 공급자가 TXT 레코드 쿼리에 응답할 수 없는 경우 대안은 DNS 호스팅 공급자로 Route 53을 사용하는 것입니다.

Your emails contain two DKIM signatures

d=amazonses.com을 포함하는 추가 DKIM 서명은 Amazon SES에서 자동으로 추가됩니다. 이 서명은무시할 수 있습니다.

Amazon SES Delivery problemsAmazon SES로 요청이 성공하면 메시지는 대부분 즉시 전송됩니다. 일부의 경우에는 약간의 지연이 있을 수있습니다. 어떤 경우에도 이메일이 전송된다는 확신을 할 수 있습니다.

하지만 Amazon SES가 메시지를 전송할 때 여러 요인에 의해 전송이 실패할 수 있으며, 일부 경우에는 전송한 메시지가 도달하지 않아야만 전송 실패를 인지할 수 있습니다. 다음 프로세스를 사용하여 이러한 상황을해결합니다.

이메일이 도달하지 않을 경우 다음을 시도합니다.

• Verify that you made a SendEmail or SendRawEmail request for the email in question and that youreceived a successful response. If you are making these requests programmatically, check your softwarelogs to ensure that the program made the request and received a successful response.

• Read the blog article Three places where your email could get delayed when sending through SESbecause the problem might actually be a delay rather than a nondelivery.

• Check the sender's email address (the "From" address) to verify that it is valid. Also check the Return-Path address, which is where bounce messages are sent. If your mail bounced, there will be anexplanatory error message there.

• Check the AWS 서비스 상태 대시보드 to confirm that there is not a known problem with Amazon SES.• Contact the email recipient or the recipient's ISP. Verify that the recipient is using the correct email

address, and inquire whether there have been any known delivery problems with the recipient's ISP.Also, determine whether the email did arrive but was filtered as spam.

• If you have signed up for a paid AWS Support Plan, you can open a new technical support case. In yourcorrespondence with us, please provide any relevant recipient addresses, along with any request IDs ormessage IDs returned from the SendEmail or SendRawEmail responses.

• Wait to see if the problem is actually a delay, not a permanent delivery failure. To combat spammers,some ISPs temporarily reject incoming messages from unknown sending mail servers. This process,

448

Page 457: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Problems with received emails

called greylisting, can cause a delay in delivery. Amazon SES will retry these messages. If greylisting isthe issue, the ISP might accept the email on one of these retry attempts.

Problems with emails received from Amazon SES이 섹션에서는 Amazon SES에서 보낸 이메일을 받을 때 발생할 수 있는 몇 가지 일반적인 문제에 대해 설명합니다.

The email client displays "sent via amazonses.com" as the source of the email

일부 이메일 클라이언트는 발신자의 도메인이 전송한 도메인과 일치하지 않을 때 "via" 도메인을 표시합니다(이 경우 amazonses.com) ). 자세한 내용은 Gmail 지원 웹사이트에서 발신자 이름 옆의 추가 정보를 참조하십시오. 또는 DomainKeys Identified Mail (p. 126)(DKIM)을 설정할 수 있습니다. DKIM을 사용하여 이메일을 인증할 경우, 일반적으로 이메일 클라이언트는 "경유" 도메인을 표시하지 않습니다.DKIM 서명이 이메일이 해당 도메인으로부터 전송되었음을 증명하기 때문입니다. DKIM 설정에 대한 자세한 내용은 Amazon SES에서 DKIM을 사용하여 이메일 인증 (p. 126) 단원을 참조하십시오.

The message contains garbled or nonsense characters

메시지에 ASCII 문자 집합에 없는 문자(예: 억양 표시가 되어 있는 라틴 문자, 중국어 문자 또는 아랍어문자)가 포함되어 있는 경우 HTML 문자 인코딩을 사용하여 해당 문자를 인코딩해야 합니다. Email OnAcid 웹사이트의 HTML 문자 변환기와 같은 웹 기반 도구를 사용하여 이메일의 문자를 인코딩할 수 있습니다.

또는 MIME 메시지를 직접 수집할 수 있습니다. MIME 메시지에서 메시지가 UTF-8 인코딩을 사용하도록 지정할 수 있습니다. UTF-8 인코딩을 사용하는 경우 메시지에서 ASCII가 아닌 문자를 직접 사용할 수있습니다. MIME 메시지 생성을 마쳤으면 SendRaweMail API를 사용하여 메시지를 보낼 수 있습니다.SendRawEmail API를 사용하여 메시지를 보내는 방법에 대한 자세한 내용은 AWS SDK를 사용하여 원시 이메일 보내기 (p. 417)를 참조하십시오.

이 문제의 일반적인 원인 중 하나는 Microsoft Word의 스마트 따옴표 기능입니다. Word에서 콘텐츠를 복사하여 이메일에 붙여 넣는 경우가 많으면 이 문제가 발생할 수 있습니다. 스마트 따옴표 기능은 곧은 따옴표 문자(“...“)를 둥근 따옴표 문자(“...”)로 바꿉니다. 둥근 따옴표 문자는 표준 ASCII 문자가 아닙니다. 그 결과, 일부 이메일 클라이언트에서 "??"로 렌더링될 수 있습니다. 또는 "예:" 이 문제를 해결하려면 Word에서 스마트 따옴표 기능을 사용하지 않도록 설정하면 됩니다. 또는 이전 단락의SendRaweMail 솔루션을 사용할 수 있습니다. 이 기능을 사용하지 않도록 설정하는 방법에 대한 자세한내용은 Microsoft Office 지원 웹사이트에서 Word의 스마트 따옴표를 참조하십시오.

Amazon SES notification problems반송 메일, 수신 거부 또는 전송 알림에서 문제가 발생할 경우 아래의 예상 원인 및 해결 방법을 검토합니다.

• You receive bounce notifications via Amazon SNS, but you don't know which recipients the notificationscorrespond to—In the future, to associate a bounce notification with a given recipient, you have thefollowing options:• Since Amazon SES doesn't retain any custom message IDs that you have added, store a mapping

between an identifier and the Amazon SES message ID that Amazon SES passes back to you when itaccepts the email.

• In each call to Amazon SES, send to a single recipient, rather than sending a single message tomultiple recipients.

• You can enable feedback forwarding via email, which will forward the full bounce message to you.• You receive complaint notifications via Amazon SNS or email feedback forwarding, but you don't know

which recipients the notifications correspond to—Some ISPs redact the complained recipient's emailaddress before passing the complaint notification to Amazon SES. To enable you to find the recipient'semail address, your best option is to store your own mapping between an identifier and the Amazon SES

449

Page 458: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Email sending errors

message ID that Amazon SES passes back to you when it accepts the email. Note that Amazon SESdoes not retain any custom message IDs that you add.

• You want to set up notifications to go to an Amazon SNS topic you don't own—The owner of that topicmust configure an Amazon SNS access policy that allows your account to call the SNS:Publish actionon their topic. For information about how to control access to your Amazon SNS topic through the useof IAM policies, see Managing Access to Your Amazon SNS Topics in the Amazon Simple NotificationService 개발자 안내서.

Amazon SES email sending errors이 주제는 Amazon SES를 통해 이메일을 전송할 때 발생할 수 있는 이메일 전송 고유 오류에 대해 알아봅니다. Amazon SES를 통해 이메일을 전송하려 할 때 Amazon SES 호출이 실패할 경우, Amazon SES가 애플리케이션으로 오류 메시지를 반환하고 이메일을 전송하지 않습니다. 이 오류 메시지를 확인하는 방법은Amazon SES를 호출하는 방법에 따라 달라집니다.

• If you call the Amazon SES API directly, the Query action will return an error. The error may beMessageRejected or one of the errors specified in the Common Errors topic of the Amazon SimpleEmail Service API Reference.

• If you call Amazon SES using an AWS SDK that uses a programming language that supports exceptions,Amazon SES may throw an exception. The type of exception depends on the SDK and on the error. Forexample, the exception could be an Amazon SES MessageRejectedException (the actual name mayvary depending on the SDK) or a general AWS exception. Regardless of the type of exception, the errortype and the error message in the exception will give you more information.

• If you call Amazon SES through its SMTP interface, the way that you experience the error depends onthe application. Some applications might display a specific error message, and others might not. For alist of SMTP response codes that Amazon SES returns, see SMTP response codes returned by AmazonSES (p. 454).

Note

이메일을 전송하기 위한 Amazon SES 호출이 실패할 경우 해당 이메일에 대해서는 비용이 부과되지 않습니다.

다음은 이메일을 전송할 때 Amazon SES가 오류를 반환할 수 있는 Amazon SES 고유 문제의 유형입니다. 이러한 오류는 일반적인 AWS 오류 MalformedQueryString 에 명시된 대로 일반적인 오류 주제를Amazon Simple Email Service API Reference.

• Email address is not verified. The following identities failed the check in region region: identity1, identity2,identity3—You are trying to send email from an email address or domain that you have not verified withAmazon SES (p. 46). This error could apply to the "From", "Source", "Sender", or "Return-Path" address.If your account is still in the Amazon SES sandbox (p. 69), you also must verify every recipient emailaddress except for the recipients provided by the Amazon SES mailbox simulator (p. 175). If AmazonSES is not able to show all of the failed identities, the error message ends with an ellipsis.

Note

Amazon SES has endpoints in multiple AWS Regions (p. 432), and email address verificationstatus is separate for each AWS Region. You must complete the verification process for eachsender in the AWS Region(s) you want to use.

• Account is paused—Your account's ability to send email is paused. You can still access the Amazon SESconsole and perform most operations. However, if you try to send an email, you receive this message.

If we pause your account's ability to send email, we automatically send a notification to the email addressassociated with your AWS account. For more information, see the section called “Sending review processFAQs” (p. 463).

450

Page 459: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Increasing throughput

• Throttling—Your application may be trying to send too many messages per second, or you may havesent too much email over the last 24 hours. In these cases, the error message may be similar to thefollowing examples:• Daily message quota exceeded—You have sent the maximum number of messages that you are

permitted in a 24-hour period. If you have exceeded your daily quota, you will have to wait until the next24-hour period before you can send more email.

• Maximum sending rate exceeded—You are attempting to send more emails per second than ispermitted by your maximum send rate. If you have exceeded your sending rate, you can continueto send email, but will need to reduce your send rate. For more information, see How to handle a"Throttling - Maximum sending rate exceeded" error on the AWS 메시징 및 타게팅 블로그.

You should regularly monitor your sending activity to see how close you are to your sending quotas. Formore information, see 모니터링 Amazon SES 할당량 보내기 (p. 141). For general information aboutsending quotas, see 관리 Amazon SES 할당량 보내기 (p. 140). For information about how to increaseyour sending quotas, see 더 많은 Amazon SES 할당량 보내기 (p. 142).

Important

If the error text that explains the throttling error is not related to you exceeding your daily quotaor maximum send rate, then there might be a system-wide problem that is causing reducedsending capabilities. For information about the service status, go to the AWS 서비스 상태 대시보드.

• There are no recipients specified—No recipients were provided.• There are non-ASCII characters in the email address—The email address string must be 7-bit ASCII.

If you want to send to or from email addresses that contain Unicode characters in the domain part ofan address, you must encode the domain using Punycode. Punycode is not permitted in the local partof the email address (the part before the @ sign) nor in the "friendly from" name. If you want to useUnicode characters in the "friendly from" name, you must encode the "friendly from" name using MIMEencoded-word syntax, as described in Sending raw email using the Amazon SES API (p. 106). For moreinformation about Punycode, see RFC 3492.

• Mail FROM domain is not verified—Amazon SES could not read the MX record required to use thespecified MAIL FROM domain. For information setting up custom MAIL FROM domains, see Setting up acustom MAIL FROM domain (p. 63).

• Configuration set does not exist—The configuration set that you specified does not exist. A configurationset is an optional parameter that you use to publish email sending events. For more information, seeMonitor email sending using Amazon SES event publishing (p. 269).

Increasing throughput with Amazon SES이메일을 전송할 때 최대 전송 속도가 허용하는 한 얼마든지 Amazon SES를 호출할 수 있습니다. (최대 전송요금에 대한 자세한 내용은 관리 Amazon SES 할당량 보내기 (p. 140).) 하지만, Amazon SES 을(를) 완료하는 데 시간이 걸립니다.

Amazon SES API 또는 SMTP 인터페이스를 사용하여 Amazon SES를 여러 번 호출할 경우 다음 팁이 처리량을 개선하는 데 도움이 될 수 있습니다.

• Measure your current performance to identify bottlenecks—A possible performance test involves sendingmultiple test emails as quickly as possible within a code loop in your application. Measure the round-triplatency of each SendEmail request. Then, incrementally launch additional instances of the applicationon the same machine, and watch for any impact on network latency. You may also want to run thistest on multiple machines and on different networks to help pinpoint any possible machine resourcebottlenecks or network bottleneck that may exist.

• (API only) Consider using persistent HTTP connections—Rather than incurring the overhead ofestablishing a separate new HTTP connection for each API request, use persistent HTTP connections.That is, reuse the same HTTP connection for multiple API requests.

451

Page 460: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드SMTP issues

• Consider using multiple threads—When an application uses a single thread, the application code callsthe Amazon SES API and then synchronously waits for an API response. Sending emails is typically anI/O-bound operation, and doing the work from multiple threads provides better throughput. You can sendconcurrently using as many threads of execution as you wish.

• Consider using multiple processes—Using multiple processes can help increase your throughputbecause you will have more concurrent active connections to Amazon SES. For example, you cansegment your intended emails into multiple buckets, and then run multiple instances of your emailsending script simultaneously.

• Consider using a local mail relay—Your application can quickly transmit messages to your local mailserver, which can then help to buffer the messages and asynchronously transmit them to Amazon SES.Some mail servers support delivery concurrency, which means that even if your application is generatingemails to the mail server in a single-threaded fashion, the mail server will use multiple threads whensending to Amazon SES. For more information, see Integrating Amazon SES with your existing emailserver (p. 90).

• Consider hosting your application closer to the Amazon SES API endpoint—You may wish to considerhosting your application in a data center close to the Amazon SES API endpoint, or on an AmazonEC2 instance in the same AWS Region as the Amazon SES API endpoint. This can help to decreasenetwork latency between your application and Amazon SES, and improve throughput. For a list of regionswhere Amazon SES is available, see Amazon Simple Email Service (Amazon SES) in the AWS GeneralReference.

• Consider using multiple machines—Depending on the system configuration on your host machine, theremay be a limit on the number of simultaneous HTTP connections to a single IP address, which maylimit the benefits of parallelism once you exceed a certain number of concurrent connections on a singlemachine. If this is a bottleneck, you may wish to consider making concurrent Amazon SES requestsusing multiple machines.

• Consider using the Amazon SES query API instead of the SMTP endpoint—Using the Amazon SESquery API enables you to submit the email send request using a single network call, whereas interfacingwith the SMTP endpoint involves an SMTP conversation which consists of multiple network requests (forexample, EHLO, MAIL FROM, RCPT TO, DATA, QUIT). For more information about the Amazon SESquery API, see Amazon SES API를 사용하여 이메일 보내기 (p. 105).

• Use the Amazon SES mailbox simulator to test your maximum throughput—To test any changes youmay implement, you can use the mailbox simulator. The mailbox simulator can help you to determineyour system’s maximum throughput without using up your daily sending quota. For information about themailbox simulator, see Testing email sending in Amazon SES (p. 175).

SMTP 인터페이스를 통해 Amazon SES에 액세스하는 경우, 처리량에 영향을 미칠 수 있는 특정 SMTP 관련문제는 Amazon SES SMTP issues (p. 452) 단원을 참조하십시오.

Amazon SES SMTP issues이 단원에는 Amazon SES Simple Mail Transfer Protocol(SMTP) 인터페이스를 통한 이메일 전송과 관련된몇 가지 일반적인 문제에 대한 해결 방법이 나와 있습니다. 또한 Amazon SES에서 반환하는 SMTP 응답 코드 목록도 포함되어 있습니다.

Amazon SES SMTP 인터페이스를 통한 이메일 전송에 대한 자세한 내용은 Using the Amazon SES SMTPinterface to send email (p. 83) 단원을 참조하십시오.

• You can't connect to the Amazon SES SMTP endpoint.

Problems connecting to the Amazon SES SMTP endpoint are most commonly related to the followingissues:• Incorrect credentials – The credentials that you use to connect to the SMTP endpoint are different

from your AWS credentials. To obtain your SMTP credentials, see Obtaining your Amazon SES

452

Page 461: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드SMTP issues

SMTP credentials (p. 84). For more information about credentials, see Types of Amazon SEScredentials (p. 16).

• Network or firewall issues – Your network might be blocking outbound connections over the port you'retrying to send email from. To determine if an issue on your local network is causing connection issues,type the following command at the command line, replacing port with the port you're trying to use(typically 465, 587, 2465, or 2587): telnet email-smtp.us-west-2.amazonaws.com port

If you are able to connect to the SMTP server using this command, and you are trying to connectto Amazon SES using TLS Wrapper or STARTTLS, complete the procedures shown in Test yourconnection to the Amazon SES SMTP interface using the command line (p. 99).

If you can't connect to the Amazon SES SMTP endpoint using telnet or openssl, it indicates thatsomething in your network (such as a firewall) is blocking outbound connections over the port you'retrying to use. Work with your network administrator to diagnose and fix the problem.

• You're sending to Amazon SES from an Amazon EC2 instance using port 25, and you're receivingtimeout errors.

Amazon EC2 restricts port 25 by default. To remove these restrictions, submit an Amazon EC2 이메일전송 제한 제거 요청. You can also connect to Amazon SES using ports 465 or 587, neither of which isrestricted.

• Network errors are causing dropped emails.

Ensure that your application uses retry logic when it connects to the Amazon SES SMTP endpoint,and that your application can detect and retry message delivery in case of a network error. SMTP is averbose protocol, and sending an email using this protocol requires several network round trips. Becauseof the nature of SMTP, the potential for network errors increases.

• You lose connection with the SMTP endpoint.

Lost connections are most commonly caused by the following issues:• MTU size – If you receive a time-out error message, the Maximum Transmission Unit (MTU) of the

network interface for the computer you're using to connect to the Amazon SES SMTP interface may betoo large. To resolve this issue, set the MTU size on that computer to 1500 bytes.

For more information about setting the MTU size on Windows, Linux, and macOS operating systems,see Queries Appear to Hang in the Client and Do Not Reach the Cluster in the Amazon RedshiftCluster Management Guide.

For more information about setting the MTU size for an Amazon EC2 instance, see Network MaximumTransmission Unit (MTU) for Your EC2 Instance in the Linux 인스턴스용 Amazon EC2 사용 설명서.

• Long-lived connections – The Amazon SES SMTP endpoint runs on a fleet of Amazon EC2 instancesbehind an Elastic Load Balancer (ELB). In order to ensure that the system is up-to-date and faulttolerant, active Amazon EC2 instances are periodically terminated and replaced with new instances.Because your application connects to an Amazon EC2 instance through the ELB, the connectionbecomes invalid when the Amazon EC2 instance is terminated. You should establish a new SMTPconnection after you have delivered a fixed number of messages via a single SMTP connection, or ifthe SMTP connection has been active for some amount of time. You will need to experiment to findappropriate thresholds depending on where your application is hosted and how it submits email toAmazon SES.

• You want to know the IP addresses of the Amazon SES SMTP mail servers so that you can whitelist theIP addresses with your network.

The IP addresses for the Amazon SES SMTP endpoints reside behind load balancers. As a result, theseIP addresses change frequently. It's not possible to provide a definitive list of all of the IP addresses forthe Amazon SES endpoints. We recommend that you whitelist the amazonses.com domain, rather thanwhitelisting individual IP addresses.

453

Page 462: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드SMTP response codes

SMTP response codes returned by Amazon SES이 단원에는 Amazon SES SMTP 인터페이스에서 반환하는 응답 코드 목록이 나와 있습니다.

400 오류가 수신되는 SMTP 요청을 재시도해야 합니다. 갈수록 더 오래 대기했다가 요청을 재시도하도록 시스템을 구현하는 것이 좋습니다. 예를 들어, 재시도하기 전에는 5초를 대기하고, 그 다음 재시도 시에는 10초를, 그 다음에는 30초를 대기하는 식입니다. 세 번째 재시도에 실패하면 20분을 기다린 다음 이러한 프로세스를 반복합니다. 지수 재시도 정책을 사용하는 구현 예제를 보려면 AWS 메시징 및 타게팅 블로그의 조절 -최대 송신률 초과" 오류를 처리하는 방법을 참조하십시오.

Note

AWS SDK는 재시도 로직을 자동으로 구현하지만 SMTP 대신 HTTPS 인터페이스를 사용합니다.

500 오류가 발생하면 요청을 다시 제출하기 전에 요청을 수정해 문제를 해결해야 합니다. 예를 들어, AWS인증 자격 증명이 잘못된 경우 요청을 다시 보내기 전에 올바른 자격 증명을 사용하도록 애플리케이션을 업데이트해야 합니다.

설명 응답 코드 추가 정보

인증 성공 235 Authenticationsuccessful

SMTP 클라이언트가 성공적으로 연결되어 SMTP 서버에 로그인했습니다.

전송 성공 250 Ok MessageID MessageID 독특한 문자열로Amazon SES 메시지를 식별하는 데사용합니다.

서비스 사용 불가 421 Too many concurrentSMTP connections

현재, SMTP 서버에 대한 연결이 너무 많아 Amazon SES가 요청을 처리할 수 없습니다.

로컬 처리 오류 451 Temporary servicefailure

Amazon SES에서 요청을 처리할 수없습니다. 요청이 처리되지 못하도록 막는 요청 관련 문제가 있을 수있습니다.

Timeout 451 Timeout waiting fordata from client

요청 간에 너무 많은 시간이 경과하여 SMTP 서버가 연결을 차단했습니다.

일일 전송 할당량을 초과함 454 Throttling failure:Daily message quotaexceeded

Amazon SES가 24시간 기준으로 전송을 허용한 최대 이메일 수를 초과했습니다. 자세한 정보는관리 Amazon SES 할당량 보내기 (p. 140) 단원을 참조하십시오.

최대 전송 속도를 초과함 454 Throttling failure:Maximum sending rateexceeded

Amazon SES가 초당 전송할 수있도록 허용한 최대 이메일 수를 초과했습니다. 자세한 정보는관리 Amazon SES 할당량 보내기 (p. 140) 단원을 참조하십시오.

SMTP 자격 증명 검증 시Amazon SES 문제

454 Temporaryauthentication failure

이 문제의 원인일 수 있는 문제에는다음이 포함되지만 이에 국한되지는않습니다.

• There is a problem with theencryption between your email-

454

Page 463: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드SMTP response codes

설명 응답 코드 추가 정보sending application and AmazonSES. Note that you have touse an encrypted connectionwhen you connect to AmazonSES. For more information, seeConnecting to an Amazon SESSMTP endpoint (p. 87).

• Amazon SES could beexperiencing an issue. Check theAWS 서비스 상태 대시보드 forupdates.

요청 수신 중 오류 발생 454 Temporary servicefailure

Amazon SES에서 요청을 수신하지못했습니다. 따라서 메시지가 전송되지 않았습니다.

잘못된 자격 증명 530 Authenticationrequired

이메일을 보내는 데 사용하는 애플리케이션이 Amazon SES SMTP 인터페이스에 연결할 때 인증을 시도하지 않았습니다.

인증 자격 증명이 유효하지않음

535 AuthenticationCredentials Invalid

이메일을 전송하는 데 사용하는애플리케이션이 Amazon SES에대해 올바른 SMTP 자격 증명을제공하지 않았습니다. SMTP 자격 증명과 AWS 자격 증명은 동일하지 않습니다. 자세한 정보는Obtaining your Amazon SES SMTPcredentials (p. 84) 단원을 참조하십시오.

계정이 Amazon SES에 가입되지 않음

535 Account not subscribedto SES

SMTP 자격 증명을 소유한 AWS 계정이 Amazon SES에 가입되지 않았습니다.

메시지가 너무 김 552 Message is too long. 전송하려는 메시지의 크기가 10MB보다 큽니다.

계정이 Amazon SES에 가입되지 않음

535 Account not subscribedto SES

SMTP 자격 증명을 소유한 AWS 계정이 Amazon SES에 가입되지 않았습니다.

사용자가 Amazon SESSMTP 엔드포인트를 호출할권한이 없음

554 Access denied:User UserARN is notauthorized to performses:SendRawEmail onresource IdentityARN

SMTP 자격 증명을 소유한 사용자의 AWS Identity and AccessManagement(IAM) 정책 또는Amazon SES 전송 권한 부여 정책이 Amazon SES SMTP 엔드포인트를 호출하도록 허용되지 않습니다.

455

Page 464: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드SMTP response codes

설명 응답 코드 추가 정보

확인되지 않은 이메일 주소 554 Message rejected:Email address is notverified. The followingidentities failed thecheck in region region:identity0, identity1,identity2

Amazon SES 계정에서 이메일을전송하도록 확인 (p. 46)되지 않은이메일 주소 또는 도메인에서 이메일을 전송하려고 합니다. 이 오류는 "From", "Source", "Sender" 또는 "Return-Path" 주소에 해당할 수있습니다. 계정이 여전히 샌드박스에 있을 경우 Amazon SES 메일박스 시뮬레이터 (p. 175)에서 제공하는 수신자를 제외한 모든 수신자 이메일 주소를 확인해야 합니다.Amazon SES에서 확인 점검에 실패한 ID를 모두 볼 수 없는 경우 오류메시지가 마침표 세 개(...)로 끝납니다.

Note

Amazon SES는 여러 AWS리전 (p. 432)에 엔드포인트가 있으며 이메일 주소확인 상태는 AWS 리전마다 서로 다릅니다. 사용하려는 AWS 리전에서 각 발신자에 대해 확인 프로세스를 완료해야 합니다.

456

Page 465: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Delete Suppressed Addresses

Deleting personal data from AmazonSES

사용 방식에 따라 Amazon SES는 개인 데이터로 간주되는 특정 데이터를 저장할 수 있습니다. 예를 들어Amazon SES를 사용하여 이메일을 보내려면 최소 한 개 이상의 확인된 자격 증명(이메일 주소 또는 도메인)을 제공해야 합니다. Amazon SES 콘솔이나 Amazon SES API를 사용하여 이 개인 데이터를 영구적으로 삭제할 수 있습니다.

이 장에서는 개인 데이터로 간주될 수 있는 다양한 유형의 데이터를 삭제하는 절차를 설명합니다.

이 단원의 주제:• Delete Email Addresses From the Account-Level Suppression List (p. 457)• Delete Data About Email Sent Using Amazon SES (p. 457)• Delete Data About Identities (p. 458)• Delete Sender Authentication Data (p. 459)• Delete Data Related to Receiving Rules (p. 460)• Delete Data Related to IP Address Filters (p. 460)• Delete Data in Email Templates (p. 461)• Delete Data in Custom Verification Email Templates (p. 461)• Delete All Personal Data by Closing Your AWS Account (p. 461)

Delete Email Addresses From the Account-LevelSuppression List

Amazon SES에는 계정 수준 금지 목록(선택 사항)이 포함되어 있습니다. 이 기능을 활성화하면 이메일 주소가 반송 메일 또는 수신 거부가 되면 금지 목록에 자동으로 추가됩니다. 이메일 주소는 삭제할 때까지 이 목록에 유지됩니다. 계정 수준 금지 목록에 대한 자세한 내용은 계정 수준 금지 목록 사용 (p. 177) 단원을 참조하십시오.

Amazon SES API v2의 DeleteSuppressedDestination 작업을 사용하여 계정 수준 금지 목록에서 이메일 주소를 제거할 수 있습니다. 이 단원에는 AWS CLI를 사용하여 이메일 주소를 삭제하는 절차가 나와 있습니다. AWS CLI 설치 및 구성에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서를 참조하십시오.

AWS CLI를 사용하여 계정 수준 금지 목록에서 주소를 제거하려면

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

aws sesv2 delete-suppressed-destination --email-address [email protected]

이전 명령에서 교체 [email protected] 계정 레벨 억제 목록에서 제거할 이메일 주소를 가지고 있습니다.

Delete Data About Email Sent Using Amazon SESAmazon SES를 사용하여 이메일을 보낼 때 해당 이메일에 대한 정보를 다른 AWS 서비스로 보낼 수 있습니다. 예를 들어 이메일 이벤트(배달, 열기, 클릭 등)에 대한 정보를 Kinesis Data Firehose로 보낼 수 있습니다.

457

Page 466: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Remove Stored Event Data

이 이벤트 데이터에는 일반적으로 이메일을 보낸 이메일 주소와 IP 주소가 포함됩니다. 또한 이메일을 받는모든 수신자의 이메일 주소가 포함됩니다.

Kinesis Data Firehose를 사용하여 이메일 이벤트 데이터를 Amazon Simple Storage Service, AmazonElasticsearch Service, Amazon Redshift 등의 여러 대상으로 스트리밍할 수 있습니다. 이 데이터를 제거하려면 먼저 Kinesis Data Firehose로의 데이터 스트리밍을 중지한 후 이미 스트리밍된 데이터를 삭제해야 합니다. Amazon SES 이벤트 데이터를 Kinesis Data Firehose로 스트리밍하는 것을 중지하려면 Kinesis DataFirehose 이벤트 대상을 삭제해야 합니다.

Amazon SES 콘솔을 사용하여 Kinesis Data Firehose 이벤트 대상을 제거하려면

1. https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.2. Email Sending(이메일 보내기)에서 Configuration Sets(구성 세트)를 선택합니다.3. 구성 세트 목록에서 Kinesis Data Firehose 이벤트 대상을 포함하는 구성 세트를 선택합니다.4. 옆에 위치 Kinesis Data Firehose 삭제할 이벤트 대상을 선택하고 삭제 ( button5. 필요한 경우 Kinesis Data Firehose가 다른 서비스에 작성한 데이터를 제거합니다. 자세한 정보는 the

section called “Remove Stored Event Data” (p. 458) 단원을 참조하십시오.

Amazon SES API를 사용하여 이벤트 대상을 삭제할 수도 있습니다. 다음 절차는 AWS Command LineInterface(AWS CLI)를 사용하여 Amazon SES API와 상호 작용합니다. AWS SDK를 사용하거나 HTTP 요청을 직접 하여 API와 상호 작용할 수도 있습니다.

AWS CLI를 사용하여 Kinesis Data Firehose 이벤트 대상을 제거하려면

1. 명령줄 프롬프트에 다음 명령을 입력합니다.

aws ses delete-configuration-set-event-destination --configuration-set-name configSet \--event-destination-name eventDestination

이 명령에서는 configSet 구성 세트의 이름을 Kinesis Data Firehose 이벤트 대상. ReplaceeventDestination 이름 Kinesis Data Firehose 이벤트 대상.

2. 필요한 경우 Kinesis Data Firehose가 다른 서비스에 작성한 데이터를 제거합니다. 자세한 정보는 thesection called “Remove Stored Event Data” (p. 458) 단원을 참조하십시오.

Remove Stored Event Data다른 AWS 서비스에서 정보를 삭제하는 방법에 대한 자세한 내용은 다음 문서를 참조하십시오.

• Delete an Object and Bucket in the Amazon Simple Storage Service 시작 안내서• Delete an Amazon ES Domain in the Amazon Elasticsearch Service Developer Guide• Deleting a Cluster in the Amazon Redshift Cluster Management Guide

Kinesis Data Firehose를 사용하여 이메일 데이터를 Splunk로 스트리밍할 수도 있습니다. Splunk는 AWS가지원하지 않거나 AWS Management 콘솔에서 관리되지 않는 타사 서비스입니다. Splunk에서 데이터를 제거하는 자세한 방법은 시스템 관리자에게 문의하거나, Splunk 웹 사이트의 설명서를 참조하십시오.

Delete Data About Identities자격 증명에는 Amazon SES를 사용하여 이메일을 보내는 데 사용하는 이메일 주소와 도메인이 포함되어 있습니다. 일부 관할권에서 이메일 주소나 도메인은 개인 식별 데이터로 간주될 수 있습니다.

458

Page 467: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Delete Sender Authentication Data

Amazon SES 콘솔을 사용하여 자격 증명을 삭제하려면

1. https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.2. 자격 증명 관리에서 다음 중 하나를 수행합니다.

• Choose Domains if you want to delete a domain.• Choose Email Addresses if you want to delete an email address.

3. 삭제하려는 자격 증명을 선택한 후 제거를 선택합니다.4. 확인 대화 상자에서 Yes, Delete Identity(예, 자격 증명 삭제)를 선택합니다.

Amazon SES API를 사용하여 자격 증명을 삭제할 수도 있습니다. 다음 절차는 AWS Command LineInterface(AWS CLI)를 사용하여 Amazon SES API와 상호 작용합니다. AWS SDK를 사용하거나 HTTP 요청을 직접 하여 API와 상호 작용할 수도 있습니다.

AWS CLI를 사용하여 자격 증명을 삭제하려면

• 명령줄 프롬프트에 다음 명령을 입력합니다.

aws ses delete-identity --identity [email protected]

이 명령에서는 [email protected] 을(를) 삭제합니다.

Delete Sender Authentication Data발신자 인증은 Amazon SES 구성 프로세스와 관련이 있기 때문에 다른 사용자가 나를 대신하여 이메일을 보낼 수 있습니다. 발신자 인증을 활성화하려면 Using sending authorization with Amazon SES (p. 144)에서 설명한 대로 정책을 만들어야 합니다. 이러한 정책은 내게 속한 자격 증명과, 나를 대신하여 이메일을 보내는사용자나 그룹과 연결된 AWS ID를 포함합니다. 발신자 인증 정책을 수정하거나 삭제하여 이 개인 데이터를제거할 수 있습니다. 다음 절차는 이러한 정책을 삭제하는 방법을 보여줍니다.

Amazon SES 콘솔을 사용하여 발신자 인증 정책을 삭제하려면

1. https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.2. 자격 증명 관리에서 다음 중 하나를 수행합니다.

• Choose Domains if the sender authentication policy you want to delete is associated with a domain.• Choose Email Addresses if the sender authentication policy you want to delete is associated with an

email address.3. Identity Policies(자격 증명 정책)에서 삭제하려는 정책을 선택한 후 Remove Policy(정책 제거)를 선택합

니다.

Amazon SES API를 사용하여 발신자 인증 정책을 삭제할 수도 있습니다. 다음 절차는 AWS Command LineInterface(AWS CLI)를 사용하여 Amazon SES API와 상호 작용합니다. AWS SDK를 사용하거나 HTTP 요청을 직접 하여 API와 상호 작용할 수도 있습니다.

AWS CLI를 사용하여 발신자 인증 정책을 삭제하려면

• 명령줄 프롬프트에 다음 명령을 입력합니다.

aws ses delete-identity-policy --identity example.com --policy-name samplePolicy

이 명령에서는 example.com 발신자 인증 정책을 포함하는 ID를 가지고 있습니다. ReplacesamplePolicy 보낸 사람 인증 정책 이름

459

Page 468: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Delete Data Related to Receiving Rules

Delete Data Related to Receiving RulesAmazon SES를 사용하여 이메일을 수신하는 경우 하나 이상의 자격 증명(이메일 주소 또는 도메인)에 적용되는 수신 규칙을 만들 수 있습니다. 이러한 규칙은 지정한 자격 증명으로 전송된 수신 메일을 Amazon SES가 처리하는 방식을 결정합니다.

Amazon SES 콘솔을 사용하여 수신 규칙을 삭제하려면

1. https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.2. 이메일 수신에서 Rule Sets(규칙 세트)를 선택합니다.3. 수신 규칙이 활성 규칙 세트의 일부인 경우 View Active Rule Set(활성 규칙 세트 보기)를 선택합니다. 그

렇지 않은 경우에는 삭제하려는 수신 규칙을 포함하는 규칙 세트를 선택합니다.4. 수신 규칙 목록에서 삭제하려는 규칙을 선택합니다.5. [Actions] 메뉴에서 [Delete]를 선택합니다.6. 확인 대화 상자에서 삭제를 선택합니다.

Amazon SES API를 사용하여 수신 규칙을 삭제할 수도 있습니다. 다음 절차는 AWS Command LineInterface(AWS CLI)를 사용하여 Amazon SES API와 상호 작용합니다. AWS SDK를 사용하거나 HTTP 요청을 직접 하여 API와 상호 작용할 수도 있습니다.

AWS CLI를 사용하여 수신 규칙을 삭제하려면

• 명령줄 프롬프트에 다음 명령을 입력합니다.

aws ses delete-receipt-rule --rule-set myRuleSet --rule-name myReceiptRule

이 명령에서는 myRuleSet 영수증 규칙 을(를) 포함하는 영수증 규칙 세트의 이름을 가지고 있습니다.Replace myReceiptRule 를 클릭합니다.

Delete Data Related to IP Address FiltersAmazon SES를 사용하여 수신 이메일을 받는 경우 특정 IP 주소로부터 전송되는 메시지를 수락하거나 차단하는 필터를 생성할 수 있습니다.

Amazon SES 콘솔을 사용하여 IP 주소 필터를 삭제하려면

1. https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.2. 이메일 수신에서 IP Address Filters(IP 주소 필터)를 선택합니다.3. IP 주소 필터 목록에서 제거하려는 필터를 선택한 후 삭제를 선택합니다.

Amazon SES API를 사용하여 IP 주소 필터를 삭제할 수도 있습니다. 다음 절차는 AWS Command LineInterface(AWS CLI)를 사용하여 Amazon SES API와 상호 작용합니다. AWS SDK를 사용하거나 HTTP 요청을 직접 하여 API와 상호 작용할 수도 있습니다.

AWS CLI를 사용하여 IP 주소 필터를 삭제하려면

• 명령줄 프롬프트에 다음 명령을 입력합니다.

aws ses delete-receipt-filter --filter-name IPfilter

이 명령에서는 IPfilter 를 클릭합니다.

460

Page 469: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Delete Data in Email Templates

Delete Data in Email Templates이메일을 보낼 때 이메일 템플릿을 사용하는 경우 그러한 템플릿을 어떻게 구성했는지에 따라 템플릿에 개인데이터가 들어 있을 수 있습니다. 예를 들어 수신인이 자세한 정보를 문의할 수 있는 이메일 주소를 템플릿에추가했을 수 있습니다.

이메일 템플릿은 Amazon SES API를 사용해야만 삭제할 수 있습니다.

AWS CLI를 사용하여 이메일 템플릿을 삭제하려면

• 명령줄 프롬프트에 다음 명령을 입력합니다.

aws ses delete-template --template-name sampleTemplate

이 명령에서는 sampleTemplate 를 클릭합니다.

Delete Data in Custom Verification Email Templates새로운 이메일 발신 주소를 확인하기 위해 사용자 지정 템플릿을 사용하는 경우 그러한 템플릿을 어떻게 구성했는지에 따라 템플릿에 개인 데이터가 들어 있을 수 있습니다. 예를 들어 수신인이 자세한 정보를 문의할수 있는 이메일 주소를 확인 이메일 템플릿에 추가했을 수 있습니다.

사용자 지정 확인 이메일 템플릿은 Amazon SES API를 사용해야만 삭제할 수 있습니다.

AWS CLI를 사용하여 사용자 지정 확인 이메일 템플릿을 삭제하려면

• 명령줄 프롬프트에 다음 명령을 입력합니다.

aws ses delete-custom-verification-email-template --template-name verificationEmailTemplate

이 명령에서는 verificationEmailTemplate 을(를) 삭제할 사용자 정의 확인 이메일 템플릿의 이름을 입력합니다.

Delete All Personal Data by Closing Your AWSAccount

AWS 계정을 닫아서 Amazon SES에 저장된 모든 개인 데이터를 삭제할 수도 있습니다. 하지만 이렇게 하면다른 모든 AWS 서비스에 저장된 모든 데이터(개인 데이터와 그 외 데이터)도 삭제됩니다.

AWS 계정을 닫으면 AWS 계정의 데이터가 90일 동안 보존됩니다. 이 보관 기간이 끝나면 데이터가 영구적으로 삭제되며 되돌릴 수 없습니다.

Warning

모든 AWS 서비스와 리전에서 해당 AWS 계정에 저장된 모든 데이터를 완전히 삭제하기로 확정한경우에만 다음 절차를 수행하십시오.

AWS Management 콘솔을 사용하여 AWS 계정을 닫을 수 있습니다.

AWS 계정을 닫으려면

1. https://console.aws.amazon.com/에서 AWS Management 콘솔을 엽니다.

461

Page 470: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Delete All Data by Closing Your AWS Account

2. 로 이동 계정 설정 페이지 https://console.aws.amazon.com/청구/홈?#/계정.

Warning

다음 두 단계가 영구적으로 삭제됩니다. all 저장한 데이터의 AWS 서비스 전반에 걸친 AWS 지역.

3. 계정 닫기 아래에서 AWS 계정을 닫을 경우 그로 인한 결과에 대해 설명하는 고지 사항을 읽으십시오.약관에 동의하면 확인란을 선택한 후 계정 닫기를 선택합니다.

4. 확인 대화 상자에서 계정 닫기를 클릭합니다.

462

Page 471: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending review process FAQs

Amazon SES FAQ이 단원에는 Amazon SES 사용과 관련하여 자주 묻는 질문 몇 가지에 대한 답변이 포함되어 있습니다.

이 단원에는 다음 주제에 대한 FAQ가 포함되어 있습니다.• Amazon SES Sending review process FAQs (p. 463)• DNS 블랙홀 목록(DNSBL) FAQ (p. 477)• Amazon SES email sending metrics FAQs (p. 479)

Amazon SES Sending review process FAQsAWS는 Amazon SES를 통해 전송된 이메일을 모니터링하여 서비스가 악의적이거나 원치 않거나 품질이 낮은 이메일을 전달하는 데 사용되지 않도록 합니다. 사용자가 이러한 범주 중 하나에 속하는 콘텐츠를 전송하는 것으로 확인될 경우 AWS는 해당 계정에 대해 조치를 취합니다. 우리는 이것을 sending review process.

대부분의 경우 계정에서 문제가 발견되면 AWS는 해당 계정을 검토 (p. 463)합니다. 다른 경우에는 계정의 이메일 전송 기능을 일시 중지 (p. 465)합니다. AWS는 각 계정의 발신자 평판을 보호하고 다른 AmazonSES 사용자에게 서비스 중단 및 배달 가능성 문제가 발생하지 않도록 이러한 조치를 취합니다.

이 단원에는 다음 주제에 대한 FAQ가 포함되어 있습니다.• Account under review FAQ (p. 463)• Sending pause FAQ (p. 465)• Bounce FAQ (p. 468)• Complaint FAQ (p. 470)• Spamtrap FAQ (p. 474)• Manual investigation FAQ (p. 475)

Account under review FAQQ1. I received a message stating that my account is underreview. What does that mean?계정에서 전송된 이메일과 관련된 문제가 발견되어 문제를 해결할 시간을 주는 것입니다. 평소와 같이 이메일을 계속 전송할 수 있지만 계정 검토의 원인이 된 문제를 해결해야 합니다. 검토 기간이 끝나기 전에 문제를 해결하지 않으면 AWS가 추가 이메일을 전송할 수 있는 기능을 일시 중지할 수 있습니다.

Q2. Will I always be notified if my account is placed underreview?예 AWS 계정과 연결된 이메일 주소로 알림을 받게 됩니다.

Q3. Why didn't I receive a notification that my account is underreview?계정이 검토 중인 경우 AWS 계정과 연결된 이메일 주소로 알림이 자동으로 전송됩니다. 이 이메일 주소는AWS 계정을 생성할 때 지정한 주소입니다. 경우에 따라 이 이메일 주소는 Amazon SES를 사용하여 이메일을 전송하는 데 사용하는 주소와 다를 수 있습니다.

463

Page 472: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Account Under Review

평판 대시보드 (p. 347)를 정기적으로 참조하여 발신자 평판을 모니터링하는 것이 좋습니다. 또한 AmazonCloudWatch에서 자동화 경보를 설정 (p. 359)할 수도 있습니다. 이 경보는 평판 측정치가 특정 임계값을 초과할 때 알림을 보낼 수 있습니다. 또한 휴대폰으로 텍스트 메시지를 전송하는 등의 다른 방법으로 연락하도록 Amazon CloudWatch를 구성할 수 있습니다.

Q4. Will the fact that my Amazon SES account is under reviewimpact my use of other AWS services?Amazon SES 계정이 검토 중인 동안에도 다른 AWS 서비스를 계속 사용할 수 있습니다. 하지만 아웃바운드통신(예: Amazon SNS)을 전송하는 다른 AWS 서비스에 대한 서비스 할당량 증가를 요청하면 Amazon SES계정의 검토 기간이 해제될 때까지 해당 요청이 거부될 수 있습니다.

Q5. What should I do if my account is under review?다음과 같이 해야 합니다.

• If your situation allows it, stop sending mail until you fix the problem. You can still send email while youraccount is under review. However, if you continue to send mail without making changes, you mightinadvertently make the issue worse.

• Look at the email you received from us for a summary of the issue.• Investigate your sending to determine what aspect of your sending specifically triggered the issue.• After you make changes that you believe will resolve the issue, AWS 콘솔에 로그인하고 지원 센터로 이

동합니다. 사용자를 대신하여 개설된 사례에 회신합니다.. In your message, provide detailed informationabout the steps you've taken to resolve the issue, and describe how these steps prevent the issue fromhappening again in the future.

• Be sure to provide any information we specifically request. We need this information to evaluate yourcase.

Q6. What's a review?계정 검토에 대한 결정을 검토해 줄 것을 요청할 수 있습니다. 검토 요청에 대한 자세한 내용은 다음 질문을참조하십시오.

Q7. How do I request a review?검토를 요청하려면 AWS 콘솔에 로그인하고 지원 센터로 이동합니다. 사용자를 대신하여 개설된 사례에 회신합니다..

요청 시 다음 정보를 제공합니다.

• Information about the root cause of the event that caused your account to be placed under review.• A list of the changes that you've made to correct the issue. Only include the steps you've already

implemented, not the steps you plan to implement in the future.• Information about how these changes prevent the same issue from occurring again in the future.

계정 검토의 원인이 된 이벤트의 성격에 따라 AWS에서 추가 정보를 요청할 수 있습니다. 요청에 포함해야하는 정보의 목록은 사용자가 겪은 문제와 관련된 FAQ 주제를 참조하십시오.

Q8. What if my review request isn't accepted?검토 요청을 수락하지 않은 이유에 대한 정보와 함께 사용자의 요청에 응답해드립니다. 경우에 따라 문제를해결했으며 변경을 통해 향후 문제가 다시 발생하지 않음을 증명할 수 있는 경우 다른 요청을 제출할 수 있습니다.

464

Page 473: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending Pauses

Q9. Can you help me diagnose the problem?Amazon SES에서는 일반적으로 문제에 대한 종합적인 개요만을 제공합니다(예: 반송 메일과 관련하여 문제가 있습니다). 근본 원인은 직접 조사하셔야 합니다.

Q10. How will I know if my account is no longer under review?평판 대시보드에는 사용자 계정의 현재 상태에 대한 정보가 포함되어 있습니다. 자세한 정보는 Using thereputation dashboard to track bounce and complaint rates (p. 347) 단원을 참조하십시오.

Q11. Do you place my account under review every time there's aproblem?아니요. 경우에 따라 먼저 사용자 계정을 검토하지 않고 계정의 이메일 전송 기능을 일시 중지할 수 있습니다. 예: .

• If the issue is very serious.• If your account has been placed under review for the same issue multiple times in the past. For this

reason, it's important to address the underlying problem rather than just resolve the specific incident thatled to your account being placed under review. For instance, if a particular campaign caused us to placeyour account under review, you have to do more than simply stop that campaign. You should determinewhich properties of the campaign were problematic and ensure that you have processes in place so thatyour future campaigns don't have the same issue.

이러한 경우 계정의 이메일 전송 기능을 일시 중지하면 알림이 자동으로 전송됩니다.

Q12. What if I make my fixes shortly before the review periodexpires?AWS 콘솔에 로그인하고 지원 센터로 이동합니다. 사용자를 대신하여 개설된 사례에 회신합니다. 사례에 대한 회신에서 문제가 해결되었음을 알려주십시오.

Q13. Can I get help from my AWS representative or PremiumSupport?AWS 계정 담당자와 이미 협력하고 있는 경우 사용자 계정이 검토 상태가 되면 해당 담당자에게 자동으로 연락됩니다. 계정 담당자는 문제를 더 잘 이해하는 데 도움이 되는 추가 정보를 제공할 수 있습니다. PremiumSupport를 사용하는 경우 해당 팀에 문의하여 추가 지원을 받아야 합니다.

Sending pause FAQQ1. I received a message stating that my account's ability to sendemail is paused. What does that mean?전송한 이메일에 있는 심각한 문제 때문에 사용자 계정의 이메일 전송 기능을 일시 중지했습니다. 대부분의경우 다음과 같은 이유 중 하나로 인해 계정을 일시 중지합니다.

• We previously placed your account under review. The issues that caused us to place your account underreview weren't corrected before the end of the review period, so we paused your account's ability to sendemail.

• We've placed your account under review several times for the same issue.

465

Page 474: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending Pauses

• Your account sent email that violated the AWS Service Terms. If these violations are serious, we mightpause your account's ability to send email without placing your account under review first.

Q2. Will I always be notified if my account's ability to send email ispaused?예 AWS 계정과 연결된 이메일 주소로 알림을 받게 됩니다.

Q3. My account's ability to send email is paused. Why didn't Ireceive a notification?계정의 이메일 전송 기능이 일시 중지되면 해당 계정과 연결된 이메일 주소로 알림이 자동 전송됩니다.

Note

AWS 계정을 처음 생성할 때 이메일 주소와 암호를 입력해야 합니다. 이 주소는 언제든지 변경할 수있습니다. 귀하와 관련된 주소 변경에 대한 자세한 내용은 AWS 계정, 참조 관리 AWS 계정 in theAWS Billing and Cost Management User Guide.

Amazon CloudWatch를 사용하여 반송 메일이나 불만 제기율이 너무 높을 때 알리는 경보를 만들 수 있습니다. 경보를 만들어 두면 사용자의 계정에서 이메일을 보내지 못하게 일시 중지 조치를 유발하는 요인에대해 조기 경고를 받을 수 있어 편리합니다. 그러나 일시 중지로 인해 이메일을 받지 못하게 만드는 요인은반송 메일과 불만뿐이 아닙니다. CloudWatch에서 경보를 생성하는 방법에 대한 자세한 내용은 Creatingreputation monitoring alarms using CloudWatch (p. 359) 단원을 참조하십시오.

발송률 대시보드 (p. 347)를 사용하여 계정의 현재 상태를 확인할 수도 있습니다. 예를 들어 사용자 계정의이메일 전송 기능이 현재 일시 중지되어 있으면 배달 가능성 대시보드의 Account status(계정 상태) 섹션에 SENDING PAUSE(전송 일시 중지) 상태가 표시됩니다. 계정에서 정상적으로 이메일을 보낼 수 있으면HEALTHY(정상) 상태가 표시됩니다.

마지막으로 https://phd.aws.amazon.com/에서 AWS Personal Health Dashboard(PHD)의 상태를 점검해 사용자 계정의 이메일 전송 기능이 현재 일시 중지되어 있는지 확인할 수 있습니다. 계정이 이메일 전송 기능을일시 중지하면 자동으로 SES 전송 일시 중지 이벤트 이벤트 로그 PHD 섹션을 참조하십시오. SES sendingpaused(SES 전송이 일시 중지됨) 이벤트는 계정의 이메일 전송 기능이 현재 일시 중지되었는지 여부에 상관없이 항상 Closed(종결) 상태입니다. 또한 이벤트 로그에는 전송 일시 중지 이벤트가 발생했을 때 사용자의AWS 계정과 연결된 이메일 주소로 전송된 이메일의 사본이 포함되어 있습니다.

CloudWatch를 사용하여 Personal Health Dashboard에 새 이벤트가 나타날 때 알려 주도록 경보를 만들 수있습니다. 자세한 내용은 모니터링 AWS 상태 이벤트 CloudWatch 이벤트 in the AWS Health 사용 설명서.

Q4. My account's ability to send email is paused. Does thisimpact my ability to use of other AWS services?사용자 계정의 이메일 전송 기능이 일시 중지되어도 다른 AWS 서비스를 계속 사용할 수 있습니다. 하지만아웃바운드 통신(예: Amazon SNS)을 전송하는 다른 AWS 서비스에 대한 서비스 할당량 증가를 요청하면 사용자 계정의 이메일 전송 기능이 복원될 때까지 해당 요청이 거부될 수 있습니다.

Q5. What should I do if my account's ability to send email ispaused?다음과 같이 해야 합니다.

• Look at the email you received from us for a summary of the issue.

466

Page 475: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Sending Pauses

• Investigate your sending to determine what aspect of your sending specifically triggered the issue.• After you make changes that you believe will resolve the issue, AWS 콘솔에 로그인하고 지원 센터로 이

동합니다. 사용자를 대신하여 개설된 사례에 회신합니다.. In your message, provide detailed informationabout the steps you've taken to resolve the issue, and describe how these steps prevent the issue fromhappening again in the future.

• Be sure to provide any information we specifically request. We need this information to evaluate yourcase.

Q6. What's a review?계정 검토에 대한 결정을 검토해 줄 것을 요청할 수 있습니다. 검토 요청에 대한 자세한 내용은 다음 질문을참조하십시오.

Q7. How do I request a review?검토를 요청하려면 AWS 콘솔에 로그인하고 지원 센터로 이동합니다. 사용자를 대신하여 개설된 사례에 회신합니다..

요청 시 다음 정보를 제공합니다.

• Information about what caused the issue.• A list of the changes that you've made to correct the issue. Only include the steps that you've already

implemented, not the steps you plan to implement in the future.• Information about how these changes will prevent the same issue from occurring again in the future.

사용자 계정의 이메일 전송 기능을 일시 중지하게 만든 이벤트의 성격에 따라 AWS에서 추가 정보를 요청할수 있습니다. 요청에 포함해야 하는 정보의 목록은 사용자가 겪은 문제와 관련된 FAQ 주제를 참조하십시오.

Q8. What if my request isn't accepted?검토 요청을 수락하지 않은 이유에 대한 정보와 함께 사용자의 요청에 응답해드립니다. 경우에 따라 문제를해결했으며 변경을 통해 향후 문제가 다시 발생하지 않음을 증명할 수 있는 경우 다른 요청을 제출할 수 있습니다.

Q9. Can you help me diagnose the problem?Amazon SES에서는 일반적으로 문제에 대한 종합적인 개요만을 제공합니다(예: 반송 메일과 관련하여 문제가 있습니다). 문제를 해결하는 것은 사용자의 책임입니다.

Q10. How do I know if my account's ability to send email hasbeen restored?평판 대시보드에는 사용자 계정의 현재 상태에 대한 정보가 포함되어 있습니다. 자세한 정보는 Using thereputation dashboard to track bounce and complaint rates (p. 347) 단원을 참조하십시오.

Q11. Can I get help from my AWS representative or PremiumSupport?AWS 계정 담당자와 이미 협력하고 있는 경우 사용자 계정의 이메일 전송 기능이 일시 중지되면 해당 담당자에게 자동으로 연락됩니다. 계정 담당자는 문제를 더 잘 이해하는 데 도움이 되는 추가 정보를 제공할 수 있습니다. Premium Support를 사용하는 경우 해당 팀에 문의하여 추가 지원을 받아야 합니다.

467

Page 476: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Bounces

Bounce FAQQ1. Why do you care about my bounces?반송 메일 발생률은 이메일 공급자 및 스팸 방지 기관 등에서 질이 나쁜 이메일을 전송하는 발신자를 감지하는 데 사용됩니다. 반송 메일 비율이 높으면 이메일이 받은 편지함이 아닌 스팸 폴더로 전송될 수 있습니다.

Q2. What should I do if I receive a notification stating that myaccount is under review or that my sending is paused because ofmy account's bounce rate?문제의 원인을 확인한 다음 해결합니다. 문제를 해결할 것으로 생각되는 변경 사항을 수행한 후 AWS 콘솔에로그인하고 지원 센터로 이동합니다. 사용자를 대신하여 개설된 사례에 회신합니다.. 메시지에 문제 해결을위해 취한 조치에 관한 세부 정보를 제공하고 이러한 조치를 통해 향후 문제가 다시 발생하지 않도록 하는 방법을 설명합니다. 또한 다음 정보를 포함합니다.

• The method you use to track your bounces• How you ensure that the email addresses of new recipients are valid prior to sending to them.

For example, which of the recommendations are you following in Q11. What can I do to minimizebounces? (p. 469)

Q3. What types of bounces count toward my bounce rate?반송 메일 발생률에는 확인되지 않은 도메인으로 보내는 하드 바운스 메일만 포함됩니다. 하드 바운스는 "이메일 주소가 존재하지 않음"과 같은 영구적 전송 실패입니다. "메일박스 가득 참"과 같은 일시적 및 간헐적 실패 또는 차단된 IP 주소로 인한 반송 메일은 반송 메일 발생률에 반영되지 않습니다.

Q4. Do you disclose the bounce rates that could cause myaccount to be placed under review or that could cause mysending to be paused?최상의 결과를 얻으려면 반송 메일 발생률을 2% 미만으로 유지해야 합니다. 반송 메일 발생률이 이것보다 높으면 이메일 배달에 영향을 미칠 수 있습니다.

반송 메일 발생률이 5% 이상이면 사용자 계정을 검토합니다. 반송 메일 발생률이 10% 이상이면 높은 반송메일 발생률의 원인이 된 문제를 해결할 때까지 사용자 계정의 추가 이메일 전송 기능을 일시 중지할 수 있습니다.

Q5. Over what period of time is my bounce rate calculated?고정된 기간을 기준으로 반송 메일 발생률을 계산하지는 않습니다. 발신자마다 전송 속도가 다르기 때문입니다. 대신, representative volume—일반적인 전송 관행을 나타내는 이메일 양입니다. 대량 발신자와 소량 발신자 모두에게 공정을 기하기 위해 대표 볼륨은 사용자마다 다르게 적용되며 사용자의 전송 패턴 변화에 따라 바뀝니다.

Q6. Can I calculate my own bounce rate by using the informationfrom the Amazon SES console or the GetSendStatistics API?아니요. 반송 메일 발생률은 대표 볼륨을 사용하여 계산됩니다(Q5. Over what period of time is mybounce rate calculated? (p. 468) 참조). 반송 메일 발생률은 전송 속도에 따라 Amazon SES 콘솔 또는GetSendStatistics에서 가져올 수 있는 것보다 시간상 더 앞서 나갈 수 있습니다. 또한 확인되지 않은 도

468

Page 477: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Bounces

메인으로 보낸 이메일만 반송 메일 발생률을 계산할 때 고려됩니다. 그러나 그러한 방법을 사용하여 반송 메일 발생률을 정기적으로 모니터링하면 사용자 계정을 검토하거나 사용자 계정의 이메일 전송 기능을 일시 중지하게 만드는 수준에 도달하기 전에 문제를 발견할 수 있으므로 좋은 지표가 됩니다.

Q7. How can I find out which email addresses bounced?Amazon SES에서 보내는 반송 메일 알림을 검토합니다. Amazon SES notifications sent by email (p. 248)에서 설명한 것처럼 Amazon SES에서 알림을 전달하는 이메일 주소는 원본 메시지를 보낸 방식에 따라다릅니다. Monitoring Amazon SES email sending using notifications (p. 247) 단원에서 설명한 대로Amazon Simple Notification Service(Amazon SNS)을 통해서 반송 메일 알림을 설정할 수도 있습니다.추가적으로 조사하지 않고 목록에서 반송된 주소를 제거하는 작업만으로는 근본적인 문제를 해결할 수없습니다. 반송 메일을 줄이기 위해 할 수 있는 일에 대한 자세한 내용은 Q11. What can I do to minimizebounces? (p. 469)를 참조하십시오.

Q8. If I haven't been monitoring my bounces, can you give me alist of addresses that have bounced?아니요, AWS는 메일을 반송한 주소의 전체 목록을 제공할 수 없습니다. 사용자는 자신의 계정에 대한 반송메일을 모니터링하고 조치를 취할 책임이 있습니다.

Q9. How should I handle bounces?메일 그룹에서 반송된 주소를 제거하고 해당 주소에 대한 메일 전송을 즉시 중지해야 합니다. 소량을 전송할경우 이메일을 통해 반송 메일을 모니터링하고 메일 그룹에서 반송된 주소를 수동으로 제거하는 작업만으로도 충분할 수 있습니다. 볼륨이 큰 경우에는 반송 메일을 받는 사서함을 프로그래밍 방식으로 처리하거나Amazon SNS를 통해 반송 메일 알림을 설정하여 이 프로세스에 대한 자동화를 설정할 수 있습니다. 자세한정보는 Monitoring Amazon SES email sending using notifications (p. 247) 단원을 참조하십시오.

Q10. Could my emails be bouncing because I've reached mysending quota?아니요. 반송 메일은 발신 할당량과 관계가 없습니다. 발신 할당량을 초과할 경우 이메일 전송 시 AmazonSES API 또는 SMTP 인터페이스에서 오류가 발생합니다.

Q11. What can I do to minimize bounces?먼저 반송 메일에 대해 잘 파악하고 있어야 합니다(Q7. How can I find out which email addressesbounced? (p. 469) 참조). 그런 다음 아래 지침을 따릅니다.

• Don't buy, rent, or share email addresses. Send email only to recipients who explicitly requested toreceive email from you.

• Remove bounced email addresses from your list.• On web forms, ask users to enter their email addresses two times, and check to make sure both

addresses match before the form can be submitted.• Use double opt-in to sign up new users. That is, when a new users sign up, send them a confirmation

email that they need to click before receiving any additional mail. This prevents people from signing upother people as well as accidental sign-ups.

• If you must send to addresses that you haven't mailed lately (and thus you can't be confident that theaddresses are still valid), do so only with a small portion of your overall sending. For more information,see our blog post Never send to old addresses, but what if you have to?.

• Ensure that you're not structuring sign-ups to encourage people to use fictional addresses. For example,don't provide any added value or benefits until recipients verify their addresses.

• If you have an "email a friend" feature, use CAPTCHA or a similar mechanism to discourage automateduse of the feature, and don't allow users to insert arbitrary content.

469

Page 478: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Complaints

• If you're using Amazon SES for system notifications, ensure that you're sending the notifications to realaddresses that can receive mail. Also consider turning off notifications that you don't need.

• If you're testing a new system, be sure you're either sending to real addresses that can receive email,or you're using the Amazon SES mailbox simulator. For more information, see Testing email sending inAmazon SES (p. 175).

Complaint FAQQ1. What's a complaint?수신 거부는 수신자가 이메일 수신을 원치 않는다고 보고하는 경우에 발생합니다. 수신자가 이메일 클라이언트에서 "스팸 보고" 버튼을 눌렀거나, 이메일 공급자에게 수신을 거부했거나, Amazon SES로 직접 또는 다른 방법을 통해 알렸을 수 있습니다. 이 주제에서는 수신 거부에 대한 일반 정보를 제공합니다. 알림에 불만 제기의 소스에 대한 구체적 정보가 포함되어 있을 경우 다음 관련 주제도 읽어 보십시오. AmazonSES complaints through feedback loops FAQ (p. 471), Amazon SES complaints directly from recipientsFAQ (p. 472) 또는 Amazon SES complaints through email providers FAQ (p. 473).

Q2. Why do you care about my complaints?수신 거부 발생률은 이메일 공급자 및 스팸 방지 기관 등에서 발신자가 이메일 수신을 등록하지 않은 수신자에게 이메일을 전송하거나 발신자가 수신자가 등록한 유형과 다른 콘텐츠를 전송하고 있다는 지표로 흔히 사용됩니다.

Q3. What should I do if I receive a notice saying that my accountis under review or that my sending is paused because of an issuewith complaints?목록 취득 프로세스와 이메일의 콘텐츠를 검토하여 수신자가 수신하는 이메일을 환영하지 않은 이유를 파악하십시오. 문제의 원인을 확인한 다음 해결합니다. 문제를 해결할 것으로 생각되는 변경 사항을 수행한 후AWS 콘솔에 로그인하고 지원 센터로 이동합니다. 사용자를 대신하여 개설된 사례에 회신합니다.. 메시지에문제 해결을 위해 취한 조치에 관한 세부 정보를 제공하고 이러한 조치를 통해 향후 문제가 다시 발생하지 않도록 하는 방법을 설명합니다.

Q4. What can I do to minimize complaints?먼저 Amazon SES가 사용자에 알릴 수 있는, 즉 Amazon SES가 피드백 루프(Amazon SES complaintsthrough feedback loops FAQ (p. 471) 단원 참조)를 통해 수신하는 수신 거부를 모니터링해야 합니다. 그런다음 아래 지침을 따릅니다.

• Do not buy, rent, or share email addresses. Use only addresses that specifically requested your mail.• Use double opt-in to sign up new users. That is, when users sign up, send them a confirmation email that

they need to click before receiving any additional mail. This prevents people from signing up other peopleas well as accidental sign-ups.

• Monitor engagement with the mail you send and stop sending to recipients who don't open or click yourmessages.

• When new users sign up, be clear about the type of email they will receive from you, and ensure that yousend only the type of mail that they signed up for. For example, if users sign up for news updates, don'tsend them advertisements.

• Ensure that your mail is well-formatted and looks professional.• Ensure that your mail is clearly from you and can't be confused for something else.• Provide users an obvious and easy way to unsubscribe from your mail.

470

Page 479: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Complaints

Amazon SES complaints through feedback loops FAQ이 주제에서는 Amazon SES가 피드백 루프를 통해 이메일 공급자로부터 수신하는 수신 거부에 대한 정보를제공합니다. 모든 유형의 수신 거부에 적용되는 일반 정보는 Complaint FAQ (p. 470) 단원을 참조하십시오.

Q1. How is this type of complaint reported?대부분의 이메일 클라이언트 프로그램은 "스팸으로 표시" 등으로 표시된 버튼을 제공합니다. 이 버튼을누르면 메시지가 스팸 폴더로 이동한 후 이메일 공급자로 전달됩니다. 또한 대부분의 이메일 제공업체는[email protected]사용자가 원치 않는 이메일을 전달할 수 있는 경우, 사용자가 이를 방지하기 위한 조치를 취할 것을 요청할 수 있습니다. Amazon SES가 이메일 공급자와 피드백 루프(FBL)를 설정한 경우 이메일공급자가 수신 거부를 Amazon SES로 보냅니다.

Q2. Are these complaints included in the complaint rate statistic shown in theAmazon SES console and returned by the GetSendStatistics API?예 하지만 수신 거부 발생률 통계에는 Amazon SES로 피드백을 제공하지 않는 이메일 공급자로부터의 수신거부는 포함하지 않습니다. 피드백을 제공하는 도메인의 수신 거부 발생률이 나머지 전송 또한 대표할 가능성이 높습니다.

Q3. How can I be notified of these complaints?이메일 또는 Amazon SNS 알림을 통해 통보받을 수 있습니다. Monitoring Amazon SES email sending usingnotifications (p. 247) 단원의 설정 지침을 참조하십시오.

Q4. What should I do if I receive a complaint notification through email or throughAmazon SNS?먼저 메일 그룹에서 불만 제기를 한 주소를 제거하고 해당 주소에 대한 메일 전송을 즉시 중지해야 합니다.구독 취소 요청에 대한 이메일에도 회신하지 마십시오. 수신 거부를 받는 메일박스를 프로그래밍 방식으로처리하거나 Amazon SNS를 통해 수신 거부 알림을 설정하여 이 프로세스에 대한 자동화를 설정할 수 있습니다. 자세한 정보는 Monitoring Amazon SES email sending using notifications (p. 247) 단원을 참조하십시오.

그런 다음 전송을 주의 깊게 살펴서 수신자가 메일을 거부한 이유를 알아보고 근본적인 문제를 해결하십시오. 수신 거부를 하는 사람에 비해 수신 거부를 하지는 않았지만(또는 못했지만) 메일을 환영하지 않는 사람이 훨씬 더 많을 수 있습니다. 따라서 수신 거부를 하는 수신자를 제거하기만 하는 것은 근본적인 문제를 해결하는 것이 아닙니다.

Q5. Do you disclose the Amazon SES complaint rates that could cause myaccount to be placed under review or that could result in my account's ability tosend email being paused?최상의 결과를 얻으려면 불만 제기 발생률을 0.1% 미만으로 유지해야 합니다. 불만 제기 발생률이 이것보다높으면 이메일 배달에 영향을 미칠 수 있습니다.

수신 거부 발생률이 0.1% 이상이면 사용자 계정을 검토합니다. 수신 거부 발생률이 0.5% 이상이면 높은 수신 거부 발생률의 원인이 된 문제를 해결할 때까지 사용자 계정의 추가 이메일 전송 기능을 일시 중지할 수있습니다.

Q6. Over what period of time is my complaint rate calculated?고정된 기간을 기준으로 불만 제기 발생률을 계산하지는 않습니다. 발신자마다 전송 속도가 다르기 때문입니다. 대신, representative volume—일반적인 전송 관행을 나타내는 메일 양입니다. 대량 발신자와 소량 발신자 모두에게 공정을 기하기 위해 대표 볼륨은 사용자마다 다르게 적용되며 사용자의 전송 패턴 변화에 따라바뀝니다. 또한 불만 제기 발생률은 모든 이메일을 기준으로 계산되지 않습니다. 그 대신 Amazon SES로 수신 거부 피드백을 보내는 도메인으로 전송된 메일에 대한 수신 거부 백분율로 계산됩니다.

471

Page 480: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Complaints

Q7. Can I calculate my own complaint rate by using metrics from the Amazon SESconsole or the GetSendStatistics API?

아니요. 여기에는 다음과 같은 두 가지 주요 이유가 있습니다.

• The complaint rate is calculated using representative volume (see Q6. Over what period of time ismy complaint rate calculated? (p. 471)). Depending on your sending rate, your complaint rate canstretch farther back in time than the Amazon SES console or GetSendStatistics API can retrieve.For this reason, we recommend that you regularly use these methods to monitor the complaint rate foryour account. Monitoring your complaint rate in this way gives you the information you need to identifyproblems before they reach levels that could impact the delivery of your email.

• When calculating complaint rate, not every email counts. Complaint rate is calculated as the percentageof complaints on mail sent to domains that send complaint feedback to Amazon SES.

Q8. How can I find out which email addresses complained?

Amazon SES이 이메일 또는 Amazon SNS를 통해 전송하는 수신 거부 알림을 검사합니다(MonitoringAmazon SES email sending using notifications (p. 247) 단원 참조). 하지만 이메일 공급자마다 제공하는 정보량이 다르며, 일부 공급자는 수신자의 이메일 주소를 수정한 후에 Amazon SES로 수신 거부 알림을 전송하기도 합니다. 이후에 수신자의 이메일 주소를 찾기 위한 최선의 옵션은 Amazon SES이 이메일을 수락할때 사용자에게 반환하는 Amazon SES 메시지 ID와 식별자 사이의 자체 매핑을 저장하는 것입니다. AmazonSES는 사용자가 추가하는 사용자 지정 메시지 ID를 보유하지 않습니다.

Q9. If I haven't been monitoring my complaints, can you give me a list ofaddresses that have complained?

포괄적인 목록을 제공해 드리지는 않습니다. 그러나 이메일이나 Amazon SNS를 통해 추후 수신 거부를 모니터링할 수 있습니다.

Q10. Can I get a sample email?

샘플 이메일은 요청하시더라도 보내드릴 수 없습니다만, 이 정보는 불만 제기 알림에서 확인할 수 있습니다.자세한 정보는 Q8. How can I find out which email addresses complained? (p. 472) 단원을 참조하십시오.

Amazon SES complaints directly from recipients FAQ이 주제에서는 Amazon SES이 수신자로부터 직접 수신하는 수신 거부에 대한 정보를 제공합니다. 모든 유형의 수신 거부에 적용되는 일반 정보는 Complaint FAQ (p. 470) 단원을 참조하십시오.

Q1. How is this type of complaint reported?

여러 수신자가 이메일 또는 여타 수단을 통해 Amazon SES로 직접 귀하의 메일에 대해 문의했습니다.

Q2. Are these complaints included in the complaint rate statistic shown in theAmazon SES console and returned by the GetSendStatistics API?

아니요. Amazon SES 콘솔 또는 GetSendStatistics API를 통해 검색하는 수신 거부 발생률 통계에는Amazon SES가 피드백 루프를 통해 수신하는 수신 거부만 포함됩니다. 이러한 유형의 불만 제기에 대한 자세한 내용은 Amazon SES complaints through feedback loops FAQ (p. 471) 단원을 참조하십시오.

Q3. Why haven't I heard about these complaints through email feedbacknotifications or through Amazon SNS?

이메일 피드백 전달 및 Amazon SNS 알림은 Amazon SES가 피드백 루프를 통해 수신하는 수신 거부만 포함합니다. 수신자가 Amazon SES에 직접 신청하는 수신 거부에 대해서는 알림을 받지 않습니다.

472

Page 481: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Complaints

Q4. How can I find out which email addresses complained?

수신을 거부한 수신자의 자격 증명을 보호하기 위해 AWS는 이메일의 수신을 거부한 이메일 주소 목록을 작성하지 않습니다.

목록에서 개별 수신자를 제거하는 데 집중하기 보다는 수신을 거부하게 만든 문제를 확인하는 것이 좋습니다. 먼저 고객 유치 과정을 검토하고 이메일 수신을 명시적으로 요청하지 않은 고객을 목록에서 제거하는 것이 좋습니다. 또한 이메일의 콘텐츠를 분석하여 수신자가 수신을 거부하는 이유를 이해해야 합니다.

Q5. Can I get a sample email?

수신을 거부한 수신자의 자격 증명을 보호하기 위해 AWS는 수신자가 수신을 거부하게 만든 이메일의 복사본을 제공할 수 없습니다.

Q6. What should I do if I receive a notification stating that my account is underreview or that my sending is paused because of direct complaints?

이메일 수신을 특정하게 등록한 수신자에게만 메시지를 전송하도록 발송 과정을 즉시 변경하십시오. 또한 수신자가 수신을 등록한 유형의 콘텐츠를 전송하고 있는지 확인하십시오. 문제를 해결할 것으로 생각되는 변경사항을 수행한 후 AWS 콘솔에 로그인하고 지원 센터로 이동합니다. 사용자를 대신하여 개설된 사례에 회신합니다.. 메시지에 문제 해결을 위해 취한 조치에 관한 세부 정보를 제공하고 이러한 조치를 통해 향후 문제가 다시 발생하지 않도록 하는 방법을 설명합니다.

3주 이내에 검토를 요청하지 않고 수신자 직접 수신 거부를 계속 받으면 계정의 이메일 전송 기능이 일시 중지될 수 있습니다.

Amazon SES complaints through email providers FAQ이 주제에서는 불만사항에 대한 정보를 제공합니다. Amazon SES 이메일 제공업체를 통해 수신함(또한mailbox providers) ). 모든 유형의 수신 거부에 적용되는 일반 정보는 Complaint FAQ (p. 470) 단원을 참조하십시오.

Q1. How is this type of complaint reported?

한 이메일 공급자가 고객 중 상당 수가 귀사의 이메일을 스팸으로 표시했다고 Amazon SES로 보고했습니다.이 보고는 Amazon SES complaints through feedback loops FAQ (p. 471)에서 설명된 피드백 루프가 아닌다른 수단을 통해 Amazon SES로 제공되었습니다.

Q2. Are these complaints included in the complaint rate statistic shown in theAmazon SES console and returned by the GetSendStatistics API?

아니요. Amazon SES 콘솔 또는 GetSendStatistics API를 통해 검색하는 수신 거부 발생률 통계에는Amazon SES가 피드백 루프를 통해 수신하는 수신 거부만 포함됩니다.

Q3. Why haven't I heard about these complaints through email feedbacknotifications or through Amazon SNS?

이메일 피드백 전달 및 Amazon SNS 알림은 Amazon SES가 피드백 루프를 통해 수신하는 수신 거부만 포함합니다.

Q4. How can I find out which email addresses complained?

이메일 공급자는 일반적으로 이 정보를 공개하지 않습니다. 하지만 목록에서 개별 수신자를 제거하는 데 집중하기 보다는 근본적인 문제를 찾고 해결하는 데 집중해야 합니다. 목록 취득 프로세스와 이메일의 콘텐츠를 검토하여 수신자가 이메일을 환영하지 않은 이유를 파악하는 것부터 시작하십시오.

473

Page 482: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Spamtraps

Q5. Can I get a sample email?

아니요. 이메일 공급자는 일반적으로 샘플 이메일을 제공하지 않습니다.

Q6. What should I do if I receive a notification stating that my account is underreview or that my sending is paused because of email provider complaints?

문제의 원인을 확인한 다음 해결합니다. 문제를 해결할 것으로 생각되는 변경 사항을 수행한 후 AWS 콘솔에로그인하고 지원 센터로 이동합니다. 사용자를 대신하여 개설된 사례에 회신합니다.. 메시지에 문제 해결을위해 취한 조치에 관한 세부 정보를 제공하고 이러한 조치를 통해 향후 문제가 다시 발생하지 않도록 하는 방법을 설명합니다. 3주 이내에 검토를 요청하지 않고 공급자로부터 수신 거부를 계속 받으면 계정의 추가 이메일 전송 기능이 일시 중지될 수 있습니다.

Spamtrap FAQQ1. What are spamtraps?스팸 트랩이란 인터넷 서비스 제공업체(ISP), 이메일 공급자 또는 스팸 방지 기관에서 관리하는 특수한 이메일 주소입니다. 합법적인 방식으로는 이러한 주소로부터 이메일을 수신하도록 등록할 수 없기 때문에 스팸트랩을 관리하는 기관에서는 누군가가 이러한 주소로 메일을 보낼 경우 의심스러운 방식으로 이메일을 사용할 가능성이 있다고 파악합니다.

Q2. How are spamtraps set up?스팸 트랩 주소는 다양한 방식으로 설정할 수 있습니다. 이전에 유효했으나 장기간 사용하지 않는 (따라서 반송되는) 주소에서 변환할 수 있습니다. 스팸 트랩 목적으로 설정된 주소인 경우도 있습니다. 이러한 주소는추측하기 어려운 특이한 주소일 수 있으며, 실제 주소와 유사한 주소인 경우(예: 일반적인 도메인 이름에 오타 삽입)도 있습니다. 스팸트랩은 다양한 방식으로 인터넷에 배포하여 "퍼뜨려지는" 경우도 흔히 있습니다.

Q3. How does Amazon SES know if I am sending to spamtraps?스팸트랩을 운영하는 일부 기관은 Amazon SES 발신자가 스팸트랩으로 전송했을 시 Amazon SES 알림을보냅니다.

Q4. How does Amazon SES use the spamtrap reports?AWS는 보고서를 검토합니다. 사용자 계정이 스팸 트랩으로 이메일을 전송하는 것으로 확인되면 AWS는 사용자 계정을 검토하고 근본적인 문제를 해결하도록 요청합니다. 검토 기간이 끝나기 전에 문제를 해결하지않으면 AWS가 사용자 계정의 추가 이메일 전송 기능을 일시 중지할 수 있습니다. 스팸 트랩 문제가 매우 심각한 경우 먼저 사용자 계정을 검토하지 않고 계정의 이메일 전송 기능을 일시 중지할 수 있습니다.

Q5. What should I do if a receive a notice saying that my accountis under review or that my sending is paused because of an issuewith spamtraps?먼저 계정 검토 또는 이메일 전송 기능 일시 중지의 원인이 된 문제를 해결해야 합니다. 그런 다음 AWS 콘솔에 로그인하고 지원 센터로 이동합니다. 사용자를 대신하여 개설된 사례에 회신합니다.. 메시지에 문제 해결을 위해 취한 조치에 관한 세부 정보를 제공하고 이러한 조치를 통해 향후 문제가 다시 발생하지 않도록 하는방법을 설명합니다. 이러한 조치가 문제를 적절하게 해결할 것으로 생각되면 검토 기간을 취소하거나 사용자계정에서 전송 일시 중지를 제거할 것입니다.

스팸 트랩 히트의 보고 방식으로 인해 이러한 조치가 문제를 해결했는지 확인할 수 있으려면 3주 이상 걸릴수 있습니다.

474

Page 483: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Manual Investigations

Q6. How many spamtrap hits can I have before you place myaccount under review or pause my account's ability to sendemail?AWS는 계정에 대한 조치의 원인이 되는 특정한 스팸 트랩 횟수를 공개하지 않습니다. 그러나 스팸 트랩 횟수가 적으면 발신자로서의 평판에 매우 부정적인 영향을 줄 수 있으므로 스팸 트랩 보고서를 심각하게 받아들여야 합니다.

Q7. Do you disclose the spamtrap addresses?아니요. 스팸 트랩이 효과를 나타내려면 스팸 트랩을 비밀로 유지해야 합니다. 스팸 트랩 기관에서는 스팸 트랩 전송이 발생했다는 사실만 공개합니다. 실제 스팸 트랩 주소는 공개하지 않습니다.

Q8. What can I do to avoid sending to spamtraps?스팸 트랩으로 전송하는 위험을 줄이려면 다음 지침을 따르십시오.

• Do not buy, rent, or share email addresses. Use only addresses that specifically requested your mail.• On web forms, ask users to enter their email addresses two times, and check to make sure both

addresses match before the form can be submitted.• Use double opt-in to sign up new users. That is, when users sign up, send them a confirmation email that

they need to click before receiving any additional mail.• Ensure that you remove addresses that hard bounce from your list, so that they are removed long before

they are converted to spamtraps.• Ensure that you're monitoring engagement by your recipients, and stop sending to recipients who haven't

engaged with your emails or website recently. Time frames for what an "engaged user" is depend on youruse case, but generally speaking if users haven't opened or clicked your emails in several months, youshould consider removing them unless you have evidence that they do want your mail.

• Be very careful with re-engagement campaigns where you intentionally contact people who haven'tinteracted with you recently. These efforts tend to be highly risky, and can often cause problems not onlywith spamtrap sending, but also with bounces and complaints.

• Send an opt-in message to your entire mailing list and keep only the recipients who click on theverification link. In addition to removing inactive recipients from your list, this procedure also helpsremove spamtrap addresses. However, we don't recommend using this technique if you think that yourmailing list might contain a lot of bad addresses, or if your account already has a problem with bounces,because it might cause your account's bounce rate to increase further.

Manual investigation FAQQ1. What should I do if I receive a notification stating that myaccount is under review or that my sending is paused because ofa manual investigation?Amazon SES 조사자가 전송과 관련된 중요한 문제를 발견했습니다. 일반적인 문제는 다음과 같습니다.

• Your sending violates the AWS Acceptable Use Policy (AUP).• Your emails appear to be unsolicited.• Your content is associated with a use case that Amazon SES doesn't support.

475

Page 484: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Manual Investigations

문제를 해결할 수 있다고 판단되는 경우 일정 시간 동안 사용자 계정을 검토합니다. 사용자 계정을 검토하는동안 문제 해결을 위해 이메일 전송 실행을 변경해야 합니다.

문제를 해결할 수 없다고 판단되거나 문제가 매우 심각한 경우 먼저 사용자 계정을 검토하지 않고 계정의 이메일 전송 기능을 일시 중지할 수 있습니다.

Q2. What issues could cause you to perform a manual review ofmy email sending?사용자 계정의 수동 검토 원인이 될 수 있는 문제는 몇 가지 있습니다. 그 이유는 다음과 같으나 이에 국한되지는 않습니다.

• Recipients contact Amazon SES to complain about email sent from your account.• We detect unusual changes in your email sending patterns.• Our spam filters find characteristics of your email that are typical of unsolicited or low-quality content.

사용자 계정을 검토하거나 계정의 이메일 전송 기능을 일시 중지하면 알림이 전송됩니다. 대부분의 경우 이알림에는 문제에 대한 정보가 포함되어 있으며 취할 수 있는 다음 조치에 대한 정보가 나와 있습니다.

Q3. What are "unsolicited" emails?원치 않는 이메일이란 수신자가 명시적으로 수신을 요청하지 않은 이메일입니다. 수신자가 특정 유형의 메일(예: 알림)에 등록했지만 다른 유형의 메일(예: 광고)이 전송된 경우가 이에 포함됩니다.

사용자 계정을 검토하거나 계정의 이메일 전송 기능을 일시 중지하면 알림이 전송됩니다. 원치 않는 이메일문제로 인해 이러한 조치 중 하나를 취하고 있다는 알림을 수신한 경우 AWS 콘솔에 로그인하고 지원 센터로이동합니다. 사용자를 대신하여 개설된 사례에 회신합니다.. 메시지에 포함하는 정보는 다음과 같습니다.

• Are all the messages that you send specifically requested by the recipient, and do they comply with theAWS Acceptable Use Policy?

• Have you acquired email addresses in any way other than a customer specifically interacting with you oryour website and requesting emails from it? You should explain how you acquired your mailing list.

• How do your subscribe and unsubscribe processes work? You should include your opt-in and opt-outlinks.

Q4. What should I do if I receive a notification stating that myaccount is under review or that my sending is paused because ofa manual review?문제의 원인을 확인한 다음 해결합니다. 문제를 해결할 것으로 생각되는 변경 사항을 수행한 후 AWS 콘솔에로그인하고 지원 센터로 이동합니다. 사용자를 대신하여 개설된 사례에 회신합니다.. 메시지에 문제 해결을위해 취한 조치에 관한 세부 정보를 제공하고 이러한 조치를 통해 향후 문제가 다시 발생하지 않도록 하는 방법을 설명합니다. 이러한 조치가 문제를 적절하게 해결할 것으로 생각되면 사용자 계정에 대한 검토 기간을취소할 것입니다.

Q5. What types of problems do you view as "correctable?"일반적으로 과거의 전송 사례가 우수했으며 전송을 대부분 계속하면서도 문제가 되는 전송을 중단하기 위해취할 수 있는 조치가 있는 경우 상황을 수정할 수 있다고 봅니다. 예를 들어, 세 가지 유형의 이메일을 보내는데 그 중 한 가지 유형만 문제가 되는 경우 문제가 되는 해당 전송만 중지하고 나머지 전송은 계속 진행할 수있습니다.

476

Page 485: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DNS 블랙홀 목록(DNSBL) FAQ

Q6. What if I can't find the source of the problem?AWS 콘솔에 로그인하고 지원 센터로 이동합니다. 사용자를 대신하여 개설된 사례에 회신합니다. 그리고 문제로 인해 발생한 메일의 샘플을 요청할 수 있습니다.

DNS 블랙홀 목록(DNSBL) FAQ도메인 이름 시스템 기반 블랙홀 목록 (DNSBL)—때때로 실시간 블랙홀 목록 (RBLs(리블러드 블루스)), 거부목록, 차단 목록, 또는 블랙리스트—는 원치 않는 이메일 전송을 의심하는 IP 주소를 이메일 공급자에게 알리기 위한 것입니다.

DNSBL에 따라 이메일 전송 가능성에 미치는 영향이 다릅니다. 이 항목에서는 DNSBL이 을 사용하여 보내는전자 메일의 배달에 미치는 영향을 설명합니다. Amazon SES, 및 당사의 제거 정책 Amazon SES DNSBL의IP 주소.

Note

이 항목에서는 전자 메일 공급자가 수신 메시지 차단에 사용하는 DNSBL에 대해 설명합니다. 이전에 반송 메일을 생성한 이메일 주소의 수신자에게 보낸 이메일이 Amazon SES에서 차단되는 방법에 대한 자세한 내용은 Using the Amazon SES global suppression list (p. 187) 단원을 참조하십시오.

Q1. DNSBL은 이메일 전달에 어떤 영향을 미칩니까?DNSBL마다 메시지의 성공적인 전달에 미치는 영향이 다릅니다. 주요 이메일 제공자—Gmail, 핫메일, AOL및 야후 포함—매우 소수의 높은 평가를 받는 DNSBL을 인식하는 것으로 보입니다(예: Spamhaus 에서 제공하는 DNSBL). 우리의 경험에 따르면, 일부 메일 시스템은 다른 메일 시스템보다 특정 DNSBL을 강조하지만다른 DNSBL은 영향이 적은 경향이 있습니다.

마지막으로, 많은 이메일 제공업체가 자체적인 내부 거부 목록을 가지고 있습니다. 이메일 공급자들은 이러한 목록을 매우 면밀히 감시하고 대중과 공유하는 일이 거의 없습니다. 이러한 목록 중 하나에 IP 주소가 등록되어 있으면 해당 공급자를 사용하는 수신자에 대한 사용자의 이메일 전송 기능이 심각한 영향을 받을 수있습니다.

Q2. DNSBL에서 IP 주소는 어떻게 처리됩니까?IP 주소가 DNSBL에서 끝나는 몇 가지 방법이 있습니다. IP 주소는 DNSBL이 에 이메일을 보낼 때 추가할 수있습니다. 스팸트랩. 스팸 트랩은 실제 사용자에게 속하지 않은 이메일 주소입니다. 스팸 트랩은 스팸을 수집하고 스패머를 식별하기 위한 목적으로만 존재합니다. 일부 DNSBL은 또한 개별 사용자가 IP 주소를 제출할 수 있도록 허용합니다. 일부 DNSBL은 사용자가 전체 IP 주소 범위를 제출할 수 있도록 허용합니다. 다른DNSBL은 e-메일 관리자의 기여를 통해 유지 관리되며 관리자가 자신의 시스템을 남용하고 있다고 생각하는IP 주소를 포함할 수 있습니다.

Q3. 어떻게 Amazon SES IP 주소가 DNSBL에 표시되지 않도록 합니까?당사 시스템은 침해 징후를 검사합니다. IP 주소가 DNSBL에 추가될 수 있는 전송 패턴이나 기타 특성을 감지하면 보낸 사람에게 알림을 보냅니다. 상황이 심각하거나 알림 전송 후에도 발신자가 문제를 해결하지 않으면 문제를 해결할 때까지 발신자의 이메일 전송 기능을 일시 중지하게 됩니다. 이러한 방식으로 전송 정책을 강화하면 IP 주소가 DNSBL에서 종료될 가능성을 줄일 수 있습니다.

477

Page 486: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드DNSBL FAQ Q4

Q4. 캔 Amazon SES DNSBL에서 IP 주소가 제거되었습니까?우리는 전체 네트워크 전반에 걸쳐 전달에 영향을 미칠 수 있는 DNSBL을 Amazon SES Gmail, Yahoo, AOL및 Hotmail과 같은 주요 이메일 공급자를 사용하는 수신자에게 이메일을 보내는 기능에 영향을 줄 수 있습니다. Spamhaus에서 제공하는 DNSBL은 이 범주에 속합니다. IP 주소 중 하나가 이러한 기준을 충족하는 목록에 나타나면 DNSBL에서 해당 주소를 최대한 빨리 제거하기 위해 즉시 조치를 취합니다.

우리는 전체 서비스 전반에 걸쳐 전달에 영향을 미칠 가능성이 낮은 DNSBL을 Amazon SES 주요 이메일제공업체로의 배달에 측정 가능한 영향을 미치지 않는 서비스. SORBS 및 UCEPROTECT에서 제공하는DNSBL은 이 범주에 속합니다. 이러한 목록을 운영하는 공급자의 특정 등록 및 등록 취소 관행 때문에 IP 주소를 이러한 목록에서 제거할 수 없습니다.

Q5. 보내는 IP 주소가 Spamhaus 이외의 DNSBL에 의해 나열되기 때문에 이메일 공급자가 내 이메일을 거부합니다. 어떻게 해야 합니까?먼저 DNSBL 때문에 메시지가 정말로 차단되었는지 확인합니다. 보내는 IP 주소가 DNSBL에 추가되어 전자메일이 거부된 경우 다음 예와 같이 이름별로 DNSBL 공급자를 언급하는 반송 알림을 받게 됩니다.

554 5.7.1 Service unavailable; Client host [192.0.2.0] blocked using DNSBLName; See: http://www.example.com/query/ip/192.0.2.0

반송 알림을 받았지만 앞의 예에 표시된 메시지와 유사한 정보를 포함하지 않은 경우 이메일 공급자가DNSBL에 추가된 것과 무관한 이유로 메시지를 거부했을 가능성이 높습니다.

보내는 IP 주소가 DNSBL에 있기 때문에 이메일 공급자가 귀하의 이메일을 차단하고 있음을 확인할 수 있는경우, 다음과 같은 몇 가지 방법이 있습니다.

• 메시지를 거부한 도메인의 포스트마스터에게 문의하여 스팸 필터링 정책의 예외를 요청하십시오. 일부 포스트마스터는 지원 프로세스가 있으며 이 프로세스를 설명하는 포스트마스터 페이지를 게시할 수 있습니다. 연락하려는 도메인이 포스트마스터 지원 정책을 게시하지 않는 경우, 포스트마스터@example.com여기서 각 항목은 다음과 같습니다.example.com 질문 의 도메인입니다. 포스트마스터사서함을 사용하려면 RFC 5321에 따라 도메인이 필요합니다.

포스트마스터에게 연락할 때 받은 바운스 코드, 보내려는 이메일의 헤더, DNSBL이 이메일 배달에 미치는영향 측정, 이메일이 부적절하게 차단되었다고 생각하는 이유에 대한 정보를 제공하십시오. 적법한 이메일을 보내고 있음을 증명하기 위해 포스트마스터에게 제공할 수 있는 정보가 많을수록 포스트마스터가 예외를 적용할 가능성이 높습니다.

• 이메일 공급자가 응답하지 않거나 정책을 변경할 의지가 없다면 전용 IP 주소 (p. 167) 사용을 고려해 보십시오. 전용 IP 주소는 사용자 본인만 사용할 수 있는 주소입니다. 올바른 전송 실행을 구현함으로써 참여율은 높게 유지하고 반송 메일, 수신 거부, 스팸 트랩 횟수를 낮게 유지할 수 있습니다. 좋은 전송 방법은 주소가 DNSBL에서 끝나지 않도록 하는 데 도움이 될 수 있습니다.

Q6. Gmail, Hotmail 또는 다른 주요 공급자에게 보내는 메일이 스팸 폴더로 전송됩니다. 보내는 IP 주소가DNSBL에 있기 때문에 이런 일이 발생합니까?아닐 것입니다. 스팸하우스의 DNSBL 중 하나와 같이 IP 주소가 중대한 영향을 미치는 DNSBL에 의해 나열되는 경우 주요 이메일 공급자는 해당 IP 주소의 이메일을 스팸 폴더로 보내는 대신 완전히 거부합니다.

478

Page 487: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Email metrics FAQs

주요 이메일 공급자가 이메일을 거부하지 않고 수락하면 대개 받은 편지함 또는 스팸 폴더에 메시지를 넣을지 여부를 결정할 때 사용자 참여를 고려합니다. 사용자 참여란 이전에 사용자에게 보낸 메시지와 사용자가상호 작용하는 방식을 의미합니다.

메시지가 고객의 받은 편지함에 도착할 확률을 높이려면 다음과 같은 모범 사례를 모두 실행해야 합니다.

• 이메일 주소를 임차하거나 구매하지 마십시오 . 목록 임차 또는 구매는 AWS 이용 정책(AUP)을 위반하는행위이며 어떠한 경우에도 Amazon SES에서 허용되지 않습니다.

• 이메일 수신을 명시적으로 요청한 고객에게만 이메일을 보내십시오. 이메일 수신을 명시적으로 동의하지않은 수신자에게 이메일을 보내는 것은 전 세계의 여러 국가 및 관할 구역에서 불법입니다.

• 지난 30–90일 동안 보낸 메시지를 열어 보지 않았거나 메시지의 링크를 클릭하지 않은 고객에게는 이메일발신을 중지하십시오. 이 단계는 참여율을 높게 유지하는 데 도움이 될 수 있으므로 추후에 보내는 메시지가 수신자의 받은 편지함에 도착할 가능성이 높아집니다.

• 보내는 각 메시지에서 일관된 디자인 요소와 작문 스타일을 사용해 고객이 메시지 발신자를 쉽게 식별할수 있게 하십시오.

• SPF (p. 125) 및 DKIM (p. 126) 등의 이메일 인증 메커니즘을 사용합니다.• 고객이 콘텐츠 구독을 위해 웹 양식을 사용할 경우, 이메일을 보내 고객이 이메일 수신을 원한다는 사실을

확인받으십시오. 고객이 이메일 수신을 원한다고 확인할 때까지는 추가로 이메일을 보내지 마십시오. 이과정을 일컬어 확인된 옵트인 또는 더블 옵트인.

• 고객이 쉽게 구독을 취소할 수 있게 하고, 구독 해제 요청은 즉각 처리하십시오.• 링크가 포함된 이메일을 보낼 경우 해당 링크를 Spamhaus DBL(Domain Block List)과 비교해 점검하십시

오. 링크를 테스트하려면 Spamhaus 웹 사이트에서 Domain Lookup Tool을 사용하십시오.

이러한 실행을 구현하면 발신자 평판을 개선하여 전송한 이메일이 수신자의 받은 편지함에 도달할 가능성을높일 수 있습니다. 또한 이러한 실행을 구현하면 사용자 계정에 대한 반송 메일과 수신 거부 발생률을 낮게유지하는 데 도움이 되고 스팸 트랩에 이메일을 보낼 위험을 낮출 수 있습니다.

Amazon SES email sending metrics FAQsAmazon SES는 전송하는 이메일에 대한 몇 가지 지표를 수집합니다. 이러한 지표는 이메일 프로그램의 효율성을 분석하거나, 반송 또는 불만 제기 비율 같이 중요한 통계를 모니터링하는 데 사용됩니다.

이번 단원에는 이메일 전송 지표와 관련하여 다음 지표에 대한 FAQ가 포함되어 있습니다.• General Questions (p. 479)• Open Tracking (p. 480)• Click Tracking (p. 481)

General QuestionsQ1. After an email is delivered, how long does Amazon SEScontinue to collect open and click metrics?Amazon SES는 각 이메일 전송 후 60일 동안 열기 및 클릭 지표를 수집합니다.

Q2. If a user opens an email multiple times, or clicks a link in anemail multiple times, is each of those events tracked separately?수신자가 이메일을 여러 번 열면 Amazon SES는 각 열기를 고유한 열기 이벤트로 계산합니다. 마찬가지로수신자가 동일한 링크를 여러 번 클릭하면 Amazon SES는 각 클릭을 고유한 클릭 이벤트로 계산합니다.

479

Page 488: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Open Tracking

Q3. Are open and click metrics aggregated, or can they bemeasured down to the recipient level?이메일 확인 및 클릭 수는 수신자 수준으로 추적됩니다. 따라서 이메일 확인 및 클릭 추적을 통해 어떤 수신자가 이메일을 확인했는지, 혹은 이메일의 링크를 클릭했는지 알 수 있습니다.

Q4. Can I retrieve open and click metrics using the Amazon SESAPI?Amazon SES API는 열기 및 클릭 지표를 검색하는 방법을 제공하지 않습니다. 하지만 CloudWatch API를 사용하여 Amazon SES에 대한 열기 및 클릭 지표를 검색할 수 있습니다. 예를 들어 AWS CLI를 사용하여 다음명령을 실행하는 방식으로 CloudWatch API를 사용해 클릭 지표를 검색할 수 있습니다.

aws cloudwatch get-metric-statistics --namespace AWS/SES --metric-name Click \ --statistics Sum --period 86400 --start-time 2017-01-01T00:00:00Z \ --end-time 2017-12-31T23:59:59Z

위에 표시된 명령은 2017년의 각 일자에 대한 총 클릭 이벤트 수를 검색합니다. 열린 메트릭을 검색하려면metric-name 매개변수 Open. 또한 start-time and end-time 분석 기간을 변경하거나 period 파인그레인 분석을 위한 매개변수.

Open TrackingQ1. How does open tracking work?Amazon SES를 통해 전송되는 이메일은 각각 하단에 1 x 1픽셀 크기의 투명한 GIF 이미지가 삽입됩니다. 이메일마다 이러한 이미지 파일에 대한 고유 참조가 포함되어 있어서 이 이미지 파일을 열면 Amazon SES에서어떤 메시지를 누가 열었는지 정확히 알 수 있습니다.

이러한 추적 픽셀이 추가되더라도 이메일의 모습은 바뀌지 않습니다.

Q2. Is open tracking enabled by default?열기 추적은 기본적으로 모든 Amazon SES 사용자에게 활성화됩니다. 이메일 추적 기능을 사용하려면 다음방법을 따라야 합니다.

1. 구성 세트를 생성합니다.2. 구성 세트에서 이벤트 대상을 생성합니다.3. 이벤트 대상을 구성하여 이메일 확인 이벤트 알림을 대상에 게시합니다.4. 이메일 확인을 추적할 모든 이메일에 1단계에서 생성한 구성 세트를 지정합니다.

이러한 프로세스에 대한 자세한 내용은 the section called “Monitoring sending using eventpublishing” (p. 269) 단원을 참조하십시오.

Q3. Can I omit the open tracking pixel from certain emails?이메일에서 이메일 확인 추적 픽셀을 생략할 수 있는 방법은 두 가지가 있습니다. 첫 번째는 구성 세트를 지정하지 않고 이메일을 전송하는 방법입니다. 두 번째는 이메일 확인 이벤트에 대한 데이터를 게시하지 않도록 구성하여 구성 세트를 지정하는 방법입니다.

480

Page 489: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Click Tracking

Q4. Do you track opens for plaintext emails?열기 추적은 HTML 이메일에서만 사용할 수 있습니다. 이메일 확인 추적 기능은 이미지를 추가해야 하기 때문에 텍스트 전용(비-HTML) 이메일 클라이언트를 사용하여 이메일을 확인하는 사용자는 이메일 확인 지표를 수집할 수 없습니다.

Click TrackingQ1. How does click tracking work?Amazon SES는 클릭을 추적할 목적으로 이메일 본문에 포함된 각 링크를 수정합니다. 수신자가 링크를 클릭하면 Amazon SES 서버로 먼저 전송되고 나서 바로 대상 주소로 보내집니다. 이메일 확인 추적 기능과 마찬가지로 각 리디렉션 링크는 고유성을 갖습니다. 그렇기 때문에 어떤 수신자가 링크를 클릭했는지, 언제 클릭했는지, 그리고 어떤 이메일에서 링크를 클릭했는지 Amazon SES에서 알 수 있습니다.

Important

하나의 메시지를 여러 수신자에게 보낸 경우 각 수신자는 동일한 클릭 추적 링크를 저장하게 됩니다. 개별 수신자의 클릭 동작을 추적하려면 한 번에 한 수신자에게 이메일을 보내십시오.

Q2. Can I disable click tracking?ses:no-track 속성을 이메일의 HTML 본문에 있는 앵커 태그에 추가하면 개별 링크에 대한 클릭 추적을비활성화할 수 있습니다. 예를 들어 AWS 홈페이지에 링크를 연결한다면 정상적인 앵커 링크는 다음과 비슷합니다.

<a href="https://aws.amazon.com">Amazon Web Services</a>

해당 링크에 대한 클릭 추적을 비활성화하려면 다음과 유사하게 수정합니다.

<a ses:no-track href="aws.amazon.com">Amazon Web Services</a>

ses:no-track은 표준 HTML 속성이 아니므로 Amazon SES는 수신자의 수신함에 도착하는 이메일 버전에서 이를 자동으로 제거합니다.

특정 구성 세트를 사용하여 보내는 모든 메시지에 대해 클릭 추적을 비활성화할 수도 있습니다. 클릭 추적을 비활성화하려면 클릭 이벤트가 캡처되지 않도록 구성 세트 이벤트 대상을 수정합니다. 자세한 정보는Amazon SES 이벤트 대상 관리 (p. 238) 단원을 참조하십시오.

Q3. How many links can be tracked in each email?클릭 추적 시스템은 최대 250개의 링크를 추적할 수 있습니다.

Q4. Are click metrics collected for links in plain text emails?HTML 이메일에서 클릭 수를 추적하는 것만 가능합니다.

Q5. Can I tag links with unique identifiers?ses:tags 속성을 사용하면 이메일의 링크에 제한 없이 태그를 키-값 페어로 추가할 수 있습니다. 이 속성을사용할 때는 인라인 CSS 속성을 전달하는 데 사용한 것과 동일한 형식으로 키와 값을 지정합니다. 즉, 키를입력하고 콜론(:)을 입력한 후 값을 입력합니다. 키-값 페어를 여러 개 전달해야 할 경우 각 페어를 세미콜론(;)으로 구분하십시오.

481

Page 490: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Click Tracking

예를 들어 product:book, genre:fiction, subgenre:scifi, type:newrelease 태그를 링크에추가한다고 가정하겠습니다. 그러면 태그가 추가된 링크는 다음과 같은 모습이 됩니다.

<a ses:tags="product:book;genre:fiction;subgenre:scifi;type:newrelease;" href="http://www.amazon.com/…/">New Releases in Science Fiction</a>

이 태그들은 사용자가 클릭한 특정 링크에 대한 추가 분석이 가능하도록 이벤트 게시 대상으로 전달됩니다.

Note

링크 태그에는 숫자 0–9, 문자 A–Z(대문자 및 소문자 모두 가능), 하이픈(-), 밑줄(_)이 포함될 수 있습니다.

Q6. Do tracked links use the HTTP or HTTPS protocol?추적 링크는 이메일의 원래 링크와 동일한 프로토콜을 사용합니다.

예를 들어 이메일에 https://www.amazon.com에 대한 링크가 포함되어 있는 경우 해당 링크는 HTTPS프로토콜을 사용하는 추적 링크로 바뀝니다. 이메일에 http://www.example.com에 대한 링크가 포함되어 있는 경우 해당 링크는 HTTP를 사용하는 추적 링크로 바뀝니다. 위에서 언급한 두 링크가 이메일에 모두포함되어 있는 경우 HTTPS 링크는 HTTPS 프로토콜을 사용하는 추적 링크로 바뀌고, HTTP 링크는 HTTP프로토콜을 사용하는 추적 링크로 바뀝니다.

Q7. A link in my email isn't being tracked. Why not?Amazon SES는 이메일의 링크에 올바르게 인코딩된 URL이 포함되었다고 가정합니다. 특히 링크의 URL은RFC 3986을 준수해야 합니다. 이메일의 링크가 올바르게 인코딩되지 않은 경우에도 수신자는 이메일에서링크를 볼 수 있으나 Amazon SES는 해당 링크의 클릭 이벤트를 추적하지 않습니다.

잘못된 인코딩과 관련된 문제는 일반적으로 쿼리 문자열이 포함된 URL에서 발생합니다. 예를 들어, 이메일의 링크에 있는 링크의 URL이 쿼리 문자열에 인코딩된 공간 문자가 있는 경우(예: "John, , 및 .Doe"의예: http://www.example.com/path/to/page?name=John Doe), Amazon SES 이 링크를 추적하지 않습니다.그러나 URL이 인코딩된 공간 문자를 사용하는 경우(예: "%20") http://www.example.com/path/to/page?name=John%20Doe), Amazon SES 는 예상대로 추적합니다.

482

Page 491: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드

Amazon SES resources다음 표에 Amazon Simple Email Service(Amazon SES)를 사용할 때 참조할 수 있는 리소스가 나와 있습니다.

Resource 설명

Amazon Simple Email Service APIReference

Amazon SES API 참조입니다. API 작업, 파라미터, 데이터 형식에 대한 전체 설명과 서비스가 반환하는 오류 목록을 포함합니다.

Amazon SES 요금 Amazon SES 요금 정보.

SES Sending Limits Increase case 발신 할당량 증가를 요청하거나 샌드박스를 해제하기 위한 지원 센터 양식.

Amazon SES 포럼 Amazon SES 사용자들이 다양한 Amazon SES 주제에 대해 질문을 게시하거나 토론할 수 있는 포럼.

AWS 메시징 및 타게팅 블로그 Amazon SES 팀의 블로그 포스트나 공지가 발표되는 블로그.

AWS 개발자 도구 AWS로 혁신적인 애플리케이션을 구축하는 데 도움이 될 수 있는 문서, 코드 샘플, 릴리스 정보 및 기타 정보를 제공하는 개발자 도구 및 리소스 링크.

AWS 지원 센터 AWS 지원 사례를 생성 및 관리하는 곳입니다. 또한 포럼, 기술FAQ, 서비스 상태 및 AWSAWS Trusted Advisor 등의 기타 유용한 자료에 대한 링크가 있습니다.

문의처 AWS 결제, 계정, 이벤트, 침해 및 기타 문제에 대해 문의할 수있는 중앙 연락 창구입니다.

AWS 용어집 AWS 용어집입니다. Amazon SES 및 기타 AWS 서비스에서사용되는 공통 용어에 대한 정의가 수록됩니다.

사용 조건 AWS 이용 정책입니다. 이메일 침해를 비롯해 그 밖에 AmazonWeb Services에서 제공하는 웹 서비스의 불법 사용이 설명되어 있습니다.

[email protected] Amazon SES에서 보낸 악의적이거나 원치 않는(스팸) 이메일을 보고하기 위한 이메일 주소입니다.

이 주소에 연락할 때 다음과 같은 정보를 제공해 주십시오.

• The full headers of the email message. For moreinformation about retrieving email headers, see https://support.google.com/mail/answer/22454?hl=en.

• The type of abuse you are experiencing. For example,unsolicited emails that do not provide a method of optingout.

483

Page 492: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Header fields

Amazon SES Developer Guideappendix

이 부록은 Amazon Simple Email Service(Amazon SES)를 통한 이메일 전송에 대한 보충 정보를 담고 있습니다.

• For the header field requirements for emails that you send through Amazon SES, see Headerfields (p. 484).

• For a list of attachment types that Amazon SES does not accept, see Unsupported attachmenttypes (p. 486).

Header fieldsAmazon SES는 RFC 822에 설명된 형식을 따르는 모든 이메일 헤더를 허용할 수 있습니다.

메시지 헤더 섹션에 다음 필드를 두 번 이상 표시할 수 없습니다.

• Accept-Language• acceptLanguage

Note

This field is non-standard. If possible, you should use the Accept-Language header instead.• Archived-At• Auto-Submitted• Bounces-to• Comments• Content-Alternative• Content-Base• Content-Class• Content-Description• Content-Disposition• Content-Duration• Content-ID• Content-Language• Content-Length• Content-Location• Content-MD5• Content-Transfer-Encoding• Content-Type• Date

Note

If you specify a Date header, Amazon SES overrides it with a timestamp that corresponds to thedate and time in the UTC time zone when Amazon SES accepted the message.

484

Page 493: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Header fields

• Delivered-To• Disposition-Notification-Options• Disposition-Notification-To• DKIM-Signature• DomainKey-Signature• Errors-To• From• Importance• In-Reply-To• Keywords• List-Archive• List-Help• List-Id• List-Owner• List-Post• List-Subscribe• List-Unsubscribe• Message-Context• Message-ID

Note

If you provide a Message-ID header, Amazon SES overrides the header with its own value.• MIME-Version• Organization• Original-From• Original-Message-ID• Original-Recipient• Original-Subject• Precedence• Priority• References• Reply-To• Return-Path

Note

If you specify a Return-Path header, Amazon SES sends bounce and complaint notifications tothe address that you specified. However, the message that your recipients receive contains adifferent value for the Return-Path header.

• Return-Receipt-To• Sender• Solicitation• Sensitivity• Subject• Thread-Index• Thread-Topic• User-Agent• VBR-Info

485

Page 494: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드Unsupported attachment types

Unsupported attachment types첨부 파일을 통해 메시지를 전송할 수 있습니다. Amazon SES 다목적 인터넷 메일 익스텐션(MIME) 표준 을(를) 사용합니다. Amazon SES 모든 파일 첨부 파일 유형 수용 except 다음 목록에 파일 확장명이 있는 첨부파일을 사용합니다.

Note

일부 ISP는 제한 사항(예: 보관된 첨부 파일 관련 제한 사항)을 추가로 두고 있으므로 프로덕션 이메일을 보내기 전에 주요 ISP를 통해 이메일 전송을 테스트하는 것이 좋습니다.

.ade

.adp

.app

.asp

.bas

.bat

.cer

.chm

.cmd

.com

.cpl

.crt

.csh

.der

.exe

.fxp

.gadget

.hlp

.hta

.inf

.ins

.isp

.its

.js

.jse

.ksh

.lib

.lnk

.mad

.maf

.mag

.mam

.maq

.mar

.mas

.mat

.mau

.mav

.maw

.mda

.mdb

.mde

.mdt

.mdw

.mdz

.msc

.msh

.msh1

.msh2

.mshxml

.msh1xml

.msh2xml

.msi

.msp

.mst

.ops

.pcd

.pif

.plg

.prf

.prg

.reg

.scf

.scr

.sct

.shb

.shs

.sys

.ps1

.ps1xml

.ps2

.ps2xml

.psc1

.psc2

.tmp

.url

.vb

.vbe

.vbs

.vps

.vsmacros

.vss

.vst

.vsw

.vxd

.ws

.wsc

.wsf

.wsh

.xnk

486

Page 495: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드

Amazon SES 개발자 가이드 문서 기록

다음 표에는 Amazon Simple Email Service(Amazon SES) 개발자 가이드의 주요 변경 사항이 나와 있습니다.

변경 사항 설명 변경 날짜

새로운 기능 이제 일시적으로 이메일 전송을 지연하는 이벤트가 발생할 때 알림 (p. 269)을 받을 수 있습니다.

2020년 6월 19일

새로운 기능 이제 Amazon SES는 AWS GovCloud (US) (p. 432)에서 사용할 수 있습니다.

2020년 4월 30일

새로운 기능 이제 Amazon Virtual Private Cloud(Amazon VPC)에서 Amazon SES엔드포인트를 생성 (p. 79)할 수 있습니다.

2020년 4월 29일

새로운 기능 이제 Amazon SES는 추가 3개 AWS 리전 (p. 432)(캐나다(중부), 유럽(런던), 남아메리카(상파울루))에서 사용할 수 있습니다.

2020년 4월 1일

새로운 기능 이제 자체 IP 범위를 사용하여 이메일을 보낼 수 있습니다. 자세한정보는 고유 IP 주소를 사용하여 Amazon SES를 통해 이메일 보내기 (p. 174) 단원을 참조하십시오.

2019년 12월 23일

새로운 기능 이제 자체 퍼블릭-프라이빗 키 페어를 사용하여 도메인에 대한 DKIM인증 프로세스를 완료할 수 있습니다. 자세한 정보는 Amazon SES에자체 DKIM 인증 토큰 제공 (p. 134) 단원을 참조하십시오.

2019년 12월 13일

새로운 기능 이제 계정 수준 금지 목록 (p. 177)을 사용하여 이전에 반송 메일 또는수신 거부가 발생한 이메일 주소로 메시지를 자동으로 보내지 않도록할 수 있습니다.

2019년 11월 25일

새로운 기능 계정 상태가 양호하고 계정의 발신 할당량에 도달하면 Amazon SES가 자동으로 할당량을 늘립니다. 자세한 정보는 더 많은 Amazon SES할당량 보내기 (p. 142) 단원을 참조하십시오.

 

설명서 업데이트

Amazon SES에서 개인 데이터 삭제에 대한 정보 (p. 457)가 추가되었습니다.

2018년 3월 13일

오픈 소스 설명서

이제 GitHub에서도 Amazon SES 설명서를 사용할 수 있습니다.GitHub 리포지토리에서 문제를 제출하거나 변경을 요청하거나, 또는직접 변경하고 풀 요청을 제출할 수 있습니다.

2018년 2월 22일

설명서 업데이트

Amazon SES에 저장된 개인 데이터 삭제 (p. 457)에 대한 정보를 제공하는 단원이 추가되었습니다.

2018년 2월 28일

설명서 업데이트

Amazon SNS 이벤트 게시 필드 정의 (p. 300)가 개정되고 렌더링 오류이벤트 예제 (p. 318)가 추가되었습니다.

2018년 1월 22일

설명서 업데이트

IAM 및 Lambda 콘솔에 대한 변경 사항을 설명하는 배달 가능성 대시보드 부록이 업데이트되었습니다.

Note

더 이상 지원되지 않는 구성 요소가 사용되므로 2019년 5월 3일에 이 부록을 제거했습니다.

2018년 1월 18일

487

Page 496: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드

변경 사항 설명 변경 날짜

설명서 업데이트

업데이트됨 이벤트 게시 관련 콘텐츠 CloudWatch (p. 272) 에서 차단된 필드 을(를) 언급합니다.

2018년 1월 15일

설명서 업데이트

따라하기 쉽도록 OpenSSL을 사용한 이메일 전송 절차 (p. 99)가 업데이트되었습니다.

2018년 1월 11일

설명서 업데이트

Ruby용 AWS SDK을 사용하여 원시 이메일을 전송하기 위한 코드 예제가 추가되었습니다.

2018년 1월 2일

설명서 업데이트

PHP용 AWS SDK을 사용하여 원시 이메일을 전송하기 위한 코드 예제가 추가되었습니다.

2017년 12월 29일

새로운 기능 사용자 지정 확인 이메일에 대한 내용이 추가되었습니다. 2017년 12월 7일

새로운 기능 구성 세트에 대한 이메일 전송 일시 중지 및 평판 지표 내보내기와 관련된 콘텐츠가 추가되었습니다.

2017년 11월 15일

설명서 업데이트

AWS SDK for Java을 사용하여 원시 이메일을 전송하기 위한 코드 예제가 추가되었습니다.

2017년 10월 23일

설명서 업데이트

AWS SDK for Python (Boto)을 사용하여 원시 이메일을 전송하기 위한 코드 예제가 추가되었습니다.

2017년 10월 20일

새로운 기능 이메일 템플릿 및 맞춤형 이메일 기능과 관련된 콘텐츠가 추가되었습니다.

2017년 10월 11일

새로운 기능 확인 및 클릭 사용자 지정 도메인 기능에 대한 내용이 추가되었습니다. 2017년 9월 18일

새로운 기능 평판 대시보드와 관련된 내용이 추가되었습니다. 2017년 8월 24일

새로운 기능 전용 IP 풀 기능에 대한 내용이 추가되었습니다. 2017년 8월 17일

새로운 기능 이메일 확인 및 클릭 추적 기능에 대한 내용이 추가되었습니다. 2017년 8월 1일

설명서 업데이트

코드 예제 인덱스가 추가되었습니다. 2017년 26월 6일

설명서 업데이트

Amazon SES에 대한 배달 가능성 대시보드를 생성하기 위한 프로세스를 설명하는 부록이 추가되었습니다.

Note

더 이상 지원되지 않는 구성 요소가 사용되므로 2019년 5월 3일에 이 부록을 제거했습니다.

2017년 6월 22일

설명서 업데이트

이메일 전송 코드 예제가 업데이트되었습니다. 2017년 6월 6일

새로운 기능 전용 IP를 위해 업데이트되었습니다. 2016년 11월 21일

새로운 기능 이메일 전송 이벤트 게시를 위해 업데이트되었습니다. 2016년 11월 2일

488

Page 497: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드

변경 사항 설명 변경 날짜

서비스 업데이트

DKIM 레코드를 생성한 후에 사용자가 Easy DKIM 서명을 더 이상 명시적으로 활성화할 필요가 없음을 반영하도록 업데이트되었습니다.

2016년 9월 15일

설명서 업데이트

이메일 수신을 위한 시작하기 자습서를 추가했습니다. 2016년 7월 12일

새로운 기능 향상된 알림 기능이 업데이트되었습니다. 2016년 6월 14일

새로운 기능 사용자 지정 MAIL FROM 도메인이 업데이트되었습니다. 2016년 3월 14일

새로운 기능 인바운드 이메일 관련 기능을 업데이트했습니다. 2015년 9월 28일

새로운 기능 권한 부여 전송이 업데이트되었습니다. 2015년 7월 8일

새로운 기능 AWS CloudTrail 로깅이 업데이트되었습니다. 2015년 5월 7일

서비스 업데이트

Amazon SES 할당량 증가 양식 및 제거된 "프로덕션 액세스" 용어의통합을 반영하도록 업데이트되었습니다.

2015년 4월 8일

서비스 업데이트

도메인 확인 TXT 레코드에 대한 요구 사항이 업데이트되었습니다. 2015년 2월 25일

설명서 업데이트

강제 적용(Enforcement) FAQ가 추가되었습니다. 2014년 12월 15일

새로운 기능 전송 알림이 업데이트되었습니다. 2014년 6월 23일

새로운 기능 하위 도메인을 지원하도록 업데이트되었습니다. 2014년 3월 19일

새로운 기능 미국 서부(오레곤) 리전으로 Amazon SES를 확장하도록 업데이트되었습니다.

2014년 1월 29일

새로운 기능 유럽(아일랜드) 리전으로 Amazon SES를 확장하도록 업데이트되었습니다.

2014년 1월 15일

새로운 기능 헤더 필드와 MIME 형식 검증의 변경 내용을 반영하도록 업데이트되었습니다.

2013년 11월 6일

설명서 업데이트

발신자 ID의 내용이 제거되었습니다. 2013년 8월 22일

새로운 기능 Amazon SES 콘솔 재설계를 반영하도록 업데이트되었습니다. 2013년 6월 19일

새로운 기능 블랙리스트 기능의 이름을 전역 억제 목록으로 변경했습니다. 2013년 5월 8일

새로운 기능 전역 억제 목록 제거 기능 업데이트. 2013년 3월 4일

설명서 업데이트

MIME 형식이 추가되었습니다. 2013년 2월 4일

설명서 업데이트

독립 실행형 시작 안내서를 대체하는 시작하기 단원이 포함되고, 목차가 재구성되었으며, Sendmail 통합 지침이 업데이트되었습니다.

2013년 1월 21일

489

Page 498: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드

변경 사항 설명 변경 날짜

설명서 업데이트

처리량 향상과 SMTP 문제에 대한 문제 해결 단원이 추가되었습니다. 2012년 12월 12일

설명서 업데이트

발신 할당량에 대한 정보가 재구성되었습니다. 2012년 11월 9일

새로운 기능 Amazon SES 메일박스 시뮬레이터가 업데이트되었습니다. 2012년 10월 3일

새로운 기능 DKIM 서명을 사용하여 확인된 자격 증명에서 보낸 이메일을 서명하도록 업데이트되었습니다.

2012년 7월 17일

새로운 기능 Amazon Simple Notification Service(Amazon SNS)를 통한 반송 메일과 불만 제기 피드백 알림 수신이 업데이트되었습니다.

2012년 6월 26일

새로운 기능 도메인 확인이 업데이트되었습니다. 2012년 5월 15일

새로운 기능 추가 헤더와 첨부 파일 형식을 반영하도록 업데이트되었습니다. 2012년 4월 25일

새로운 기능 STARTTLS의 SMTP 확장이 업데이트되었습니다. 2012년 3월 7일

새로운 기능 VERP(Variable Envelope Return Path)가 업데이트되었습니다. 2012년 22월 2일

새로운 기능 SMTP를 지원하도록 업데이트되었습니다. 2011년 12월 13일

새로운 기능 AWS Management Console을 지원하도록 업데이트되었습니다. 2011년 11월 17일

새로운 기능 첨부 파일을 지원하도록 업데이트되었습니다. 2011년 7월 18일

최초 릴리스 이 설명서는 Amazon Simple Email Service 개발자 안내서의 최초 릴리스입니다.

2011년 1월 25일

490

Page 499: Amazon Simple Email Service - AWS Documentation · Cloud(Amazon EC2)에서 실행되는 경우 Amazon SES를 사용하여 추가 비용 없이 매월 62,000개의 이 메일을 전송할

Amazon Simple Email Service 개발자 가이드

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여제공합니다.

cdxci