ABAP program to send a report to an external mail-id

This source code is an ABAP Program o send a report to an external mail-id

REPORT ZREPORT_TO_EMAIL NO STANDARD PAGE HEADING LINE-SIZE 200.

DATA : BEGIN OF ITAB
OCCURS 0,
PERNR LIKE PA0001-PERNR,
ENAME LIKE PA0001-ENAME,
END OF ITAB.

DATA: message_content LIKE soli OCCURS 10 WITH HEADER LINE,
receiver_list LIKE soos1 OCCURS 5 WITH HEADER LINE,
packing_list LIKE
soxpl OCCURS 2 WITH HEADER LINE,
listobject LIKE abaplist OCCURS 10,
compressed_attachment LIKE soli
OCCURS 100 WITH HEADER LINE,
w_object_hd_change LIKE sood1,
compressed_size LIKE sy-index.

START-OF-SELECTION.

SELECT PERNR ENAME
INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM PA0001
WHERE PERNR < 50.

LOOP AT ITAB.
WRITE :/02 SY-VLINE , ITAB-PERNR, 15 SY-VLINE , ITAB-ENAME, 50
SY-VLINE.
ENDLOOP.
 

* Receivers
receiver_list-recextnam = ‘EXTERNAL-MAIL-ID@YAHOO.COM‘.
“–>
* EMAIL ADDRESS
RECEIVER_list-RECESC = ‘E’. “<-
RECEIVER_list-SNDART = ‘INT’.”<-
RECEIVER_list-SNDPRI = ‘1’.”<-

APPEND receiver_list.

* General data
w_object_hd_change-objla = sy-langu.
w_object_hd_change-objnam = ‘Object name’.
w_object_hd_change-objsns = ‘P’.
* Mail subject
w_object_hd_change-objdes = ‘Message subject’.

* Mail body
APPEND ‘Message content’ TO message_content.

* Attachment
CALL FUNCTION ‘SAVE_LIST’
EXPORTING
list_index = ‘0’
TABLES
listobject = listobject.
CALL FUNCTION ‘TABLE_COMPRESS’
IMPORTING
compressed_size = compressed_size
TABLES
in = listobject
out
= compressed_attachment.
DESCRIBE TABLE compressed_attachment.
CLEAR packing_list.
packing_list-transf_bin = ‘X’.
packing_list-head_start = 0.
packing_list-head_num = 0.
packing_list-body_start = 1.
packing_list-body_num = sy-tfill.
packing_list-objtp = ‘ALI’.
packing_list-objnam = ‘Object name’.
packing_list-objdes = ‘Attachment description’.
packing_list-objlen = compressed_size.
APPEND packing_list.

CALL FUNCTION ‘SO_OBJECT_SEND’
EXPORTING
object_hd_change = w_object_hd_change
object_type = ‘RAW’
owner =
sy-uname

TABLES
objcont = message_content
receivers = receiver_list
packing_list = packing_list
att_cont = compressed_attachment.