Olá, estou tendo um problema em colocar acentuação e cedilha em uma mensagem de email enviada por uma procedure, segue:
Procedure que verifica o BD e monta a mensagem:
PROCEDURE ALTERAR_PRAZO
IS
v_mensagem varchar2(400);
v_mensagem2 varchar2(400);
v_informativo long;
v_mail_gestor varchar2(100);
v_nome varchar2(100);
v_ssi varchar2(100);
crlf VARCHAR2 (2) := CHR (13) || CHR (10);
BEGIN
FOR I IN (
SELECT *
FROM requisicao req, usuario usu
WHERE TO_DATE(req.req_dt_prev_fim, 'dd/MM/yyyy') < TO_DATE (SYSDATE, 'dd/MM/yyyy')
AND req.sta_id in (2)
AND req.usu_id_responsavel = usu.usu_id
)
LOOP
update requisicao req set req.req_prazo = 0
where req.req_id = i.req_id;
FOR X IN (
select conf.conf_valor AS email_gestor
from configuracao conf
where conf.conf_nome = 'EmailCoordenador'
and conf.conf_id = 3
)
LOOP
v_mail_gestor := x.email_gestor;
v_mensagem := 'O sistema informa que a Requisição '||i.req_id ||'/'||to_char(i.req_dt_cadastro,'YYYY') ||' está atrasada quanto ao prazo previsto para finalização.';
SEND_EMAIL ('<sistema>', '<'||v_mail_gestor||'>','Registro de Requisição de Serviço.',v_mensagem);
END LOOP;
END LOOP;
commit;
exception
when no_data_found then rollback;
END ALTERAR_PRAZO;
E esta é a procedure de enviar email:
PROCEDURE SEND_EMAIL
(
sender IN VARCHAR2,
lider_gestor IN VARCHAR2,
subject IN VARCHAR2,
message IN VARCHAR2
)
IS
mailhost VARCHAR2(30) := 'mail.empresa.br'; -- > NOME OU IP DO SERVIDOR DE SMTP
mail_conn utl_smtp.connection;
crlfs VARCHAR2( 2 ):= CHR( 13 ) || CHR( 10 );
mesg nVARCHAR2( 4000 );
vReply utl_smtp.reply;
result number;
BEGIN
mail_conn := utl_smtp.open_connection(mailhost, 25);
mesg:=-- 'Date: ' || TO_CHAR( SYSDATE, 'dd Mon yy hh24:mi:ss' ) || crlfs ||
'From: ' ||sender || crlfs ||
'Subject: '||subject || crlfs ||
'To: '||lider_gestor || crlfs ||
message;
vReply := utl_smtp.vrfy(mail_conn,lider_gestor);
result := vReply.Code;
if vReply.Code in (250,251,252,253) then
utl_smtp.helo(mail_conn, mailhost);
utl_smtp.mail(mail_conn, sender);
utl_smtp.rcpt(mail_conn, lider_gestor);
utl_smtp.data(mail_conn, mesg);
utl_smtp.noop(mail_conn); --quit(mail_conn);
-- utl_smtp.open_data(mail_conn);
--UTL_SMTP.WRITE_RAW_DATA(mail_conn, UTL_RAW.CAST_TO_RAW('Content-Type: text/html; charset=iso-8859-1'||utl_tcp.CRLF));
--utl_smtp.write_raw_data(mail_conn, utl_raw.cast_to_raw(mesg));
-- utl_smtp.close_data(mail_conn);
utl_smtp.rset(mail_conn);
utl_smtp.quit(mail_conn);
else
utl_smtp.rset(mail_conn);
utl_smtp.quit(mail_conn);
end if;
Exception
WHEN OTHERS THEN
raise_application_error(-20002,'E-MAIL NAO ENVIADO.'||SQLERRM);
END SEND_EMAIL;
Ps.: As partes comentadas eu coloquei para tentar ajeitar a acentuação, mas não funcionou.
Alguem pode me ajudar? As procedures estão enviando os email normalmente é so a acentuação que realmente não ta funcionando.