Skip to content
Skip to content
Menu
SAP ABAP DWIMAN
  • About
SAP ABAP DWIMAN

Simple Send Email with Excel Attachment

By Setyoko Yudho Baskoro on May 3, 2023

Berikut contoh program untuk mengirim email dengan menyertakan attachment berupa file excel

*---------------------------------------------------------------------*
* Report ZTEST_SYB_10
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
REPORT ztest_syb_10.
DATA: lt_mailrecipients TYPE STANDARD TABLE OF somlrec90 WITH HEADER LINE,
      lt_mailtxt        TYPE STANDARD TABLE OF soli      WITH HEADER LINE,
      lt_attachment     TYPE STANDARD TABLE OF solisti1  WITH HEADER LINE,
      lt_mailsubject    TYPE sodocchgi1,
      lt_packing_list   TYPE STANDARD TABLE OF sopcklsti1 WITH HEADER LINE,
      gv_cnt            TYPE i.

""Add Recipients
lt_mailrecipients-rec_type  = 'U'.
lt_mailrecipients-com_type  = 'INT'.
lt_mailrecipients-receiver  = 'someone@gmail.com'.
APPEND lt_mailrecipients .
CLEAR lt_mailrecipients .

""Put in the Mail Contents

lt_mailtxt = 'Hi How are you'.      APPEND lt_mailtxt. CLEAR lt_mailtxt.
lt_mailtxt = 'Here is a test mail'. APPEND lt_mailtxt. CLEAR lt_mailtxt.
lt_mailtxt = 'Thanks'.              APPEND lt_mailtxt. CLEAR lt_mailtxt.

""Create the attachment

DATA: BEGIN OF lt_po_data_cons OCCURS 0,
        ebeln LIKE ekpo-ebeln,
        ebelp LIKE ekpo-ebelp,
      END OF lt_po_data_cons.

SELECT ebeln ebelp INTO TABLE lt_po_data_cons
UP TO 10 ROWS
FROM ekpo.

CLASS cl_abap_char_utilities DEFINITION LOAD.
CONCATENATE 'PO' 'PO Line' INTO lt_attachment SEPARATED BY cl_abap_char_utilities=>horizontal_tab.
APPEND lt_attachment. CLEAR lt_attachment.

LOOP AT lt_po_data_cons.
  CONCATENATE lt_po_data_cons-ebeln lt_po_data_cons-ebelp INTO lt_attachment SEPARATED BY cl_abap_char_utilities=>horizontal_tab.

  CONCATENATE cl_abap_char_utilities=>newline lt_attachment INTO lt_attachment.

  APPEND lt_attachment. CLEAR lt_attachment.
ENDLOOP.


""Pack the mail contents and attachment

lt_packing_list-transf_bin  = space.
lt_packing_list-head_start  = 1.
lt_packing_list-head_num    = 0.
lt_packing_list-body_start  = 1.
lt_packing_list-body_num    = lines( lt_mailtxt ).
lt_packing_list-doc_type    = 'RAW'.
APPEND lt_packing_list. CLEAR lt_packing_list.

lt_packing_list-transf_bin  = 'X'.
lt_packing_list-head_start  = 1.
lt_packing_list-head_num    = 1.
lt_packing_list-body_start  = 1.
lt_packing_list-body_num    = lines( lt_attachment ).
lt_packing_list-doc_type    = 'XLSX'. " You can give RAW incase if you want just a txt file.
lt_packing_list-obj_name    = 'data.xlsx'.
lt_packing_list-obj_descr   = 'data.xlsx'.
lt_packing_list-doc_size    = lt_packing_list-body_num * 255.
APPEND lt_packing_list. CLEAR lt_packing_list.

lt_mailsubject-obj_name     = 'MAILATTCH'.
lt_mailsubject-obj_langu    = sy-langu.
lt_mailsubject-obj_descr    = 'Test Email'.
lt_mailsubject-sensitivty   = 'F'.
gv_cnt = lines( lt_attachment ).
lt_mailsubject-doc_size     = ( gv_cnt - 1 ) * 255 + strlen(
lt_attachment ).

"send the mail out. Just call the function module to send the mail out.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
  EXPORTING
    document_data              = lt_mailsubject
  TABLES
    packing_list               = lt_packing_list
    contents_bin               = lt_attachment
    contents_txt               = lt_mailtxt
    receivers                  = lt_mailrecipients
  EXCEPTIONS
    too_many_receivers         = 1
    document_not_sent          = 2
    document_type_not_exist    = 3
    operation_no_authorization = 4
    parameter_error            = 5
    x_error                    = 6
    enqueue_error              = 7
    OTHERS                     = 8.
IF sy-subrc EQ 0.
  COMMIT WORK.
  SUBMIT rsconn01 WITH mode = 'INT' AND RETURN.
ENDIF.

Post navigation

Read EXCEL File with Multi Sheet
SAP ABAP – POSTING FBCJ using BAPI

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • SAP ABAP – Generate Fiori URL
  • SAP ABAP – Workflow Agents CDS
  • SAP ABAP – Workflow Level with Table Function
  • SAP ABAP – Download ALV to Excel with Total and Subtotal
  • SAP ABAP – BDC Template

Recent Comments

  1. SAP ABAP – Simple Interface FTP Inbound (SAP Consume File From FTP) – SAP ABAP DWIMAN on SAP ABAP – String Encode & Decode BASE64
  2. Upload file – SAP ABAP DWIMAN on F4 Search Help File

Archives

  • May 2025
  • August 2024
  • June 2024
  • May 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • May 2023
  • April 2023

Categories

  • Uncategorized
©2026 SAP ABAP DWIMAN | WordPress Theme by SuperbThemes.com