Send Emails in SAP ABAP Using Classes, Email communication is an essential part of business workflows in SAP. Instead of using traditional function modules like SO_NEW_DOCUMENT_SEND_API1
, modern ABAP programming recommends using classes for better modularity and maintainability. In this article, we will explore how to send an email using SAP classes in ABAP.
Why Use OOPS to Send Emails in SAP ABAP Using Classes?
Using classes to send emails in sap abap provides the following advantages:
- Object-oriented approach for better structure
- Improved error handling and debugging
- Simplified maintenance and scalability
- SAP recommends using classes instead of outdated function modules

Key SAP Classes for Sending Emails
SAP provides the following classes for handling email communication:
CL_BCS
– Business Communication Service (BCS) class to handle email sending.CL_DOCUMENT_BCS
– Manages document creation and attachments.CL_SAPUSER_BCS
– Retrieves SAP user email addresses.
Program to Send Emails in SAP ABAP
The following ABAP program demonstrates how to send emails in sap abap,
REPORT zsend_email.
DATA: lo_send_request TYPE REF TO cl_bcs,
lo_document TYPE REF TO cl_document_bcs,
lo_recipient TYPE REF TO if_recipient_bcs,
lv_email TYPE soextrec6-value,
lt_body TYPE TABLE OF solisti1,
ls_body TYPE solisti1,
lv_subject TYPE so_obj_des.
START-OF-SELECTION.
" Initialize BCS service
lo_send_request = cl_bcs=>create_persistent( ).
" Set email subject
lv_subject = 'Test Email from SAP'.
" Create email body
ls_body-line = 'Hello, this is a test email from SAP using classes.'.
APPEND ls_body TO lt_body.
" Create document
lo_document = cl_document_bcs=>create_document( i_type = 'RAW'
i_text = lt_body
i_length = '100'
i_subject = lv_subject ).
" Add document to send request
lo_send_request->set_document( lo_document ).
" Set recipient email address
lv_email = 'recipient@example.com'.
lo_recipient = cl_cam_address_bcs=>create_internet_address( lv_email ).
" Add recipient
lo_send_request->add_recipient( lo_recipient ).
" Send email
lo_send_request->send( i_with_error_screen = 'X' ).
" Commit work to finalize sending
COMMIT WORK.
WRITE: 'Email sent successfully to', lv_email.
SAP ABAP Program to Send an Email Using a Distribution List
The following ABAP program demonstrates how to send an email using an SAP distribution list:
REPORT zsend_email_dist_list.
DATA: lo_send_request TYPE REF TO cl_bcs,
lo_document TYPE REF TO cl_document_bcs,
lo_recipient TYPE REF TO if_recipient_bcs,
lt_body TYPE TABLE OF solisti1,
ls_body TYPE solisti1,
lv_subject TYPE so_obj_des,
lv_distlist TYPE so_dli_name.
START-OF-SELECTION.
" Initialize BCS service
lo_send_request = cl_bcs=>create_persistent( ).
" Set email subject
lv_subject = 'Test Email to Distribution List from SAP'.
" Create email body
ls_body-line = 'Hello, this is a test email from SAP using a distribution list.'.
APPEND ls_body TO lt_body.
" Create document
lo_document = cl_document_bcs=>create_document( i_type = 'RAW'
i_text = lt_body
i_length = '100'
i_subject = lv_subject ).
" Add document to send request
lo_send_request->set_document( lo_document ).
" Set distribution list name
lv_distlist = 'MY_DIST_LIST'. " Change this to your actual distribution list
lo_recipient = cl_distributionlist_bcs=>getu_persistent( lv_distlist ).
" Add distribution list as recipient
lo_send_request->add_recipient( lo_recipient ).
" Send email
lo_send_request->send( i_with_error_screen = 'X' ).
" Commit work to finalize sending
COMMIT WORK.
WRITE: 'Email sent successfully to distribution list', lv_distlist.
Explanation of the Code
- Initialize BCS – The program initializes the BCS service using
cl_bcs=>create_persistent()
. - Set Subject and Body – The subject and body text are set.
- Create Document – The document is created using
cl_document_bcs=>create_document()
. - Add Recipient (Distribution List) – Instead of individual recipients, a distribution list is added using
cl_distributionlist_bcs=>getu_persistent()
. - Send Email – The email is sent using
lo_send_request->send()
. - Commit Work – This ensures the email request is processed.
Using SAP classes like CL_BCS to send emails ensures a structured and reliable approach for communication in ABAP programs. This method provides better error handling, flexibility, and is recommended over traditional function modules. Additionally, leveraging distribution lists simplifies email management when sending to multiple recipients.
Know more on SAP