Envio de email com erros de acentuação

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
aline_plr
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 92
Registrado em: Qui, 27 Ago 2009 9:13 am
Localização: Rio Preto

Pessoal em uma triger fiz uma função para enviar email, mas ao receber o email no outlook as palavras acentuadas estão erradas e o o mês que extraiu de um select aparece em inglês. Como posso fazer para resolver esse problema, pelo que eu já li parece que tem que alterar um tal de send_header, mas tb não sei como faço isso. Alguém pode me ajudar ?

Minha função:

Selecionar tudo

sender VARCHAR2(80);
recipient VARCHAR2(80);
subject VARCHAR2(300);
message VARCHAR2(5000);
mailhost VARCHAR2(30);
crlf VARCHAR2( 2 ):= CHR( 13 ) || CHR( 10 );
mesg VARCHAR2( 1000 );
cursor c1 is select des_login  from sgi.cad_entidade
where id_cad_entidade in
(select id_cad_entidade from ofn_colaborador_email where id_cad_emp_gerencial = :new.ID_CAD_EMP_GERENCIAL);
mail_conn utl_smtp.connection;

begin
if (:new.FLG_TRAVA = 'S' and :new.FLG_EMAIL = 'S' and :new.FLG_OPCAO_ENVIO = 'Trava Real') then   
   for reg in c1 loop
       if (reg.des_login is not null) then
              select sgi.pck_sgi_ldap.f_retorna_email(reg.des_login) into recipient from dual;
              if (recipient is not null) then
                 mailhost:='smtp.icec.com.br';
                 mail_conn := utl_smtp.open_connection(mailhost, 25);
                 sender:='danilo.marchi@orgicec.com.br';              
                 subject:='Trava de Real';
                 message:='teste1';
                 mesg:= 'Date: ' || TO_CHAR(to_date(:new.mês_ANO, 'dd/mm/rrrr'), 'Mon/rrrr') || ' ' || to_char(SYSDATE, 'hh24:mi:ss') || crlf ||
                 'From: <'||sender||'>' || crlf ||
                 'Subject: '||subject || crlf ||
                 'To: '||recipient || crlf ||
                 'O ralizado do mês de ' || to_char(:new.mês_ANO, 'Month') || ' de ' || to_char(:new.mês_ANO, 'rrrr') || ' já está finalizado.' || crlf ||
                 ' '||crlf|| crlf||
                 '' || :new.mensagem ||
                 ' '||crlf|| crlf||
                 'Caso tenham alguma dúvida, por favor, entrem em contado.'||crlf||
                 'Obrigado .'||crlf||
                 ' ' ||crlf|| crlf|| 
                 'Danilo Marchi'||crlf||
                 'Controladoria Financeira Corporativo'||crlf||
                 'Tel. (17) 2136-9944'||crlf||
                 'Cel. (17) 9745-7651'||crlf||
                 'Visite nosso site: www.icec.com.br'||crlf||
                 ' '||crlf||message;
                 utl_smtp.helo(mail_conn, mailhost);
                 utl_smtp.mail(mail_conn, sender);
                 utl_smtp.rcpt(mail_conn, recipient);
                 utl_smtp.data(mail_conn, mesg);
                 utl_smtp.quit(mail_conn);
                 utl_smtp.write_raw_data

              end if;   
       end if;
   end loop;
end if;
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

tenta usar isso

Selecionar tudo

utl_smtp.write_data(connection , 'Content-Type: text/plain; charset=iso-8859-1');
aline_plr
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 92
Registrado em: Qui, 27 Ago 2009 9:13 am
Localização: Rio Preto

não deu certo, da erro:

Selecionar tudo

ORA-29227 - operação SMTP inválida
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

você tem q setar seu charset.. isso e certeza
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

a sua mesma dúvida aqui
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

e aqui tambem
aline_plr
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 92
Registrado em: Qui, 27 Ago 2009 9:13 am
Localização: Rio Preto

o problema da acentuação eu resolvi, mas ainda esta trazendo mês em inglês. EX quando escrevo na mensagem do email o mês retornado pelo select ele aparece em inglês no outlook.

select to_char(sysdate, 'Month')
from dual;
JOPA
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 58
Registrado em: Sex, 30 Out 2009 9:52 am
Localização: Salvador - BA
Contato:
Atenciosamente,

João Paulo A. C. do Bomfim

"Deu certo? Deixa! Funcionou? Não mexa!"

Veja com o DBA caso não seja.

Selecionar tudo

ALTER SESSION SET NSL_LANGUAGE = "BRAZILIAN PORTUGUESE";
JOPA
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 58
Registrado em: Sex, 30 Out 2009 9:52 am
Localização: Salvador - BA
Contato:
Atenciosamente,

João Paulo A. C. do Bomfim

"Deu certo? Deixa! Funcionou? Não mexa!"

Erro de digitação do código:

Selecionar tudo

ALTER SESSION SET NLS_LANGUAGE = "BRAZILIAN PORTUGUESE";
Agora está certo!!!
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

Tenta isso:

Selecionar tudo

UTL_SMTP.WRITE_RAW_DATA( connection, UTL_RAW.CAST_TO_RAW('Content-Type: text/html; charset=iso-8859-1'||utl_tcp.CRLF));
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Curioso que deu erro no Oracle 10g aqui no servidor no trabalho, quando tentei colocar brazilian portuguese no dbms_session... mas no alter session funciona. Aí segue a gambiarra abaixo.

Selecionar tudo

BEGIN
DBMS_SESSION.SET_NLS ('NLS_LANGUAGE', 'PORTUGUESE');
DBMS_SESSION.SET_NLS ('NLS_TERRITORY', 'BRAZIL');
END; 
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes