Tuesday, May 12, 2026

A report to send email with attachments

 This is example of email sent using report with attachment. Problem is it ends with .txt.


*&---------------------------------------------------------------------*
*& Report ZGB_MAILTEST
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zgb_mailtest.

DATAlt_mailrecipients TYPE STANDARD TABLE OF somlrec90 WITH HEADER LINE,
      lt_mailtxt        TYPE STANDARD TABLE OF soli,
      l_mailtxt         TYPE  soli,
      lt_attachment     TYPE STANDARD TABLE OF solisti1,
      ls_attachment     TYPE solisti1,
      lt_mailsubject    TYPE sodocchgi1,
      lt_packing_list   TYPE STANDARD TABLE OF sopcklsti1 WITH HEADER LINE,
      gv_cnt            TYPE i.

DATAwa_spfli          TYPE spfli.  """Need to change as per internal table."""


*  Fill header
CLASS cl_abap_char_utilities DEFINITION LOAD.
*CONCATENATE  'Scrap List Details ' 'scrap'
*            INTO ls_attachment SEPARATED BY
*            cl_abap_char_utilities=>horizontal_tab.
*APPEND ls_attachment TO lt_attachment. CLEAR ls_attachment.
*CONCATENATE cl_abap_char_utilities=>newline ls_attachment
*              INTO ls_attachment.
*APPEND ls_attachment TO lt_attachment. CLEAR ls_attachment.
*  APPEND lt_attachment. CLEAR lt_attachment.
l_mailtxt-line '<html><head><style>tablethtd { border1px solid black;  border-collapsecollapse; }</style></head><body>'.
APPEND l_mailtxt TO lt_mailtxtCLEAR l_mailtxt.
l_mailtxt-line 'Hi'.
APPEND l_mailtxt TO lt_mailtxtCLEAR l_mailtxt.
l_mailtxt-line '<b>Please find the attached scrap List</b>'.
APPEND l_mailtxt TO lt_mailtxtCLEAR l_mailtxt.
l_mailtxt-line 'Thank You<br><br>'.
APPEND l_mailtxt TO lt_mailtxtCLEAR l_mailtxt.

l_mailtxt-line '<table style="width:100%">'.
APPEND l_mailtxt TO lt_mailtxtCLEAR l_mailtxt.
l_mailtxt-line '<tr><th>Carrid</th><th>Cityfrom</th><th>Cityto</th><th>Airpto</th></tr>'.
APPEND l_mailtxt TO lt_mailtxtCLEAR l_mailtxt.
l_mailtxt-line '<tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>'.
APPEND l_mailtxt TO lt_mailtxtCLEAR l_mailtxt.
l_mailtxt-line '</table></body></html>'.
APPEND l_mailtxt TO lt_mailtxtCLEAR l_mailtxt.

CONCATENATE 'Carrid' 'Cityfrom' 'Cityto' 'Airpto'
            INTO ls_attachment SEPARATED BY
            ','.
APPEND ls_attachment TO lt_attachmentCLEAR ls_attachment.

"""""""""""""""""""""Need to change the table from internal table we want to send in excel format."""""""""""""""""""



SELECT FROM spfli INTO TABLE @DATA(t_spfliUP TO 10 ROWS.
*  Fill information
LOOP AT t_spfli INTO wa_spfli.
  CONCATENATE wa_spfli-carrid
              wa_spfli-cityfrom
              wa_spfli-cityto
              wa_spfli-airpto
        INTO ls_attachment SEPARATED BY
          ','.
**
*  CONCATENATE space
*              wa_spfli-carrid
*              wa_spfli-cityfrom
*              wa_spfli-cityto
*              wa_spfli-airpto
*          INTO ls_attachment SEPARATED BY
*               cl_abap_char_utilities=>horizontal_tab.
*  CONCATENATE cl_abap_char_utilities=>newline ls_attachment
*              INTO ls_attachment.
  APPEND ls_attachment TO lt_attachmentCLEAR ls_attachment.
ENDLOOP.



lt_mailrecipients-rec_type  'U'.
lt_mailrecipients-com_type  'INT'.
lt_mailrecipients-receiver  'gaurab_banerji@client.com'.
APPEND lt_mailrecipients .
CLEAR lt_mailrecipients .




"""""""""""""""""""""Need to change the table from internal table we want to send in excel format."""""""""""""""""""

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    lineslt_mailtxt ).
lt_packing_list-doc_type    'HTM'.
APPEND lt_packing_listCLEAR 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    lineslt_attachment ).
lt_packing_list-doc_type    'RAW'." 'XLS' " You can give RAW incase if you want just a txt file.
lt_packing_list-obj_name    'data.csv'.
lt_packing_list-obj_descr   'data.csv'.
lt_packing_list-doc_size    lt_packing_list-body_num * 255.
APPEND lt_packing_listCLEAR lt_packing_list.


lt_mailsubject-obj_name     'MAILATTCH'.
lt_mailsubject-obj_langu    sy-langu.
lt_mailsubject-obj_descr    'DDIC Object List'.
lt_mailsubject-sensitivty   'F'.
gv_cnt lineslt_attachment ).
lt_mailsubject-doc_size     gv_cnt 255 strlenls_attachment ).



  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.
    MESSAGE 'Sent' TYPE 'I'.
  ENDIF.


Mail:





No comments:

Post a Comment

Search SAPMV45A includes for Constants and Statics

 This report can find CONSTANTS and STATICS in SAPMV45A Z-includes. We know that Constants and Statics consume global variables so identifyi...