SAP/ABAP
HTML 본문 메일 전송
성공보다는 가치를..
2022. 7. 28. 16:06
728x90
HTML을 본문으로 하는 메일 전송
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(IV_SUBJECT) TYPE SO_OBJ_DES
*" VALUE(IV_IMPORTANCE) TYPE BCS_DOCIMP DEFAULT 2
*" VALUE(IV_CONTENT) TYPE STRING
*" REFERENCE(IV_ADDRESS) TYPE AD_SMTPADR
*" EXPORTING
*" REFERENCE(EV_MESSAGE) TYPE CHAR50
*" REFERENCE(EV_STATUS) TYPE C
*"----------------------------------------------------------------------
*--- Content 샘플
* DATA(iv_content) = '<!DOCTYPE html PUBLIC “-//IETF//DTD HTML 5.0//EN">'
* && '<HTML><BODY>Hi Dear,<P>Content Section!</P></BODY></HTML>'.
DATA:
lo_mime_helper TYPE REF TO cl_gbt_multirelated_service,
lo_bcs TYPE REF TO cl_bcs,
lo_doc_bcs TYPE REF TO cl_document_bcs,
lo_recipient TYPE REF TO if_recipient_bcs,
lt_soli TYPE TABLE OF soli,
ls_soli TYPE soli,
lv_status TYPE bcs_rqst.
*&---------------------------------------------------------------------*
*& Creation of the mail
*&---------------------------------------------------------------------*
CREATE OBJECT lo_mime_helper.
lt_soli = cl_document_bcs=>string_to_soli( iv_content ).
"-- Set the HTML body of the mail
CALL METHOD lo_mime_helper->set_main_html
EXPORTING
content = lt_soli
description = 'Content BODY'.
"-- Set the subject of the mail.
lo_doc_bcs = cl_document_bcs=>create_from_multirelated(
i_subject = iv_subject
i_importance = iv_importance
i_multirel_service = lo_mime_helper ).
lo_bcs = cl_bcs=>create_persistent( ).
lo_bcs->set_document( i_document = lo_doc_bcs ).
"-- Set the email address
lo_recipient = cl_cam_address_bcs=>create_internet_address( i_address_string = iv_address ).
lo_bcs->add_recipient( i_recipient = lo_recipient ).
"-- Change the status.
lv_status = 'N'.
CALL METHOD lo_bcs->set_status_attributes
EXPORTING
i_requested_status = lv_status.
*&---------------------------------------------------------------------*
*& Send the email
*&---------------------------------------------------------------------*
TRY.
lo_bcs->send( ).
COMMIT WORK.
ev_message = 'Success'.
ev_status = 'S'.
CATCH cx_bcs INTO DATA(lx_bcs).
ev_message = lx_bcs->get_text( ).
ev_status = 'E'.
ROLLBACK WORK.
ENDTRY.
728x90