5 de janeiro de 2024

Enviando Emails com APEX_MAIL no ATP



Neste post vamos configurar o Oracle Cloud para suportar nossas instâncias, bancos de dados e o Oracle APEX para envio de e-mails.

A primeira coisa que você precisa fazer é criar uma credencial SMTP para seu usuário. Você faz isso fazendo login em sua conta do Oracle Cloud, vá para Identity > Users e selecione seu usuário:



Clique em Credenciais SMTP no menu à esquerda:


Clique no botão Generate SMTP Credentials e dê um nome a ele:


Na próxima tela, você verá o NOME DE USUÁRIO e a SENHA. Anote isso , pois você não verá mais depois:


Você voltará para a tela de visão geral, mas, novamente, até onde posso ver, não há como obter a senha novamente; portanto, se você a perder, precisará configurá-la novamente:


Agora vamos deixar o Oracle APEX saber sobre esses parâmetros. Faça login como ADMIN por meio do SQL Developer, por exemplo (consulte esta postagem no blog  sobre como fazer isso) e execute a seguinte instrução: 

BEGIN
  APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_HOST_ADDRESS', 'smtp.us-ashburn-1.oraclecloud.com');
  APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_USERNAME', 'ocid1.user.oc1..xxxxxxxxxxx@ocid1.tenancy.oc1..xxxxxx');
  APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_PASSWORD', 'Fxxxx');
  COMPROMETER-SE;
END;


Aqui está uma captura de tela durante a execução:


Faça login no Oracle APEX, vá para SQL Workshop e tente enviar e-mails:


Ele diz que a instrução foi processada, mas quando você consultar o APEX_MAIL_QUEUE , verá que ainda está preso com um erro ORA-29278: SMTP transient error: 471 Authorization failed:


Há mais uma etapa que você precisa executar, especifique os endereços de e-mail dos quais deseja permitir o envio de e-mails. Acesse o Painel de Conta do Oracle Cloud para Email Delivery , clique em Email Approved Senders e clique no botão Create Approved Sender




Adicione o endereço de e-mail do qual deseja enviar e-mails e clique no botão Criar remetente aprovado :



Na visão geral, você verá todos os endereços de e-mail permitidos:


Quando tentamos enviar novamente e verificamos o APEX_MAIL_LOG , vemos que os e-mails foram efetivamente enviados:

É isso, agora você pode enviar e-mails de seus aplicativos APEX.

---

Fonte: Blog Dimitri Gielis


Nenhum comentário:

Postar um comentário