Páginas

quinta-feira, 3 de outubro de 2013

Oracle – Gerando Email pelo PL/SQL

Olá pessoal do blog!

Hoje a geração de email pelo PL/SQL. vou trabalha com o UTL_SMTP.

vou criar uma procedure de envio de e-mail, chamada EnviaEmail.

CREATE OR REPLACE PROCEDURE “ENVIAEMAIL”
(
recipient                   IN   VARCHAR2, – VARIAVEL QUE RECEBERA O EMAIL DE DESTINO
subject                      IN    VARCHAR2, – ASSUNTO DO EMAIL
message                    IN     VARCHAR2– MESSAGEM DO EMAIL
) IS

crlf                                VARCHAR2(2) := CHR(13) || CHR(10);
email_conexao        utl_smtp.connection;
mailhost                      VARCHAR2(30) := ‘smtp01.seusite.com.br’;
mesg                             VARCHAR2(1000);
sender                         varchar2(1000) := ‘quintiliano_jeh@gmail.com’; – EMAIL DE QUEM ESTÁ ENVIANDO

BEGIN

email_conexao := utl_smtp.open_connection(mailhost,25);

mesg             := ‘Date: ‘||TO_CHAR(SYSDATE,‘dd Mon yy hh24:mi:ss’)||crlf||
                                      ‘From: ‘||sender||”||crlf||
                                     ’Subject: ‘||subject||crlf||
                                     ’To: ‘||recipient;

utl_smtp.helo(email_conexao, mailhost);
utl_smtp.mail(email_conexao, sender);
utl_smtp.rcpt(connection, recipient);
utl_smtp.open_data(email_conexao);
utl_smtp.write_raw_data(email_conexao, utl_raw.cast_to_raw(mesg || crlf));
utl_smtp.write_raw_data(email_conexao, utl_raw.cast_to_raw(crlf || message));
utl_smtp.close_data(email_conexao);
utl_smtp.quit(email_conexao);

EXCEPTION
   WHEN UTL_SMTP.INVALID_OPERATION THEN
dbms_output.put_line(SQLERRM||‘ – OPERAÇÃO INVÁLIDA SMTP.’);
   WHEN UTL_SMTP.TRANSIENT_ERROR THEN
dbms_output.put_line(SQLERRM||‘ – PROBLEMAS COM ENVIO DO EMAIL.’);
   WHEN UTL_SMTP.PERMANENT_ERROR THEN
dbms_output.put_line(SQLERRM||‘ – CÓDIGO INCORRETO NA TRANSAÇÃO DO SMTP.’);
  WHEN  OTHERS   THEN
dbms_output.put_line(SQLERRM||‘ – OUTROS.’);

END;

Nenhum comentário:

Postar um comentário