Abap code for mail in sap

Here is an example of ABAP code that sends an email in SAP:

REPORT zsend_email.

PARAMETERS: p_to TYPE string,
            p_subject TYPE string,
            p_text TYPE string.

DATA: lo_cl_smtp TYPE REF TO cl_bcs,
      lo_document TYPE REF TO cl_document_bcs,
      lo_recipient TYPE REF TO if_recipient_bcs,
      lo_sender TYPE REF TO if_sender_bcs.

START-OF-SELECTION.

  " Create an instance of the SMTP client
  lo_cl_smtp = cl_bcs=>create_persistent( ).

  " Create a document
  lo_document = cl_document_bcs=>create_document(
    i_type    = 'HTM'
    i_subject = p_subject
    i_text    = p_text ).

  " Add a recipient
  lo_recipient = lo_document->add_recipient(
    i_recipient = p_to ).

  " Set the sender
  lo_sender = lo_document->set_sender(
    i_sender = sy-uname ).

  " Send the email
  lo_cl_smtp->send(
    EXPORTING
      i_document = lo_document ).

  " Release the resources
  lo_document->free( ).
  lo_recipient->free( ).
  lo_sender->free( ).
  lo_cl_smtp->free( ).

This code uses the CL_BCS class to create an instance of the SMTP client, create a document, add a recipient, set the sender, and send the email.

You can also use the CL_SMTPE class to send an email, it's a more modern way to send emails in SAP.

REPORT zsend_email.

PARAMETERS: p_to TYPE string,
            p_subject TYPE string,
            p_text TYPE string.

DATA: lo_smtp TYPE REF TO cl_smtpe,
      lo_document TYPE REF TO cl_document_bcs,
      lo_recipient TYPE REF TO if_recipient_bcs,
      lo_sender TYPE REF TO if_sender_bcs.

START-OF-SELECTION.

  " Create an instance of the SMTP client
  lo_smtp = cl_smtpe=>create_i( ).

  " Create a document
  lo_document = cl_document_bcs=>create_document(
    i_type    = 'HTM'
    i_subject = p_subject
    i_text    = p_text ).

  " Add a recipient
  lo_recipient = lo_document->add_recipient(
    i_recipient = p_to ).

  " Set the sender
  lo_sender = lo_document->set_sender(
    i_sender = sy-uname ).

  " Send the email
  lo_smtp->send(
    EXPORTING
      i_document = lo_document ).

  " Release the resources
  lo_document->free( ).
  lo_recipient->free( ).
  lo_sender->free( ).
  lo_smtp->free( ).

You can also use the CL_SMTPE class to send an email with attachments, you can use the ADD_ATTACHMENT method to add attachments to the email.

REPORT zsend_email.

PARAMETERS: p_to TYPE string,
            p_subject TYPE string,
            p_text TYPE string,
            p_attachment TYPE string.

DATA: lo_smtp TYPE REF TO cl_smtpe,
      lo_document TYPE REF TO cl_document_bcs,
      lo_recipient TYPE REF TO if_recipient_bcs,
      lo_sender TYPE REF TO if_sender_bcs,
      lo_attachment TYPE REF TO cl_bcs_attachment.

START-OF-SELECTION.

  " Create an instance of the SMTP client
  lo_smtp = cl_smtpe=>create_i( ).

  " Create a document
  lo_document = cl_document_bcs=>create_document(
    i_type    = 'HTM'
    i_subject = p_subject
    i_text    = p_text ).

  " Add a recipient
  lo_recipient = lo_document->add_recipient(
    i_recipient = p_to ).

  " Set the sender
  lo_sender = lo_document->set_sender(
    i_sender = sy-uname ).

  " Add an attachment
  lo_attachment = lo_document->add_attachment(
    i_attachment = p_attachment ).

  " Send the email
  lo_smtp->send(
    EXPORTING
      i_document = lo_document ).

  " Release the resources
  lo_document->free( ).
  lo_recipient->free( ).
  lo_sender->free( ).
  lo_attachment->free( ).
  lo_smtp->free( ).

You can also use the CL_SMTPE class to send an email with HTML content, you can use the SET_HTML method to set the HTML content of the email.

REPORT zsend_email.

PARAMETERS: p_to TYPE string,
            p_subject TYPE string,
            p_html TYPE string.

DATA: lo_smtp TYPE REF TO cl_smtpe,
      lo_document TYPE REF TO cl_document_bcs,
      lo_recipient TYPE REF TO if_recipient_bcs,
      lo_sender TYPE REF TO if_sender_bcs.

START-OF-SELECTION.

  " Create an instance of the SMTP client
  lo_smtp = cl_smtpe=>create_i( ).

  " Create a document
  lo_document = cl_document_bcs=>create_document(
    i_type    = 'HTM'
    i_subject = p_subject ).

  " Add a recipient
  lo_recipient = lo_document->add_recipient(
    i_recipient = p_to ).

  " Set the sender
  lo_sender = lo_document->set_sender(
    i_sender = sy-uname ).

  " Set the HTML content
  lo_document->set_html(
    i_html = p_html ).

  " Send the email
  lo_smtp->send(
    EXPORTING
      i_document = lo_document ).

  " Release the resources
  lo_document->free( ).
  lo_recipient->free( ).
  lo_sender->free( ).
  lo_smtp->free( ).

Please note that you need to have the necessary permissions and configuration to send emails in SAP.