Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Envio de correo con caracateres especiales

Estas en el tema de Envio de correo con caracateres especiales en el foro de Oracle en Foros del Web. Saludos a todos, Necesito una ayuda, Estoy realizando un procedimiento que envia automaticamente un correo. El rollo lo tengo cuando se envia el correo los ...
  #1 (permalink)  
Antiguo 14/09/2010, 14:10
 
Fecha de Ingreso: marzo-2008
Mensajes: 3
Antigüedad: 16 años
Puntos: 0
Envio de correo con caracateres especiales

Saludos a todos,
Necesito una ayuda,

Estoy realizando un procedimiento que envia automaticamente un correo. El rollo lo tengo cuando se envia el correo los caracteres especiales no se reflejan.. Hablo de las tildes, la letra Ñ entre otros caracateres...

Alguno me podria ayudar si esta dentro de sus posibilidades?

El procedimiento que estoy haciendo es el siguiente:

PROCEDURE generacion_correos_v3 (PEMPRESA VARCHAR2) AS
CURSOR correos IS
SELECT DISTINCT NVL(p.email, '[email protected]') EMAIL,
p.persona PERSONA
FROM gnl_persona_tr_nx p
WHERE p.persona IN (SELECT DISTINCT d.trf_per_persona
FROM bco_datos_transf_tb_nx d
WHERE d.trf_estado = 'P');
CURSOR pagos (pempresa VARCHAR2, ppersona VARCHAR2) IS
SELECT dd.des_numero_documento DOCUMENTO,
dd.des_monto MONTO,
s.sol_per_persona PERSONA,
d.trf_sol_solicitud SOLICITUD
FROM bco_datos_transf_tb_nx d,
bco_detalle_solicitud_tr_nx dd,
bco_solicitud_tr_nx s,
gnl_persona_tr_nx p
WHERE d.trf_per_persona = 25083 ---ppersona
AND p.persona = d.trf_per_persona
AND s.sol_per_persona = p.persona
AND dd.des_sol_solicitud = d.trf_sol_solicitud
AND s.sol_solicitud = dd.des_sol_solicitud
AND d.trf_emp_empresa = '01' ---PEMPRESA ---
AND dd.des_sol_emp_empresa = d.trf_emp_empresa
AND s.sol_emp_empresa = dd.des_sol_emp_empresa
AND d.trf_estado = 'P'
ORDER BY s.sol_per_persona, dd.des_numero_documento;
TYPE det_correo IS RECORD
(documento VARCHAR2(6),
monto NUMBER(15,2));
TYPE detalle IS TABLE OF det_correo
INDEX BY PLS_INTEGER;
v_correo DETALLE;
v_persona VARCHAR2(6);
v_solicitud NUMBER(8);
v_linea PLS_INTEGER := 0;
V_TO VARCHAR2(100);
V_FROM VARCHAR2(100) := '[email protected]';
V_FROMDESC VARCHAR2(40) := 'Departamento de Cuentas por Pagar';
V_SUBJECT VARCHAR2(60) := 'NOTIFICACION DE PAGO ELECTRONICO';
V_TEXT VARCHAR2(20000);
V_HTML VARCHAR2(20000);
V_ERROR VARCHAR2(500);
BEGIN
FOR rec_correos IN correos LOOP
v_to := rec_correos.EMAIL;
v_persona := rec_correos.PERSONA;
v_correo.delete;
IF v_to IS NOT NULL THEN
FOR rec_pagos IN pagos (PEMPRESA, v_persona) LOOP
v_linea := v_linea + 1;
v_correo(v_linea).DOCUMENTO := rec_pagos.DOCUMENTO;
v_correo(v_linea).MONTO := rec_pagos.MONTO;
v_solicitud := rec_pagos.SOLICITUD;
END LOOP;
IF v_linea > 0 THEN
v_html := '<html><head><title>'||V_SUBJECT||'</title></head>'||chr(10)||chr(13)||
'<body><br />Estimado Proveedor:<br /><br />El presente correo es para notificarle que se realiz; el pago electr;nico de la(s) siguiente(s) factura(s):<br /><br />'||chr(10)||chr(13)||
'<ul>'||chr(10)||chr(13);
v_text := 'Estimado Proveedor: '||chr(10)||chr(13)||
'El presente correo es para notificarle que se realizó el pago electrónico de la(s) siguiente(s) factura(s): '||
chr(10)||chr(13)||chr(10);
FOR I IN 1..v_linea LOOP
v_html := v_html||'<li>Factura n;mero <span style="font-weight: bold;">'||TO_CHAR(v_correo(i).DOCUMENTO)||
'</span> por el monto de <span style="font-weight: bold;">'||TO_CHAR(v_correo(i).MONTO)||
'</span></li>'||chr(10)||chr(13)||chr(10);
v_text := v_text||' - Factura número '||TO_CHAR(v_correo(i).DOCUMENTO)||' por el monto de '||TO_CHAR(v_correo(i).MONTO)||CHR(10)||CHR(13);
END LOOP;
v_text := v_text||chr(10)||chr(13)||'Departamento de Cuentas por Pagar'||chr(13)||'C.A. CARS'||chr(13)||'Teléfono: (0212) 400.8345'||chr(13)||'Web: http://www.cars.com.ve/';
v_html := v_html||'</ul><br /><p class="MsoNormal" style="text-align: justify; font-size: 10pt; color: black;" lang="ES-VE">
Departamento de Cuentas por Pagar<br/>
<b>C.A. CARS</b><br/>
Tel;fono: (0212) 400.8345<br/>
Web: <b><a href="http://www.cars.com.ve/" target="_blank">http://www.cars.com.ve/</a></b></p></body></html>';
HTML_EMAIL( '[email protected]',
'[email protected]',
v_from,
v_fromdesc,
v_subject,
v_text,
v_html);
/*html_email(p_to in varchar2,
p_cco in varchar2,
p_from in varchar2,
p_fromdesc in varchar2,
p_subject in varchar2,
p_text in varchar2 default null,
p_html in varchar2 default null)*/
--HTML_EMAIL( vemail, 'cars', V_FROM, V_FROMDESC, V_SUBJECT, V_TEXT, V_HTML);
END IF;
UPDATE bco_datos_transf_tb_nx
SET trf_estado = 'E'
WHERE trf_sol_solicitud = v_solicitud;
END IF;
v_to := NULL;
v_persona := NULL;
v_solicitud := NULL;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
V_ERROR := SQLERRM;
DBMS_OUTPUT.PUT_LINE('EL ERROR ES '||V_ERROR);
END;
/


Gracias de antemano por la ayuda !!!!!
  #2 (permalink)  
Antiguo 29/12/2010, 10:08
 
Fecha de Ingreso: octubre-2010
Mensajes: 2
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Envio de correo con caracateres especiales

Hola, no se si todavía te sirva.
Yo estoy desarrollando un procedimiento para enviar correo también,

Es posible que no te funcionen los caracteres especiales debido a la config de la base de datos y al html (ya que este no reconoce muchos de estos caracteres, y toca usar otros comandos como &accent). ¿ Puedes ver estos caracteres en consultas normales ?

¿Has pensado en usar MIME.?

Si utilizas variables al momento de construir el procedimiento, y cuando lo invoques utilizas los selects, es posible que funcione.

tengo 1 pregunta:
¿ Ese script te funciona, es decir te envia el correo ?
  #3 (permalink)  
Antiguo 29/12/2010, 10:23
 
Fecha de Ingreso: octubre-2004
Mensajes: 251
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Envio de correo con caracateres especiales

puede ser el encode de la db
__________________
www.lomasnuevo.net

Etiquetas: correo, envio, especiales
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:35.