附註:
- 此教學課程需要存取 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) 介面。不過,我們最近宣布推出新的 HTTPS REST API 以進行電子郵件送出、提升效能、免除組態複雜性,以及提高收件匣放置成功率。
目標
- 使用 OCI 電子郵件傳遞服務 HTTP 介面傳送電子郵件。
必要條件
-
具備使用 OCI 電子郵件傳遞傳送電子郵件之足夠權限的使用者。如需更多資訊,請參閱此處的政策。
-
OCI Email Delivery 網域。如需設定 OCI 電子郵件傳遞網域的詳細資訊,請參閱使用 OCI 電子郵件傳遞傳送電子郵件的逐步指示。
作業 1:瞭解認證方法
HTTPS 電子郵件提交支援標準 OCI SDK 驗證方法。在本教學課程中,我們將示範以 API 金鑰為基礎的認證和執行處理主體認證。如需詳細資訊,請參閱 OCI SDK 認證方法。
-
API 金鑰式認證
在此認證中,您將建立一個組態檔並將它儲存在本機機器上。因此,您應該只從安全網路使用,以及在本機儲存私密金鑰時才使用。檔案包含以下詳細資訊。
- 使用者 Oracle Cloud ID (OCID)
- 租用戶 OCID
- 區域
- 私密金鑰路徑
- 指紋
如需有關如何建立及收集上述參數的詳細資訊,請參閱必要的金鑰和 OCID 。
-
執行處理主要項目認證
執行處理主要項目認證包括授權執行處理以動態群組方式對 OCI 服務進行 API 呼叫。建立動態群組、比對規則及適當的原則。如需詳細資訊,請參閱管理動態群組。
若要讓執行處理能夠傳送電子郵件,請使用下列原則。
Allow dynamic-group <dynamic-group-name> to use email-family in compartment <compartment-name>
如需有關如何進一步自訂這些權限的詳細資訊,請參閱電子郵件傳遞服務的詳細資訊。
作業 2:傳送電子郵件
我們將使用 Python 軟體開發套件 (SDK),但可以替換任何 SDK 或 Oracle Cloud Infrastructure 命令行介面 (OCI CLI)。如需如何安裝的更多資訊,請參閱 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)
從此處下載 Python SDK 從屬端組態範例:configuration_example.py 。
-
執行處理主要項目認證
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)
從此處下載 Python SDK 執行處理主體範例:instance_principals_examples.py 。
作業 3:大量測試
若要維護您的寄件者信譽與我們的信譽,請使用下列最佳實務進行大量測試。
-
使用位於
discard.oracle.com
網域的收據地址,例如example@discard.oracle.com
。OCI 電子郵件傳遞接受郵件,但不會將其傳遞至收件匣。 -
如果將大量電子郵件傳送至有效的電子郵件地址,接收者會拒絕這些電子郵件,導致許多永久性退信。這會對 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
F96707-02
May 2024