Вы находитесь на странице: 1из 5

Con este cdigo podremos enviar de forma sencilla un correo a una direccin e-mail externa.

Hay que tener configurado el SAPconect para que el envo se haga de forma inmediata.

DATA: BEGIN OF i_text OCCURS 0.


INCLUDE STRUCTURE soli.
DATA: END OF i_text.

DATA: wspoolnumber LIKE sy-spono ,


wmailname LIKE sood1-objnam,
wsubject LIKE sood1-objdes ,
wrecepient(40) TYPE c ,
wdli LIKE soos1-dlinam.

DATA: object_hd_change LIKE sood1 OCCURS 0 WITH HEADER LINE,


objpara LIKE selc OCCURS 0 WITH HEADER LINE,
receivers LIKE soos1 OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF i_receivers OCCURS 0.


INCLUDE STRUCTURE receivers.
DATA: END OF i_receivers.

wsubject = 'Entrega numero....1234567890.'.


wrecepient = 'tu_correo@algo.com'.

object_hd_change-objla = sy-langu.
object_hd_change-objnam = wmailname.
object_hd_change-objdes = wsubject.
object_hd_change-objsns = 'F'.
object_hd_change-vmtyp = 'T'.
object_hd_change-skips = 'X'.
object_hd_change-acnam = 'SP01'.
object_hd_change-objcp = 'X'.

REFRESH i_text.
CLEAR i_text.
i_text-line = 'Texto del mensaje'.
APPEND i_text.
REFRESH i_receivers.
CLEAR i_receivers.
i_receivers-rcdat = sy-datum.
i_receivers-rctim = sy-uzeit.
i_receivers-recextnam = wrecepient.
i_receivers-recesc = 'U'.
i_receivers-sndex = 'X'. " Express-Mail
APPEND i_receivers.

objpara-name = 'SPI'.
objpara-low = wspoolnumber.
APPEND objpara.

CALL FUNCTION 'SO_OBJECT_SEND'


EXPORTING
object_hd_change = object_hd_change
object_type = 'RAW'
owner = sy-uname
TABLES
objcont = i_text
receivers = i_receivers
EXCEPTIONS
active_user_not_exist = 1
communication_failure = 2
component_not_available = 3
folder_not_exist = 4
folder_no_authorization = 5
forwarder_not_exist = 6
note_not_exist = 7
object_not_exist = 8
object_not_sent = 9
object_no_authorization = 10
object_type_not_exist = 11
operation_no_authorization = 12
owner_not_exist = 13
parameter_error = 14
substitute_not_active = 15
substitute_not_defined = 16
system_failure = 17
too_much_receivers = 18
user_not_exist = 19
originator_not_exist = 20
x_error = 21
OTHERS = 22.

IF sy-subrc <> 0.
WRITE: /'Error al enviar el mail'.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
COMMIT WORK.

Fijaros en la lnea donde pone: wrecepient = 'tu_correo@algo.com'. Hay que cambiar la direccin y poner una
vuestra.

Saludos...

Hola,

os dejo otro cdigo que funciona siempre que el usuario tiene en su pc local instalado Outlook, de esta manera
podemos enviar un correo sin tener configurado SAPConnect y adems si trabajamos habitualmente con Outlook
lo tendremos en Elementos Enviados.

Espero que os sirva.

Un saludo.

Report ZMAIL.

DATA: OUTLOOK TYPE OLE2_OBJECT. "Outlook.Application


DATA: ITEM TYPE OLE2_OBJECT. "Outlook.MailItem
DATA: LATTACH TYPE OLE2_OBJECT . "Outlook.Attachement
DATA: SUBJECT(255) TYPE C.

*
*Enviar mail

CREATE OBJECT OUTLOOK 'outlook.application'.

CALL METHOD OF OUTLOOK 'CreateItem' = ITEM


EXPORTING
#1 = '0'.

SET PROPERTY OF ITEM 'To' = 'la direccin de correo a la que queremos enviar'.
* Si queremos rellenar el cuerpo del mensaje
* OPCION 1:
* LOOP AT body_tab INTO wa_bodytab.
* SET PROPERTY OF omail 'Body' = wa_bodytab.
* ENDLOOP.
* OPCION 2:
* SET PROPERTY OF item 'Body' = ''.

SET PROPERTY OF ITEM 'Subject' = 'Asunto del correo'.

CALL METHOD OF ITEM 'Attachments' = 'Ruta al fichero si queremos adjuntar alguno'.

CALL METHOD OF LATTACH 'Add'


EXPORTING
#1 = NOMBRE.

CALL METHOD OF ITEM 'Send'.

FREE OBJECT ITEM.


FREE OBJECT OUTLOOK.
FREE OBJECT LATTACH.
Hola,

os dejo otro cdigo que funciona siempre que el usuario tiene en su pc local instalado Outlook, de esta manera
podemos enviar un correo sin tener configurado SAPConnect y adems si trabajamos habitualmente con Outlook
lo tendremos en Elementos Enviados.

Espero que os sirva.

Un saludo.

Report ZMAIL.

DATA: OUTLOOK TYPE OLE2_OBJECT. "Outlook.Application


DATA: ITEM TYPE OLE2_OBJECT. "Outlook.MailItem
DATA: LATTACH TYPE OLE2_OBJECT . "Outlook.Attachement
DATA: SUBJECT(255) TYPE C.

*
*Enviar mail

CREATE OBJECT OUTLOOK 'outlook.application'.

CALL METHOD OF OUTLOOK 'CreateItem' = ITEM


EXPORTING
#1 = '0'.

SET PROPERTY OF ITEM 'To' = 'la direccin de correo a la que queremos enviar'.

* Si queremos rellenar el cuerpo del mensaje


* OPCION 1:
* LOOP AT body_tab INTO wa_bodytab.
* SET PROPERTY OF omail 'Body' = wa_bodytab.
* ENDLOOP.
* OPCION 2:
* SET PROPERTY OF item 'Body' = ''.

SET PROPERTY OF ITEM 'Subject' = 'Asunto del correo'.

CALL METHOD OF ITEM 'Attachments' = 'Ruta al fichero si queremos adjuntar alguno'.

CALL METHOD OF LATTACH 'Add'


EXPORTING
#1 = NOMBRE.

CALL METHOD OF ITEM 'Send'.

FREE OBJECT ITEM.


FREE OBJECT OUTLOOK.
FREE OBJECT LATTACH.

Вам также может понравиться