Developer - Mail desde Developer 2000

 
Vista:

Mail desde Developer 2000

Publicado por Orlando (1 intervención) el 26/05/2005 17:06:16
Alguien puede ayudarme, quiero saber como se envia un correo desde un Form, o enviar un reporte por correo desde un Form, cualquiera de las dos cosas me sirve.. gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Mail desde Developer 2000

Publicado por Juan Carlos (1 intervención) el 23/06/2005 22:39:47
Ya conseguiste? Si no enviame un mail para que te lo envie. Funciona al 100%.

Saludos.
JuanC.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mail desde Developer 2000

Publicado por Wilfrido Cifuentes (3 intervenciones) el 19/10/2005 00:44:18
Juan Carlos si fuera tan amable de enviarme el tip, gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mail desde Developer 2000

Publicado por ULISES (7 intervenciones) el 01/12/2005 02:08:31
MIRA LO PRIMERO QUE TE SUGIERO ES QUE GENERES UN UN ARCHIVO PLANO(TEXTO) Y LUEGO DEBES DE HACER UNA FORMA PARA CAPTURAR LA DIRECCION DEL REMITENTE , LA DEL DESTINATARIO, EL MENSAJE Y EL LUGAR DONDE SE ENCUENTRA TU ARCHIVO . LUEGO COLOCA UN BOTON EN EL CUAL DEBES DE LLAMARAS AL PROCESO QUE ENVIARA EL MAIL(PR_PROCESA;).

LUEGO COPIA ESTOS TRES PROCESOS DENTRO DE FORMS Y AJUSTALOS A TU NECESIDAD.

ESTOS PROCESOS LEEN EL ARCHVIO Y A LA VEZ LO ENVIA, LOS DETALLO MAS ABAJO.

NOTA
(ESTOS PROCESOS LOS ENCONTRE DENTRO DE UNA FORMA LA CUAL ESTA EN INTERNET PERO NO DEJO LA DIRECCION PORQUE NO LA RECUERDO )
**************************************************************************************

PROCEDURE PR_PROCESA IS
BEGIN
:archivo1:='c:\'||TO_CHAR(SYSDATE,'HH24')||TO_CHAR(SYSDATE,'MI')||TO_CHAR(SYSDATE,'SS')||'.txt';
PR_GENERA_PLANO;
PR_ENVIA_CORREO;

Host('C:/Limpia_archivo.BAT.bat', NO_SCREEN );
:archivo1:='';
END;
**************************************************************************************
PROCEDURE PR_GENERA_PLANO IS
detalle TEXT_IO.FILE_TYPE;
linead VARCHAR2(3000);
v_cod_prod NUMBER(6);
v_desc_prod VARCHAR2(30);
v_genera_encabezado VARCHAR2(2):='SI';
conteo NUMBER:=0;

CURSOR productos IS SELECT PRODID,DESCRIP FROM PRODUCT;

BEGIN

detalle := TEXT_IO.FOPEN(:archivo1, 'w');
-- **********************************************************************
-- ARCHIVO PLANO SEPARADO POR TABULADORES
-- **********************************************************************
:nro_reg:='...generando archivo...';
synchronize;

OPEN productos;
LOOP
FETCH productos INTO v_cod_prod,v_desc_prod;
EXIT WHEN productos%NOTFOUND;

IF v_genera_encabezado='SI' THEN
linead:='"codigo"'||CHR(09)||'"descripcion"';
v_genera_encabezado:='NO'; -- Indica si genera encabezado.
ELSE
conteo:=conteo+1;
linead:='"'||v_cod_prod||'"'||
CHR(09)||'"'||
v_desc_prod||'"'||
CHR(09);
END IF;
TEXT_IO.PUT_LINE(detalle,linead);
:nro_reg:=conteo;
synchronize;
END LOOP;
CLOSE productos;

:DATOS.ULTIMO_ENVIO:=SYSDATE;
TEXT_IO.FCLOSE(detalle);
END;
**************************************************************************************

PROCEDURE pr_envia_correo IS
--
-- Como enviar correos electrónicos con multiples archivos atachados usando Outlook ?

/*Declaración de Variables Objeto Outlook*/
application ole2.OBJ_TYPE;
hMailItem ole2.OBJ_TYPE;
hRecipients ole2.OBJ_TYPE;
recipient ole2.OBJ_TYPE;
/*Declaración de la Lista de Argumentos*/
args OLE2.LIST_TYPE;
msg_attch OLE2.OBJ_TYPE;
attachment OLE2.OBJ_TYPE;
des VARCHAR2(80) := 'FILE_NAME';
attch VARCHAR2(80) := :DATOS.ARCHIVO1;
BEGIN
/*Creación del Application Instance*/
application := ole2.create_obj('Outlook.Application');
args := ole2.create_arglist;
ole2.add_arg(args,0);
hMailItem := ole2.invoke_obj(application,'CreateItem',args);
ole2.destroy_arglist(args);
msg_attch := OLE2.GET_OBJ_PROPERTY(hMailItem,'Attachments');

/* Atachar el primer archivo */
args := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(args,attch);
attachment := OLE2.INVOKE_OBJ(msg_attch,'Add',args);
ole2.destroy_arglist(args);
OLE2.SET_PROPERTY(attachment,'name',des);
OLE2.SET_PROPERTY(attachment,'position',1);
OLE2.SET_PROPERTY(attachment,'type',1);
OLE2.SET_PROPERTY(attachment,'source',Attch);
args := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(args,Attch);
OLE2.INVOKE(attachment,'ReadFromFile',args);
OLE2.DESTROY_ARGLIST(args);

/*Captura la propiedad Recipients del objeto hMailItem: Retorna una colección de recipiente que representa todos los recipientes para el Item Outlook*/
args := ole2.create_arglist;
hRecipients := ole2.get_obj_property(hMailItem,'Recipients',args);
ole2.destroy_arglist(args);

/*PARA LA PRIMERA DIRECCION ELECTRONICA*/
/*Usa el método Add para crear una instancia de los recipientes y adiciona en este la colección de recipientes*/
args:=ole2.create_arglist;
ole2.add_arg(args,:DATOS.DESTINO_ENVIO_PPAL); -- Dirección Electrónica
recipient := ole2.invoke_obj(hRecipients,'Add',args);

/*Adiciona a la propiedad TYPE de la instancia del recipiente el valor que se necesita (0=Originator,1=To,2=CC,3=BCC)*/
ole2.set_property(recipient,'Type',1);
ole2.destroy_arglist(args);

/*PARA LA SEGUNDA DIRECCION ELECTRONICA*/
IF :DATOS.DESTINO_ENVIO_COPIA IS NOT NULL THEN -- Solo lo hace si tiene Dirección Electrónica a Donde Enviar
/*Usa el método Add para crear una instancia de los recipientes y adiciona en este la colección de recipientes*/
args:=ole2.create_arglist;
ole2.add_arg(args,:DATOS.DESTINO_ENVIO_COPIA); -- Dirección Electrónica
recipient := ole2.invoke_obj(hRecipients,'Add',args);

/*Adiciona a la propiedad TYPE de la instancia del recipiente el valor que se necesita (0=Originator,1=To,2=CC,3=BCC)*/
ole2.set_property(recipient,'Type',2);
ole2.destroy_arglist(args);
END IF;

/*Resolución de la colección de recipientes*/
args := ole2.create_arglist;
ole2.invoke(hRecipients,'ResolveAll',args);

/*Asigna las propiedades Subject y Body*/
ole2.set_property(hMailItem,'Subject','Prueba de mensaje FORMS6i - CURSORES - PLANO - TIMER');
ole2.set_property(hMailItem,'Body',:DATOS.MENSAJE);

/*Graba el correo electrónico*/
ole2.invoke(hMailItem,'Save',args);
ole2.destroy_arglist(args);

/*Envia el correo electrónico*/
args := ole2.create_arglist;
ole2.invoke(hMailItem,'Send',args);
ole2.destroy_arglist(args);

/*Libera todas las instancias usadas*/
release_obj(application);
release_obj(hRecipients);
release_obj(recipient);
release_obj(hMailItem);
END;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mail desde Developer 2000

Publicado por Arturo ROdriguez (2 intervenciones) el 15/03/2007 23:23:08
Excelente, muchas gracias, me ayudo millon!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mail desde Developer 2000

Publicado por tomas (1 intervención) el 02/07/2008 12:33:36
Y desde forms 9? no me chuta lo de OLE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mail desde Developer 2000

Publicado por Jorge Gomez (1 intervención) el 18/07/2008 17:12:52
Este proceso me ayuda bastante.
Tengo un inconveniente.
Tengo un proceso algo similar que uso con outlook 2000 y que trae el profile del outlook que este activo en ese momento.
Con este proceso nuevo, hay que setear el profile que vas a usar, cosa que no se hacia con el otro proceso.
Si fuera una aplicacion que yo usara no hay problema, pero son usuarios la que va a utilizar la aplicacion.
En una pequeña demo de la aplicacion hay que hacer muchos pasos que el usuario de repente no lo haga completo y esto proboque que no se puedan enviar correo.
Lo del profile es que el mensaje que se envie con una cuenta xxxx a sus destinatario y sy no hago los pasos se va con la cuenta que este activa en ese momento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mail desde Developer 2000

Publicado por ELMER (1 intervención) el 22/01/2013 19:10:33
Una pregunta en relacion a tu aporte de enviar correos, es simplemente estos codigo o hay que adicionar algo mas en los programas unit, como declaraciones o algo parecido.
gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar