Send email with attachment with using ABAP program


This example shows how to send

   -  a simple text provided in an internal table of text lines 
  -   and an attached MS word document provided in internal table

   - to some internet email address.
All activities done via facade CL_BCS!

DA
data: send_request       TYPE REF TO cl_bcs,

      text                           TYPE bcsy_text,
      binary_content         type solix_tab,

      bcs_exception         type ref to cx_bcs,
      document                TYPE REF TO cl_document_bcs,
      sender                     TYPE REF TO cl_sapuser_bcs,
      recipient                  TYPE REF TO if_recipient_bcs,  

      sent_to_all             type os_boolean.



START-OF-SELECTION.

  PERFORM main.


*---------------------------------------------------------------------*
*       FORM main                                                     *
*---------------------------------------------------------------------*
FORM main.

  try.
*     -------- create persistent send request ------------------------
      send_request = cl_bcs=>create_persistent( ).

*     -------- create and set document with attachment ---------------
*     create document from internal table with text
      APPEND 'Get Email!' TO text.
      document = cl_document_bcs=>create_document(
                      i_type    = 'RAW'
                      i_text    = text
                      i_length  = '12'
                      i_subject = 'test’).

*     add attachment to document
*     BCS expects document content here e.g. from document upload
*     binary_content = ...
      CALL METHOD document->add_attachment
        EXPORTING
          i_attachment_type    = 'DOCX' “Doc or Docx
          i_attachment_subject = 'My attachment'
          i_att_content_hex    = binary_content.

*     add document to send request
      CALL METHOD send_request->set_document( document ).

*     --------- set sender -------------------------------------------
*     note: this is necessary only if you want to set the sender
*           different from actual user (SY-UNAME). Otherwise sender is
*           set automatically with actual user.

      sender = cl_sapuser_bcs=>create( sy-uname ).
      CALL METHOD send_request->set_sender
        EXPORTING
          i_sender = sender.

*     --------- add recipient (e-mail address) -----------------------
*     create recipient - please replace e-mail address !!!
      recipient = cl_cam_address_bcs=>create_internet_address(
                                        'info@sapmatrix.com' ).

*     add recipient with its respective attributes to send request
      CALL METHOD send_request->add_recipient
        EXPORTING
          i_recipient = recipient
          i_express   = 'X'.

*     ---------- send document ---------------------------------------
      CALL METHOD send_request->send(
        exporting
          i_with_error_screen = 'X'
        receiving
          result              = sent_to_all ).
      if sent_to_all = 'X'.
        write text-003.
      endif.

      COMMIT WORK.


* -----------------------------------------------------------
* *                     exception handling
* -----------------------------------------------------------
    catch cx_bcs into bcs_exception.
      write: 'There is some error.'(001).
      write: 'Error'(002), bcs_exception->error_type.
      exit.

  endtry.

ENDFORM.                    "main

2 comments:

  1. Hi,
    Please help me for below issue.

    I have a internal table data with 2 records, I need to print employee Image along with employee details on word file. that word file I need to send a mail through program.

    Thanks for advance

    ReplyDelete

/*Newer Post*/ Older Post Home