0% found this document useful (0 votes)
74 views6 pages

Code - For - Send Email in Sap Abap

This document provides a detailed ABAP report for sending emails using the CL_BCS class in SAP. It includes the setup for email parameters, message body, and attachments, as well as error handling for various operations. The report allows users to specify material types, email addresses, and subjects while sending emails immediately or scheduling them.

Uploaded by

dhanu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
74 views6 pages

Code - For - Send Email in Sap Abap

This document provides a detailed ABAP report for sending emails using the CL_BCS class in SAP. It includes the setup for email parameters, message body, and attachments, as well as error handling for various operations. The report allows users to specify material types, email addresses, and subjects while sending emails immediately or scheduling them.

Uploaded by

dhanu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

HOW TO SEND EMAIL IN SAP ABAP OR OOPS ABAP

REPORT ZSEND_EMAIL.

*DATA: LV_VALUE

*PREPARE MAIL OBJECT

DATA: LO_SEND_REQUEST TYPE REF TO CL_BCS. "VALUE IS INITIAL.

CLASS CL_BCS DEFINITION LOAD.

DATA: LO_DOCUMENT TYPE REF TO CL_DOCUMENT_BCS . "VALUE IS INITIAL. "DOCUMENT

OBJECT

DATA : IT_TEXT TYPE BCSY_TEXT. "TABLE FOR BODY

DATA : WA_TEXT LIKE LINE OF IT_TEXT. "WORK AREA FOR MESSAGE BODY

DATA: LO_SENDER TYPE REF TO IF_SENDER_BCS. "VALUE IS INITIAL. "SENDER

DATA: LO_RECIPIENT TYPE REF TO IF_RECIPIENT_BCS." VALUE IS INITIAL.

"RECIPIENT

**SELECTION SCREEN

PARAMETERS P_MTART TYPE MARA-MTART. "MATERIAL TYPE INPUT

PARAMETERS : P_EMAIL TYPE ADR6-SMTP_ADDR. "EMAIL INPUT

PARAMETERS: P_SUB TYPE CHAR50. "EMAIL SUBJECT

PARAMETERS : P_SEND AS CHECKBOX. "SEND IMMEDIATELY FLAG

***ATTACHMENT DATA

DATA : IT_MARA TYPE TABLE OF MARA,

WA_MARA TYPE MARA.

DATA : LV_STRING TYPE STRING,

LV_DATA_STRING TYPE STRING,

LV_XSTRING TYPE XSTRING.

DATA: LIT_BINARY_CONTENT TYPE SOLIX_TAB,

L_ATTSUBJECT TYPE SOOD-OBJDES.


START-OF-SELECTION.

"CREATE OBJECT FOR SENDING EMAIL

LO_SEND_REQUEST = CL_BCS=>CREATE_PERSISTENT( ).

*****************************START OF

BOCY***************************************************

* MESSAGE BODY

*1ST STEP - SETTING UP THE BODY

* WA_TEXT-LINE = 'HI STUDENTS,'.

* APPEND WA_TEXT TO IT_TEXT.

* WA_TEXT-LINE = 'THIS IS THE INNER CIRCLE CALL AND TRY TO LEARN HOW WE CAN

SEND THE EMAIL WITH ATTACHMENT'.

* APPEND WA_TEXT TO IT_TEXT.

* CLEAR WA_TEXT.

* WA_TEXT-LINE = 'BEST REGARDS, PANKAJ KUMAR'.

* APPEND WA_TEXT TO IT_TEXT.

* CLEAR WA_TEXT.

"MESSAGE BODY

WA_TEXT-LINE = '<HTML><BODY>'.

APPEND WA_TEXT TO IT_TEXT.

WA_TEXT-LINE = 'DEAR RECEPIENT,'.

APPEND WA_TEXT TO IT_TEXT.

WA_TEXT-LINE = '<BR></BR>'.

APPEND WA_TEXT TO IT_TEXT.

WA_TEXT-LINE = 'PLEASE FIND THE FLIGHT DETAILS AS REQUESTED IN THE

ATTACHMENT.'.

APPEND WA_TEXT TO IT_TEXT.

WA_TEXT-LINE = '<BR></BR>'.

APPEND WA_TEXT TO IT_TEXT.


WA_TEXT-LINE = 'THANKS & REGARDS , SENDER'.

APPEND WA_TEXT TO IT_TEXT.

WA_TEXT-LINE = '</BODY></HTML>'.

APPEND WA_TEXT TO IT_TEXT.

CLEAR WA_TEXT.

*************************END OF

BODY*******************************************************

LO_DOCUMENT = CL_DOCUMENT_BCS=>CREATE_DOCUMENT(

EXPORTING "CREATE DOCUMENT

I_TYPE = 'HTM' "TYPE OF DOCUMENT HTM, TXT ETC

I_TEXT = IT_TEXT "EMAIL BODY INTERNAL TABLE

I_SUBJECT = P_SUB ). "EMAIL SUBJECT HERE P_SUB INPUT PARAMETER

* PASS THE DOCUMENT TO SEND REQUEST

LO_SEND_REQUEST->SET_DOCUMENT( LO_DOCUMENT ).

***SET ATTACHMENT

SELECT * FROM MARA INTO TABLE IT_MARA UP TO 100 ROWS

WHERE MTART = P_MTART.

LOOP AT IT_MARA INTO WA_MARA.

CONCATENATE WA_MARA-MATNR WA_MARA-MTART WA_MARA-MEINS WA_MARA-MBRSH WA_MARA-

MATKL INTO LV_STRING SEPARATED BY

CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.

CONCATENATE LV_DATA_STRING

LV_STRING INTO LV_DATA_STRING SEPARATED BY CL_ABAP_CHAR_UTILITIES=>NEWLINE.

ENDLOOP.

***CONVERT STRING TO XSTRING

CALL FUNCTION 'HR_KR_STRING_TO_XSTRING'

EXPORTING
* CODEPAGE_TO = '8300'

UNICODE_STRING = LV_DATA_STRING

* OUT_LEN =

IMPORTING

XSTRING_STREAM = LV_XSTRING

EXCEPTIONS

INVALID_CODEPAGE = 1

INVALID_STRING = 2

OTHERS = 3.

IF SY-SUBRC <> 0.

IF SY-SUBRC = 1 .

ELSEIF SY-SUBRC = 2 .

WRITE:/ 'INVALID STRING ' .

ENDIF.

ENDIF.

***XSTRING TO BINARY

CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'

EXPORTING

BUFFER = LV_XSTRING

TABLES

BINARY_TAB = LIT_BINARY_CONTENT.

**ADD ATTACHMENT

CLEAR L_ATTSUBJECT .

CONCATENATE 'INNERCIRCLE_EXCEL' SY-DATUM INTO L_ATTSUBJECT.

* CREATE ATTACHMENT

TRY.

LO_DOCUMENT->ADD_ATTACHMENT( EXPORTING

I_ATTACHMENT_TYPE = 'XLS'

I_ATTACHMENT_SUBJECT = L_ATTSUBJECT
I_ATT_CONTENT_HEX = LIT_BINARY_CONTENT ).

CATCH CX_DOCUMENT_BCS INTO DATA(LX_DOCUMENT_BCS).

ENDTRY.

TRY.

LO_SENDER = CL_SAPUSER_BCS=>CREATE( SY-UNAME ). "SENDER IS THE LOGGED IN USER

* SET SENDER TO SEND REQUEST

LO_SEND_REQUEST->SET_SENDER(

EXPORTING

I_SENDER = LO_SENDER ).

* CATCH CX_ADDRESS_BCS.

****CATCH EXCEPTION HERE

ENDTRY.

**SET RECIPIENT

LO_RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS( P_EMAIL ). "HERE

RECIPIENT IS EMAIL INPUT P_EMAIL

TRY.

LO_SEND_REQUEST->ADD_RECIPIENT(

EXPORTING

I_RECIPIENT = LO_RECIPIENT

I_EXPRESS = 'X' ).

* CATCH CX_SEND_REQ_BCS INTO BCS_EXCEPTION .

**CATCH EXCEPTION HERE

ENDTRY.

"SCHEDUEL WHEN YOU WANT SEND THE EMAIL

TRY.

CALL METHOD LO_SEND_REQUEST->SET_SEND_IMMEDIATELY

EXPORTING

I_SEND_IMMEDIATELY = P_SEND. "HERE SELECTION SCREEN INPUT P_SEND

* CATCH CX_SEND_REQ_BCS INTO BCS_EXCEPTION .


**CATCH EXCEPTION HERE

ENDTRY.

TRY.

** SEND EMAIL

LO_SEND_REQUEST->SEND(

EXPORTING

I_WITH_ERROR_SCREEN = 'X' ).

COMMIT WORK.

IF SY-SUBRC = 0. "MAIL SENT SUCCESSFULLY

WRITE :/ 'MAIL SENT SUCCESSFULLY'.

ENDIF.

* CATCH CX_SEND_REQ_BCS INTO BCS_EXCEPTION .

*CATCH EXCEPTION HERE

ENDTRY.

You might also like