주:
- 이 사용지침서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 마칠 때는 이러한 값을 클라우드 환경과 관련된 값으로 대체하십시오.
Oracle Cloud Infrastructure Email Delivery Service HTTP 인터페이스를 사용하여 이메일 전송
소개
Oracle Cloud Infrastructure(OCI) Email Delivery는 대량의 대량 이메일과 트랜잭션 이메일을 모두 전송하기 위한 빠르고 안정적인 관리형 솔루션을 제공하는 이메일 전송 서비스입니다. 이전에는 OCI Email Delivery에 SMTP(Simple Mail Transfer Protocol) 인터페이스만 포함되었습니다. 그러나 최근에는 이메일 제출을 위한 새로운 HTTPS REST API를 발표하여 성능을 개선하고 구성 복잡성을 없애며 수신함 배치 성공률을 높였습니다.
목표
- OCI Email Delivery Service HTTP 인터페이스를 사용하여 전자메일을 전송합니다.
필요 조건
-
OCI Email Delivery를 사용하여 전자메일을 전송할 수 있는 충분한 권한이 있는 사용자입니다. 자세한 내용은 여기에서 정책을 참조하십시오.
-
OCI 전자메일 전송 도메인입니다. OCI 전자메일 전송 도메인을 설정하는 방법에 대한 자세한 내용은 OCI 전자메일 전송으로 전자메일을 전송하는 단계별 지침을 참조하십시오.
작업 1: 인증 방법 이해
HTTPS 이메일 제출은 표준 OCI SDK 인증 방법을 지원합니다. 이 자습서에서는 API 키 기반 인증 및 인스턴스 주체 인증에 대해 설명합니다. 자세한 내용은 OCI SDK Authentication Methods을 참조하십시오.
-
API 키 기반 인증
이 인증에서는 구성 파일을 생성하여 로컬 시스템에 저장합니다. 따라서 보안 네트워크에서만 사용해야 하며 로컬에 개인 키를 저장하는 것이 편한 경우에만 사용해야 합니다. 다음 세부정보를 포함합니다.
- 사용자 OCID(Oracle Cloud 식별자)
- 테넌시 OCID
- 영역
- 전용 키 경로
- 지문
위 매개변수를 생성하고 수집하는 방법에 대한 자세한 내용은 필수 키 및 OCID를 참조하십시오.
-
인스턴스 주체 인증
인스턴스 주체 인증에는 동적 그룹을 통해 OCI 서비스에서 API를 호출하도록 인스턴스에 권한을 부여하는 작업이 포함됩니다. 동적 그룹, 일치 규칙 및 적절한 정책을 생성합니다. 자세한 내용은 동적 그룹 관리를 참조하십시오.
인스턴스가 전자메일을 전송할 수 있도록 하려면 다음 정책을 사용합니다.
Allow dynamic-group <dynamic-group-name> to use email-family in compartment <compartment-name>
이러한 권한을 추가로 사용자 정의하는 방법에 대한 자세한 내용은 전자메일 전송 서비스에 대한 세부정보를 참조하십시오.
태스크 2: 전자메일 전송
Python SDK(소프트웨어 개발 키트)를 사용하지만 SDK 또는 OCI CLI(Oracle Cloud Infrastructure Command Line Interface)를 대체할 수 있습니다. 설치 방법에 대한 자세한 내용은 Software Development Kits and Command Line Interface를 참조하십시오.
주: 사용 가능한 매개변수의 전체 목록은 전자메일 전송 API를 참조하십시오.
-
API 키 기반 인증
import oci #Create a default config config = oci.config.from_file() #Initialize service client with config file email_client = oci.email_data_plane.EmailDPClient(config) #Create the email details email_details = oci.email_data_plane.models.SubmitEmailDetails( sender = oci.email_data_plane.models.Sender( sender_address = oci.email_data_plane.models.EmailAddress( email = '<approved sender email>', name = '<sender name>'), compartment_id = '<compartment ocid>'), recipients = oci.email_data_plane.models.Recipients( to = [ oci.email_data_plane.models.EmailAddress( email = '<to email address>', name = '<to name>' )], cc = [ oci.email_data_plane.models.EmailAddress( email = '<cc email address>', name '<cc name>' )], bcc = [ oci.email_data_plane.models.EmailAddress( email = '<bcc email address>', name '<bcc name>' )]), subject = '<email subject>', body_text = '<email body>', ) #Submit the email email_client.submit_email(email_details)
configuration_example.py에서 Python SDK 클라이언트 구성 예를 다운로드합니다.
-
인스턴스 주체 인증
import oci compartment_id = '<compartment ocid>' # By default this will hit the auth service in the region returned by http://169.254.169.254/opc/v2/instance/region on the instance. signer = oci.auth.signers.InstancePrincipalsSecurityTokenSigner() # In the base case, configuration does not need to be provided as the region and tenancy are obtained from the InstancePrincipalsSecurityTokenSigner identity_client = oci.identity.IdentityClient(config={}, signer=signer) #Create the email details email_details = oci.email_data_plane.models.SubmitEmailDetails( sender = oci.email_data_plane.models.Sender( sender_address = oci.email_data_plane.models.EmailAddress( email = '<approved sender email>', name = '<sender name>'), compartment_id = '<compartment ocid>'), recipients = oci.email_data_plane.models.Recipients( to = [ oci.email_data_plane.models.EmailAddress( email = '<to email address>', name = '<to name>' )], cc = [ oci.email_data_plane.models.EmailAddress( email = '<cc email address>', name '<cc name>' )], bcc = [ oci.email_data_plane.models.EmailAddress( email = '<bcc email address>', name '<bcc name>' )]), subject = '<email subject>', body_text = '<email body>', ) #Submit the email email_client.submit_email(email_details)
instance_principals_examples.py에서 Python SDK 인스턴스 주체 예를 다운로드합니다.
작업 3: 볼륨에서 테스트
보낸 사람의 평판과 평판을 모두 유지하려면 볼륨 테스트 시 다음 모범 사례를 사용하십시오.
-
discard.oracle.com
도메인의 영수증 주소(예:example@discard.oracle.com
)를 사용합니다. OCI Email Delivery는 메일을 수락하지만 받은 편지함으로 전달하지 않습니다. -
대용량 이메일이 유효한 이메일 주소로 전송되는 경우 수신자는 이를 거부하여 많은 하드 반송이 발생합니다. 이 결과는 IP 평판에 부정적인 영향을 미칩니다. 반송 처리를 테스트하려면 존재하지 않는 도메인으로 적은 양의 전자메일을 전송하십시오.
관련 링크
확인
- 작성자 - Cody Brinkman(클라우드 아키텍트)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Send Emails using the Oracle Cloud Infrastructure Email Delivery Service HTTP Interface
F96704-02
May 2024