You are on page 1of 2

Forms 6: Enviar correo con adjunto a través

de Outlook
Mayo 7, 2009

Con este código nos permite añadir un mensaje en la bandeja de salida y luego enviarlo
o mostrar el mensaje para ser enviado luego por el usuario.

DECLARE
v_outlookapp ole2.obj_type;
v_namespace ole2.obj_type;
v_mailitem ole2.obj_type;
v_oleparam ole2.list_type;
v_attachments ole2.obj_type;
BEGIN
v_outlookapp := ole2.create_obj(‘Outlook.Application’);
v_oleparam := ole2.create_arglist;
ole2.add_arg(v_oleparam, ‘MAPI’);
v_namespace := ole2.invoke_obj(v_outlookapp,
‘GetNameSpace’, v_oleparam);
ole2.destroy_arglist(v_oleparam);
v_oleparam := ole2.create_arglist;
ole2.add_arg(v_oleparam, 0);
v_mailitem := ole2.invoke_obj(v_outlookapp, ‘CreateItem’,
v_oleparam);
ole2.destroy_arglist(v_oleparam);
ole2.set_property(v_mailitem, ‘To’, ‘xxxx@xxxmail.com’);
ole2.set_property(v_mailitem, ‘Subject’, ‘Asunto’);
ole2.set_property(v_mailitem, ‘Body’, ‘Texto del mensaje’);

– Añadimos el adjunto
v_attachments := ole2.get_obj_property(v_mailitem,
‘Attachments’);
v_oleparam := ole2.create_arglist;
ole2.add_arg(v_oleparam, ‘C:\Temp\prueba.pdf’);
ole2.invoke(v_attachments, ‘add’, v_oleparam);
ole2.destroy_arglist(v_oleparam);

– Con esta línea invocamos el envío, si queremos


— simplemente abrir el Outlook para que pueda revisar
— el correo cambiamos ‘Send’ por ‘Display’
ole2.invoke(v_mailitem, ‘Send’);

ole2.RELEASE_OBJ(v_mailitem);
ole2.RELEASE_OBJ(v_namespace);
ole2.RELEASE_OBJ(v_outlookapp);
END;

Sin adjunto sería parecido pero con menos código, ahí va el ejemplo:
DECLARE
v_outlookapp ole2.obj_type;
v_namespace ole2.obj_type;
v_mailitem ole2.obj_type;
v_oleparam ole2.list_type;
BEGIN
v_outlookapp := ole2.create_obj(‘Outlook.Application’);
v_oleparam := ole2.create_arglist;
ole2.add_arg(v_oleparam, ‘MAPI’);
v_namespace := ole2.invoke_obj(v_outlookapp,
‘GetNameSpace’, v_oleparam);
ole2.destroy_arglist(v_oleparam);
v_oleparam := ole2.create_arglist;
ole2.add_arg(v_oleparam, 0);
v_mailitem := ole2.invoke_obj(v_outlookapp, ‘CreateItem’,
v_oleparam);
ole2.destroy_arglist(v_oleparam);
ole2.set_property(v_mailitem, ‘To’, ‘xxxx@xxxmail.com‘);
ole2.set_property(v_mailitem, ‘Subject’, ‘Asunto’);
ole2.set_property(v_mailitem, ‘Body’, ‘Texto del mensaje
sin adjunto’);

– Con esta línea invocamos el envío, si queremos


— simplemente abrir el Outlook para que pueda revisar
— el correo cambiamos ‘Send’ por ‘Display’
ole2.invoke(v_mailitem, ‘Send’);

ole2.RELEASE_OBJ(v_mailitem);
ole2.RELEASE_OBJ(v_namespace);
ole2.RELEASE_OBJ(v_outlookapp);
END;

You might also like