Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse en una cuenta gratuita, consulte Introducción a la capa gratuita de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al completar el laboratorio, sustituya estos valores por otros específicos de su entorno en la nube.
Envío de correos electrónicos mediante la interfaz HTTP del servicio Oracle Cloud Infrastructure Email Delivery
Introducción
Oracle Cloud Infrastructure (OCI) Email Delivery es un servicio de envío de correo electrónico que proporciona una solución gestionada rápida y fiable para enviar correos electrónicos masivos y transaccionales de gran volumen. Antes, OCI Email Delivery solo contenía una interfaz de protocolo simple de transferencia de correo (SMTP). Sin embargo, recientemente anunciamos una nueva API de REST HTTPS para el envío de correos electrónicos, lo que mejora el rendimiento, elimina la complejidad de la configuración y aumenta las tasas de colocación correcta en buzón.
Objetivo
- Envíe correos electrónicos mediante la interfaz HTTP del servicio OCI Email Delivery.
Requisitos
-
Usuario con permisos suficientes para enviar correos electrónicos mediante OCI Email Delivery. Para obtener más información, consulte las políticas aquí.
-
Dominio de OCI Email Delivery. Para obtener más información sobre la configuración de un dominio de OCI Email Delivery, consulte Instrucciones paso a paso para enviar correos electrónicos con OCI Email Delivery.
Tarea 1: Descripción de los métodos de autenticación
Los envíos de correo electrónico HTTPS soportan los métodos de autenticación estándar del SDK de OCI. En este tutorial, mostraremos la autenticación basada en claves de API y la autenticación de principales de instancia. Para obtener más información, consulte Métodos de autenticación de SDK de OCI.
-
Autenticación basada en clave de API
En esta autenticación, creará un archivo de configuración y lo almacenará en la máquina local. Por lo tanto, solo se debe utilizar desde una red segura y cuando se sienta cómodo almacenando las claves privadas de forma local. El archivo contiene los siguientes detalles.
- Oracle Cloud Identifier (OCID) de usuario
- OCID de arrendamiento
- Región
- Ruta de acceso de clave privada
- Huella
Para obtener más información sobre cómo crear y recopilar los parámetros anteriores, consulte Claves y OCID necesarios.
-
Autenticación de principal de la instancia
La autenticación de principal de instancia implica autorizar a una instancia para que realice llamadas de API en los servicios de OCI mediante un grupo dinámico. Cree un grupo dinámico, reglas de coincidencia y políticas adecuadas. Para obtener más información, consulte Gestión de grupos dinámicos.
Para permitir que la instancia envíe correos electrónicos, utilice la siguiente política.
Allow dynamic-group <dynamic-group-name> to use email-family in compartment <compartment-name>
Para obtener más información sobre cómo personalizar aún más estos permisos, consulte Detalles del servicio Email Delivery.
Tarea 2: Enviar correo electrónico
Utilizaremos el kit de desarrollo de software (SDK) de Python, pero se puede sustituir cualquier SDK o la interfaz de línea de comandos (CLI de OCI) de Oracle Cloud Infrastructure. Para obtener más información sobre cómo realizar la instalación, consulte Software Development Kits and Command Line Interface.
Nota: Consulte la API de Email Delivery para obtener una lista completa de los parámetros disponibles.
-
Autenticación basada en clave de 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)
Descargue el ejemplo de configuración de cliente de SDK de Python desde aquí: configuration_example.py.
-
Autenticación de principal de la instancia
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)
Descargue el ejemplo de principal de instancia de SDK de Python desde aquí: instance_principals_examples.py.
Tarea 3: Prueba en el volumen
Para mantener su reputación de remitente y la nuestra, utilice las siguientes mejores prácticas para realizar pruebas en volumen.
-
Utilice una dirección de recibo en el dominio
discard.oracle.com
, comoexample@discard.oracle.com
. OCI Email Delivery acepta el correo, pero no lo entrega a un buzón. -
Si se envían correos electrónicos de gran volumen a direcciones de correo electrónico válidas, los receptores los rechazan, lo que genera muchas devoluciones permanentes. Este resultado afecta negativamente a la reputación de IP. Para probar el procesamiento de las devoluciones, envíe pequeñas cantidades de correos electrónicos a un dominio que no exista.
Enlaces relacionados
-
Instrucciones paso a paso para enviar correo electrónico con OCI Email Delivery
-
Ejemplo de clave de API de SDK de Python: configuration_example.py
-
Ejemplo de principal de instancia de SDK de Python: instance_principals_examples.py
Agradecimientos
- Autor: Cody Brinkman (arquitecto en la nube)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Send Emails using the Oracle Cloud Infrastructure Email Delivery Service HTTP Interface
F96699-02
May 2024