300x250

# SAP E-Mail(이메일) 관련 T-CODE


# SICF - SMTP 호스트 설정

# SCON - SMTP 발송 테스트/발송 정보/Job 스케쥴링

# SBWP - 메일함

# SOST - 발송 메일 확인

 

 

# E-Mail(이메일)을 쓰기 전 


# 메일을 보내는 로직 중에 Function Module도 있으며 여러 가지 로직이 있지만 최대한 간단하고 이해하기 쉬운 로직으로 하고 싶었다.

 

시작하기 전 순서를 나누겠다.

 

1. 메일만 보내기.

2. 첨부파일 포함해서 보내기 ( 다음 링크 )

 

바로 실습으로 가보자.

 

 

# SAP Mail(메일) 전송하기( 첨부파일 제외 )


# 메시지만 보내는 로직(첨부파일 제외)은 마지막 더 보기에 있으니 참고 바랍니다.

 

# 01. 우선 DATA 선언을 다음과 같이 하면 된다.

- 변수에 대한 네이밍룰은... 넘어가기로 하자. 

  DATA: BCS_EXCEPTION        TYPE REF TO CX_BCS,
        ERRORTEXT            TYPE STRING,
        CL_SEND_REQUEST      TYPE REF TO CL_BCS,
        CL_DOCUMENT          TYPE REF TO CL_DOCUMENT_BCS,
        CL_RECIPIENT         TYPE REF TO IF_RECIPIENT_BCS,
        T_ATTACHMENT_HEADER  TYPE SOLI_TAB,
        WA_ATTACHMENT_HEADER LIKE LINE OF T_ATTACHMENT_HEADER,
        ATTACHMENT_SUBJECT   TYPE SOOD-OBJDES,

        SOOD_BYTECOUNT       TYPE SOOD-OBJLEN,
        MAIL_TITLE           TYPE SO_OBJ_DES,
        T_MAILTEXT           TYPE SOLI_TAB,
        WA_MAILTEXT          LIKE LINE OF T_MAILTEXT,
        SEND_TO              TYPE ADR6-SMTP_ADDR,
        SENT                 TYPE ABAP_BOOL.

 

# 02. 메일 제목  설정하기 : MAIL_TITLE

*--------------------------------------------------------------------*
* 메일 타이틀
*--------------------------------------------------------------------*
  MAIL_TITLE = '메일 타이틀 테스트 '.

MAIL_TITLE메일 타이틀이라고 생각하면 된다. 

 

 

# 03. 메일 글, 내용 설정하기  : T_MAILTEXT

*--------------------------------------------------------------------*
* 메일 글
*--------------------------------------------------------------------*
  WA_MAILTEXT = '안녕하세요. 감자입니다.'.
  APPEND WA_MAILTEXT TO T_MAILTEXT.
  CLEAR WA_MAILTEXT.

  WA_MAILTEXT = '감사합니다.'.
  APPEND WA_MAILTEXT TO T_MAILTEXT.
  CLEAR WA_MAILTEXT.

# 상황에 맞게 문장을 넣고 싶으면 APPEND을 통해서 넣어주면 된다. 

# 저는 간단히 만들어보려고 APPEND 2개밖에 안 했다..

 

# 04. 메일 제목, 글, 내용 넣기

      CL_SEND_REQUEST = CL_BCS=>CREATE_PERSISTENT( ).

      CL_DOCUMENT = CL_DOCUMENT_BCS=>CREATE_DOCUMENT( I_TYPE    = 'RAW'
                                                      I_TEXT    = T_MAILTEXT    " 메일 글 넣기 "
                                                      I_SUBJECT = MAIL_TITLE ). " 메일 타이틀 넣기 "

      CL_SEND_REQUEST->SET_DOCUMENT( CL_DOCUMENT ).

 

# 05. 수신자 넣기 : SEND_TO 

*--------------------------------------------------------------------*
*     수신자 TO 넣기
*--------------------------------------------------------------------*
      SEND_TO = '감자@naver.com'.


      CL_RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS( SEND_TO ).
      CL_SEND_REQUEST->ADD_RECIPIENT( CL_RECIPIENT ).

# 말 그대로 수신자를 넣어주면 된다.

# 이것 또한 상황에 맞게 수신자 메일을 넣어주면 끝이다. 

 

# 06. 발신하기! 

      SENT = CL_SEND_REQUEST->SEND( I_WITH_ERROR_SCREEN = 'X' ).


      IF SENT = ABAP_TRUE.
        COMMIT WORK.
        " 성공메시지 "
*        MESSAGE S001 WITH send_to '로 발송 되었습니다.' .
      ELSE.
        ROLLBACK WORK.
        " 에러메시지 "

      ENDIF.

    CATCH CX_BCS INTO BCS_EXCEPTION.
      ERRORTEXT = BCS_EXCEPTION->IF_MESSAGE~GET_TEXT( ).
      MESSAGE ERRORTEXT TYPE 'I'.

  ENDTRY.

 

# 07. 확인해 보면? 

 

 

2. SAP Mail(메일) 전송하기( 첨부파일 포함 ) 


# 다음 링크를 확인해보자.

2024.11.12 - [.SAP/..ABAP] - SAP E-Mail(이메일) 발송 ( EXCEL, PDF 첨부파일 )

 

SAP E-Mail(이메일) 발송 ( EXCEL, PDF 첨부파일 )

# 시작하기 전 # 나머지 로직들은.. 2023.04.14 - [.SAP/..ABAP] - SAP E-Mail(이메일) 발송 SAP E-Mail(이메일) 발송# SAP E-Mail(이메일) 관련 T-CODE# SICF - SMTP 호스트 설정# SCON - SMTP 발송 테스트/발송 정보/Job 스

potato98.tistory.com

 

 

# 최대한 쉽고.. 간단하게 해서 메일을 보낼 수 있는 로직이었다  # 

전체 로직

 

더보기
  DATA: BCS_EXCEPTION        TYPE REF TO CX_BCS,
        ERRORTEXT            TYPE STRING,
        CL_SEND_REQUEST      TYPE REF TO CL_BCS,
        CL_DOCUMENT          TYPE REF TO CL_DOCUMENT_BCS,
        CL_RECIPIENT         TYPE REF TO IF_RECIPIENT_BCS,
        T_ATTACHMENT_HEADER  TYPE SOLI_TAB,
        WA_ATTACHMENT_HEADER LIKE LINE OF T_ATTACHMENT_HEADER,
        ATTACHMENT_SUBJECT   TYPE SOOD-OBJDES,

        SOOD_BYTECOUNT       TYPE SOOD-OBJLEN,
        MAIL_TITLE           TYPE SO_OBJ_DES,
        T_MAILTEXT           TYPE SOLI_TAB,
        WA_MAILTEXT          LIKE LINE OF T_MAILTEXT,
        SEND_TO              TYPE ADR6-SMTP_ADDR,
        SENT                 TYPE ABAP_BOOL.

*--------------------------------------------------------------------*
* 메일 타이틀 
*--------------------------------------------------------------------*
  MAIL_TITLE = '메일 타이틀 테스트 '.


*--------------------------------------------------------------------*
* 메일 글 
*--------------------------------------------------------------------*
  WA_MAILTEXT = '안녕하세요. 감자입니다.'.
  APPEND WA_MAILTEXT TO T_MAILTEXT.
  CLEAR WA_MAILTEXT.

  WA_MAILTEXT = '감사합니다.'.
  APPEND WA_MAILTEXT TO T_MAILTEXT.
  CLEAR WA_MAILTEXT.


  TRY.
      CL_SEND_REQUEST = CL_BCS=>CREATE_PERSISTENT( ).

      CL_DOCUMENT = CL_DOCUMENT_BCS=>CREATE_DOCUMENT( I_TYPE    = 'RAW'
                                                      I_TEXT    = T_MAILTEXT    " 메일 글 넣기 " 
                                                      I_SUBJECT = MAIL_TITLE ). " 메일 타이틀 넣기 " 
  
      CL_SEND_REQUEST->SET_DOCUMENT( CL_DOCUMENT ).



*--------------------------------------------------------------------*
*     수신자 TO 넣기
*--------------------------------------------------------------------*
      SEND_TO = '감자@naver.com'.


      CL_RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS( SEND_TO ).
      CL_SEND_REQUEST->ADD_RECIPIENT( CL_RECIPIENT ).


      SENT = CL_SEND_REQUEST->SEND( I_WITH_ERROR_SCREEN = 'X' ).


      IF SENT = ABAP_TRUE.
        COMMIT WORK.
        " 성공메시지 "
*        MESSAGE S001 WITH send_to '로 발송 되었습니다.' .
      ELSE.
        ROLLBACK WORK.
        " 에러메시지 "

      ENDIF.

    CATCH CX_BCS INTO BCS_EXCEPTION.
      ERRORTEXT = BCS_EXCEPTION->IF_MESSAGE~GET_TEXT( ).
      MESSAGE ERRORTEXT TYPE 'I'.

  ENDTRY.

 

 

 

728x90