Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se cadastrar em uma conta gratuita, consulte Conceitos básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Enviar E-mails usando a Interface HTTP do Serviço Oracle Cloud Infrastructure Email Delivery
Introdução
O Oracle Cloud Infrastructure (OCI) Email Delivery é um serviço de envio de e-mail que fornece uma solução gerenciada rápida e confiável para o envio de alto volume de e-mails em massa e transacionais. Anteriormente, o OCI Email Delivery continha apenas uma interface SMTP (Simple Mail Transfer Protocol). No entanto, anunciamos recentemente uma nova API REST HTTPS para envio de e-mail, melhorando o desempenho, eliminando a complexidade da configuração e aumentando as taxas de posicionamento bem-sucedido da caixa de entrada.
Objetivo
- Envie e-mails usando a interface HTTP do OCI Email Delivery Service.
Pré-requisitos
-
Um usuário com permissões suficientes para enviar e-mail usando o OCI Email Delivery. Para obter mais informações, consulte as políticas aqui.
-
Um domínio do OCI Email Delivery. Para obter mais informações sobre como configurar um domínio do OCI Email Delivery, consulte Instruções passo a passo para enviar e-mail com o OCI Email Delivery.
Tarefa 1: Compreender os Métodos de Autenticação
Os envios de e-mail HTTPS suportam métodos de autenticação padrão do OCI SDK. Neste tutorial, demonstraremos a autenticação baseada em chave de API e a autenticação do controlador de instâncias. Para obter mais informações, consulte Métodos de Autenticação do OCI SDK.
-
Autenticação Baseada em Chave de API
Nessa autenticação, você criará um arquivo de configuração e o armazenará na máquina local. Portanto, ele deverá ser usado apenas em uma rede segura e quando você tiver conforto em armazenar chaves privadas localmente. O arquivo contém os seguintes detalhes.
- OCID (Oracle Cloud Identifier) do Usuário
- OCID da Tenancy
- Região
- Caminho da chave privada
- Impressão Digital
Para obter mais informações sobre como criar e reunir os parâmetros acima, consulte Chaves e OCIDs Necessários.
-
Autenticação principal da instância
A autenticação do controlador de instâncias envolve a autorização de uma instância para fazer chamadas de API nos serviços do OCI por meio de um grupo dinâmico. Crie um grupo dinâmico, regras de correspondência e políticas adequadas. Para obter mais informações, consulte Gerenciando Grupos Dinâmicos.
Para permitir que a instância envie e-mails, use a política a seguir.
Allow dynamic-group <dynamic-group-name> to use email-family in compartment <compartment-name>
Para obter mais informações sobre como personalizar ainda mais essas permissões, consulte Detalhes do Serviço Email Delivery.
Tarefa 2: Enviar E-mail
Usaremos o SDK (Software Development Kit, Kit de desenvolvimento de software) Python, mas qualquer SDK ou a CLI do OCI (Oracle Cloud Infrastructure Command Line Interface) podem ser substituídos. Para obter informações sobre como instalar, consulte Software Development Kits e Interface de Linha de Comando.
Observação: Para obter uma lista completa dos parâmetros disponíveis, consulte a API do Serviço Email Delivery.
-
Autenticação Baseada em Chave 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)
Faça download do exemplo de configuração do cliente Python SDK aqui: configuration_example.py.
-
Autenticação principal da instância
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)
Faça download do exemplo do controlador de instâncias do Python SDK aqui: instance_principals_examples.py.
Tarefa 3: Testar no Volume
Para manter a reputação do remetente e a nossa, use as melhores práticas a seguir nos testes em volume.
-
Use um endereço de recebimento no domínio
discard.oracle.com
, comoexample@discard.oracle.com
. O OCI Email Delivery aceita o e-mail, mas não o entrega em uma caixa de entrada. -
Se e-mails de grande volume forem enviados para endereços de e-mail válidos, os destinatários os rejeitarão, resultando em muitos hard bounces. Esse resultado afeta negativamente a reputação do IP. Para testar o processamento de devoluções, envie uma pequena quantidade de e-mails a um domínio que não exista.
Links Relacionados
-
Instruções passo a passo para enviar e-mail com o OCI Email Delivery
-
Kits de Desenvolvimento de Software e Interface de Linha de Comando
-
Exemplo de chave de API do Python SDK: configuration_example.py
-
Exemplo do controlador de instâncias do Python SDK: instance_principals_examples.py
Confirmação
- Autor - Cody Brinkman (Arquiteto de Nuvem)
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Send Emails using the Oracle Cloud Infrastructure Email Delivery Service HTTP Interface
F96705-02
May 2024