Enviar E-mail no Autonomous Database
Há várias opções para enviar e-mail no Autonomous Database. Você também pode enviar mensagens de texto ou a saída de uma consulta SQL para um canal do Slack ou MSTeams.
- Enviar E-mail com Serviço Email Delivery no Autonomous Database
Descreve as etapas para enviar e-mail usandoUTL_SMTP
no Autonomous Database. - enviar e-mail com um provedor de e-mail em um ponto final privado
Descreve as etapas para enviar e-mail com um provedor de e-mail que esteja em um ponto final privado. - Usar Objetos de Credencial para definir a Autenticação SMTP
Descreve como informar objetos de credencial para APIsUTL_SMTP.SET_CREDENTIAL
. - Enviar E-mail do Autonomous Database Usando DBMS_CLOUD_NOTIFICATION
Use o pacoteDBMS_CLOUD_NOTIFICATION
para enviar mensagens e consultar resultados como e-mail.
Tópico principal: Enviar E-mail e Notificações no Autonomous Database
Enviar E-mail com o Serviço Email Delivery Service no Autonomous Database
Descreve as etapas para enviar e-mail usando UTL_SMTP
no Autonomous Database.
Para enviar e-mail com o Serviço Oracle Cloud Infrastructure Email Delivery:
Consulte UTL_SMTP para obter informações sobre UTL_SMTP
.
Consulte Notas do Pacote PL/SQL para o Autonomous Database para saber as restrições UTL_SMTP
com o Autonomous Database.
- SMTP - Enviar Código de Amostra de E-mail
Exibe o código de amostra para enviar e-mail comUTL_SMTP
no Autonomous Database.
Tópico principal: Enviar E-mail no Autonomous Database
Código de amostra SMTP de e-mail de envio
Mostra o código de amostra para enviar e-mail com UTL_SMTP
no Autonomous Database.
CREATE OR REPLACE PROCEDURE SEND_MAIL (
msg_to varchar2,
msg_subject varchar2,
msg_text varchar2 )
IS
mail_conn utl_smtp.connection;
username varchar2(1000):= 'ocid1.user.oc1.username';
passwd varchar2(50):= 'password';
msg_from varchar2(50) := 'adam@example.com';
mailhost VARCHAR2(50) := 'smtp.us-ashburn-1.oraclecloud.com';
BEGIN
mail_conn := UTL_smtp.open_connection(mailhost, 587);
utl_smtp.starttls(mail_conn);
UTL_SMTP.AUTH(mail_conn, username, passwd, schemes => 'PLAIN');
utl_smtp.mail(mail_conn, msg_from);
utl_smtp.rcpt(mail_conn, msg_to);
UTL_smtp.open_data(mail_conn);
UTL_SMTP.write_data(mail_conn, 'Date: ' || TO_CHAR(SYSDATE, 'DD-MON-YYYY HH24:MI:SS') || UTL_TCP.crlf);
UTL_SMTP.write_data(mail_conn, 'To: ' || msg_to || UTL_TCP.crlf);
UTL_SMTP.write_data(mail_conn, 'From: ' || msg_from || UTL_TCP.crlf);
UTL_SMTP.write_data(mail_conn, 'Subject: ' || msg_subject || UTL_TCP.crlf);
UTL_SMTP.write_data(mail_conn, 'Reply-To: ' || msg_to || UTL_TCP.crlf || UTL_TCP.crlf);
UTL_SMTP.write_data(mail_conn, msg_text || UTL_TCP.crlf || UTL_TCP.crlf);
UTL_smtp.close_data(mail_conn);
UTL_smtp.quit(mail_conn);
EXCEPTION
WHEN UTL_smtp.transient_error OR UTL_smtp.permanent_error THEN
UTL_smtp.quit(mail_conn);
dbms_output.put_line(sqlerrm);
WHEN OTHERS THEN
UTL_smtp.quit(mail_conn);
dbms_output.put_line(sqlerrm);
END;
/
Onde:
-
mailhost: Especifica o Ponto Final de Conexão SMTP da Etapa 1 em Enviar E-mail com o Email Delivery Service no Autonomous Database.
-
username: especifica o nome do usuário da credencial SMTP da Etapa 2 em Enviar E-mail com o Serviço Email Delivery no Autonomous Database.
-
passwd: especifica a senha da credencial SMTP da Etapa 2 em Enviar E-mail com o Email Delivery Service no Autonomous Database.
-
msg_from: especifica um dos remetentes aprovados da Etapa 3 em Enviar E-mail com o Serviço Email Delivery no Autonomous Database.
Tópico principal: Enviar E-mail com o Serviço Email Delivery no Autonomous Database
Enviar E-mail com um Provedor de E-mail em um Ponto Final Privado
Descreve as etapas para enviar e-mail com um provedor de e-mail que esteja no Ponto Final Privado.
Para enviar e-mail do Autonomous Database usando um provedor de e-mail em um ponto final privado, o provedor de e-mail deve estar acessível pela VCN do Oracle Cloud Infrastructure (o ponto final privado da instância do Autonomous Database). Por exemplo, você pode acessar um provedor de e-mail quando:
-
A instância do Autonomous Database de origem e o provedor de e-mail estão na mesma VCN do Oracle Cloud Infrastructure.
-
A instância do Autonomous Database de origem e o provedor de e-mail estão em diferentes VCNs do Oracle Cloud Infrastructure pareadas.
-
O provedor de e-mail está em uma rede on-premises conectada à VCN da instância do Autonomous Database de origem do Oracle Cloud Infrastructure usando FastConnect ou VPN.
Para enviar e-mail usando um provedor de e-mail, defina as seguintes regras de entrada e saída:
-
Defina uma regra de saída na lista de segurança de sub-rede ou no grupo de segurança de rede do banco de origem de forma que o tráfego para o host de destino seja permitido na porta 587 ou na porta 25 (dependendo da porta que você está usando).
-
Defina uma regra de entrada na lista de segurança de sub-rede ou no grupo de segurança de rede do host de destino de forma que o tráfego do endereço IP da instância do Autonomous Database de origem para a porta 587 ou 25 seja permitido (dependendo da porta que você está usando).
Para enviar e-mail de um provedor de e-mail no ponto final privado:
Tópico principal: Enviar E-mail no Autonomous Database
Usar Objetos de Credencial para definir a Autenticação SMTP
Descreve como informar objetos de credencial para APIs UTL_SMTP.SET_CREDENTIAL
.
O subprograma SET_CREDENTIAL
envia o comando AUTH para autenticação no servidor SMTP.
O subprograma UTL_SMTP.SET_CREDENTIAL
permite que você informe objetos de credencial para definir a autenticação SMTP. Os objetos de credenciais são objetos de esquema; portanto, eles só podem ser acessados por usuários privilegiados e permitem que você configure privilégios no nível do esquema para controlar as credenciais. A passagem de objetos de credencial é uma maneira apropriada e segura de armazenar e gerenciar nome de usuário/senha/chaves para autenticação.
O subprograma UTL_SMTP.SET_CREDENTIAL
é uma alternativa segura e conveniente ao subprograma UTL_SMTP.AUTH
.
Exemplo
...
UTL_SMTP.AUTH (l_mail_conn, 'ocid1.user.oc1.username', 'xxxxxxxxxxxx', schemes => 'PLAIN');
...
Conforme mostrado no exemplo acima, ao chamar o subprograma AUTH
, você deve informar o nome de usuário/senha em texto não criptografado como parte dos parâmetros formais PL/SQL. Talvez seja necessário incorporar o nome de usuário/senha em vários scripts cron ou de automação PL/SQL. A passagem de senhas de texto não criptografado é um problema de conformidade que é tratado no subprograma UTL_SMTP.SET_CREDENTIAL
.
Consulte Função e Procedimento AUTH para obter mais informações.
Sintaxe UTL_SMTP.SET_CREDENTIAL
PROCEDURE UTL_SMTP.SET_CREDENTIAL (
c IN OUT NOCOPY connection,
credential IN VARCHAR2,
schemes IN VARCHAR2 DEFAULT NON_CLEARTEXT_PASSWORD_SCHEMES
);
FUNCTION UTL_SMTP.SET_CREDENTIAL (
c IN OUT NOCOPY connection,
credential IN VARCHAR2,
schemes IN VARCHAR2 DEFAULT NON_CLEARTEXT_PASSWORD_SCHEMES)
RETURN reply;
Exemplo
-
Crie um objeto de credencial:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => 'HTTP_CRED', username => 'web_app_user', password => '<password>' ); END;
Isso cria um objeto de credencial que cria um par de nome de usuário/senha armazenado.
Consulte CREATE_CREDENTIAL Procedimento para obter mais informações.
Consulte Especificando Credenciais de Job do Scheduler para obter mais informações.
-
Execute o procedimento
UTL_SMTP.SET_CREDENTIAL
:DECLARE l_mail_conn UTL_SMTP.CONNECTION; BEGIN l_mail_conn := UTL_SMTP.OPEN_CONNECTION('smtp.example.com', 587); UTL_SMTP.SET_CREDENTIAL(l_mail_conn, 'SMTP_CRED', SCHEMES => 'PLAIN'); ... END;
Este exemplo envia o comando para autenticação no servidor SMTP. O servidor Web precisa dessas informações para autorizar a solicitação. O valor
l_mail_conn
é a conexão SMTP,SMTP_CRED
é o nome das credenciais ePLAIN
é o esquema de autenticação SMTP.
Consulte UTL_SMTP para obter mais informações.
Consulte Notas do Pacote PL/SQL para o Autonomous Database para obter informações sobre restrições para UTL_SMTP
no Autonomous Database.
Tópico principal: Enviar E-mail no Autonomous Database
Enviar E-mail pelo Autonomous Database Usando DBMS_CLOUD_NOTIFICATION
Use o pacote DBMS_CLOUD_NOTIFICATION
para enviar mensagens e consultar resultados como e-mail.
- Enviar Mensagens como E-mail do Autonomous Database
Você pode usar oDBMS_CLOUD_NOTIFICATION
para enviar mensagens como e-mail. - Enviar Resultados da Consulta como E-mail do Autonomous Database
Você pode usar o pacoteDBMS_CLOUD_NOTIFICATION
para enviar os resultados de uma consulta como e-mail.
Tópico principal: Enviar E-mail no Autonomous Database
Enviar Mensagens como E-mail do Autonomous Database
DBMS_CLOUD_NOTIFICATION
para enviar mensagens como e-mail.
Tópico principal: Enviar E-mail do Autonomous Database Usando DBMS_CLOUD_NOTIFICATION
Enviar Resultados da Consulta como E-mail pelo Autonomous Database
DBMS_CLOUD_NOTIFICATION
para enviar os resultados de uma consulta como e-mail.
Para usar DBMS_CLOUD_NOTIFICATION
para enviar e-mail:
Tópico principal: Enviar E-mail do Autonomous Database Usando DBMS_CLOUD_NOTIFICATION