PDA

Ver la Versión Completa : Mandar Mails desde SAP


oieraz
26/08/09, 10:31:53
Buenos días, me han encomendado realizar un report que únicamente envíe un mail con un título y un texto. No he trabajado nunca con mails por lo que agradecería vuestra ayuda. Gracias por adelantado.

Un saludo.

Atlas
26/08/09, 11:00:46
puedes utilizar esta función, pero sin el objbin que no te hace falta:

doc_chng-obj_descr = 'test'.

objtxt = 'Texto adicional.'.
APPEND objtxt.
DESCRIBE TABLE objtxt LINES tab_lines.
READ TABLE objtxt INDEX tab_lines.
doc_chng-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).

objpack-body_start = 1.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_num = tab_lines.
objpack-doc_type = 'RAW'.
objpack-obj_name = 'body'.
objpack-obj_descr = 'Texto'.
objpack-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).
APPEND objpack.

loop at t_all_spool.

*if first = 'X'.
* objpack-body_start = 1.
* clear first.
*else.
objpack-body_start = tab_lines + 1.
*endif.

t_spool[] = t_all_spool-spool[].

append lines of t_spool[] TO objbin[].

* Esta es la lista
DESCRIBE TABLE objbin LINES tab_lines.

* Datos adjuntos
objpack-transf_bin = 'X'.
objpack-head_start = 1.
objpack-head_num = 0.



objpack-body_num = tab_lines.
objpack-doc_type = 'ALI'.
objpack-obj_name = 'Datos adjuntos'.
objpack-obj_descr = 'spool ABAP'.
READ TABLE objbin INDEX tab_lines.
doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objbin ).
objpack-doc_size = doc_size.
APPEND objpack.

endloop.

.
reclist-receiver = 'direccion@gmail.com'.
reclist-rec_type = 'U'.
RECLIST-EXPRESS = 'X'.
RECLIST-REC_DATE = sy-datum.
APPEND reclist.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = doc_chng
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = 'X'
* IMPORTING
* SENT_TO_ALL =
* NEW_OBJECT_ID =
tables
packing_list = objpack
OBJECT_HEADER = objhead
CONTENTS_BIN = objbin
CONTENTS_TXT = objtxt
* CONTENTS_HEX =
* OBJECT_PARA =
* OBJECT_PARB =
receivers = reclist
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
DOCUMENT_TYPE_NOT_EXIST = 3
OPERATION_NO_AUTHORIZATION = 4
PARAMETER_ERROR = 5
X_ERROR = 6
ENQUEUE_ERROR = 7
OTHERS = 8
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

oieraz
26/08/09, 12:21:35
Esto te sirve para enviar mails a SAP o al Outlook? Lo que me interesa es que sean enviado al Outlook.

Gracias



puedes utilizar esta función, pero sin el objbin que no te hace falta:

doc_chng-obj_descr = 'test'.

objtxt = 'Texto adicional.'.
APPEND objtxt.
DESCRIBE TABLE objtxt LINES tab_lines.
READ TABLE objtxt INDEX tab_lines.
doc_chng-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).

objpack-body_start = 1.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_num = tab_lines.
objpack-doc_type = 'RAW'.
objpack-obj_name = 'body'.
objpack-obj_descr = 'Texto'.
objpack-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).
APPEND objpack.

loop at t_all_spool.

*if first = 'X'.
* objpack-body_start = 1.
* clear first.
*else.
objpack-body_start = tab_lines + 1.
*endif.

t_spool[] = t_all_spool-spool[].

append lines of t_spool[] TO objbin[].

* Esta es la lista
DESCRIBE TABLE objbin LINES tab_lines.

* Datos adjuntos
objpack-transf_bin = 'X'.
objpack-head_start = 1.
objpack-head_num = 0.



objpack-body_num = tab_lines.
objpack-doc_type = 'ALI'.
objpack-obj_name = 'Datos adjuntos'.
objpack-obj_descr = 'spool ABAP'.
READ TABLE objbin INDEX tab_lines.
doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objbin ).
objpack-doc_size = doc_size.
APPEND objpack.

endloop.

.
reclist-receiver = 'direccion@gmail.com'.
reclist-rec_type = 'U'.
RECLIST-EXPRESS = 'X'.
RECLIST-REC_DATE = sy-datum.
APPEND reclist.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = doc_chng
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = 'X'
* IMPORTING
* SENT_TO_ALL =
* NEW_OBJECT_ID =
tables
packing_list = objpack
OBJECT_HEADER = objhead
CONTENTS_BIN = objbin
CONTENTS_TXT = objtxt
* CONTENTS_HEX =
* OBJECT_PARA =
* OBJECT_PARB =
receivers = reclist
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
DOCUMENT_TYPE_NOT_EXIST = 3
OPERATION_NO_AUTHORIZATION = 4
PARAMETER_ERROR = 5
X_ERROR = 6
ENQUEUE_ERROR = 7
OTHERS = 8
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

abaper_biz
26/08/09, 14:42:10
Hola, esa funcion envia correo a la direccion que ingreses, sea outlook, u otros....aqui un post similar..

http://www.mundosap.com/foro/showthread.php?t=29537

:D