Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Invia e-mail utilizzando l'interfaccia HTTP di Oracle Cloud Infrastructure Email Delivery Service
Introduzione
Oracle Cloud Infrastructure (OCI) Email Delivery è un servizio di invio delle e-mail che fornisce una soluzione gestita veloce e affidabile per l'invio di e-mail in blocco e transazionali ad alto volume. In precedenza, il servizio di consegna tramite posta elettronica OCI conteneva solo un'interfaccia SMTP (Simple Mail Transfer Protocol). Tuttavia, abbiamo recentemente annunciato una nuova API REST HTTPS per l'invio delle e-mail, migliorando le prestazioni, eliminando la complessità della configurazione e aumentando i tassi di successo del posizionamento nella posta in entrata.
Obiettivo
- Invia e-mail utilizzando l'interfaccia HTTP di OCI Email Delivery Service.
Prerequisiti
-
Un utente con autorizzazioni sufficienti per inviare messaggi di posta elettronica utilizzando OCI Email Delivery. Per ulteriori informazioni vedere i criteri qui.
-
Un dominio di consegna tramite posta elettronica OCI. Per ulteriori informazioni sull'impostazione di un dominio di consegna tramite posta elettronica OCI, vedere Istruzioni dettagliate per l'invio di messaggi di posta elettronica con OCI Email Delivery.
Task 1: Comprendere i metodi di autenticazione
Gli invii di posta elettronica HTTPS supportano i metodi di autenticazione standard dell'SDK OCI. In questa esercitazione verranno illustrate l'autenticazione basata su chiave API e l'autenticazione del principal dell'istanza. Per ulteriori informazioni, vedere Metodi di autenticazione SDK OCI.
-
Autenticazione basata su chiave API
In questa autenticazione verrà creato un file di configurazione e memorizzato nel computer locale. Pertanto, dovrebbe essere utilizzato solo da una rete sicura e quando è comodo memorizzare le chiavi private localmente. Il file contiene i dettagli seguenti:
- Identificativo Oracle Cloud (OCID) dell'utente
- OCID tenancy
- Area
- Percorso chiave privata
- Impronta digitale
Per ulteriori informazioni su come creare e raccogliere i parametri precedenti, vedere Chiavi e OCID richiesti.
-
Autenticazione del principal dell'istanza
L'autenticazione del principal dell'istanza implica l'autorizzazione di un'istanza per effettuare chiamate API sui servizi OCI tramite un gruppo dinamico. Creare un gruppo dinamico, regole di corrispondenza e criteri appropriati. Per ulteriori informazioni, vedere Gestione dei gruppi dinamici.
Per consentire all'istanza di inviare e-mail, utilizzare il criterio riportato di seguito.
Allow dynamic-group <dynamic-group-name> to use email-family in compartment <compartment-name>
Per ulteriori informazioni su come personalizzare queste autorizzazioni, vedere Dettagli per il servizio di consegna tramite e-mail.
Task 2: Invia e-mail
Useremo il kit SDK (Software Development Kit) Python, ma qualsiasi SDK o l'interfaccia della riga di comando di Oracle Cloud Infrastructure (OCI CLI) può essere sostituito. Per maggiori informazioni su come eseguire l'installazione, vedere Software Development Kits and Command Line Interface.
Nota: per un elenco completo dei parametri disponibili, fare riferimento all'API di consegna e-mail.
-
Autenticazione basata su chiave 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)
Scaricare l'esempio di configurazione del client Python SDK da qui: configuration_example.py.
-
Autenticazione del principal dell'istanza
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)
Scaricare l'esempio di principal dell'istanza SDK Python da qui: instance_principals_examples.py.
Task 3: Test a volume
Per mantenere sia la reputazione del mittente che la nostra, utilizzare le seguenti best practice per i test a volume.
-
Utilizzare un indirizzo di ricezione nel dominio
discard.oracle.com
, ad esempioexample@discard.oracle.com
. Il servizio di consegna tramite posta elettronica OCI accetta la posta ma non la consegna a una posta in arrivo. -
Se le e-mail di grandi volumi vengono inviate a indirizzi e-mail validi, i destinatari le rifiutano, con conseguente molti hard bounce. Questo risultato influisce negativamente sulla reputazione IP. Per testare l'elaborazione dei mancati recapiti, inviare piccole quantità di e-mail a un dominio che non esiste.
Collegamenti correlati
-
Istruzioni dettagliate per l'invio di e-mail con OCI Email Delivery
-
Kit di sviluppo software e interfaccia della riga di comando
-
Esempio di principal dell'istanza SDK Python: instance_principals_examples.py
Conferme
- Autore - Cody Brinkman (Cloud Architect)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione del prodotto, visita l'Oracle Help Center.
Send Emails using the Oracle Cloud Infrastructure Email Delivery Service HTTP Interface
F96702-02
May 2024