ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ABAP] 메일 보내기(by. naver)
    SAP/ABAP 2025. 3. 25. 16:41

     

     

    SAP에서 Naver 계정을 이용해 메일 보내는 기능을 개발하였습니다.

    기본 코드에 대해서는 감자님의 블로그를 기반으로 작성하였으며,

    발송자인 Sender를 추가하고 메일이 즉시 발송되도록 작성하였습니다. 

     

    크게 세 가지 단계로 나누어져 있습니다.

     

    1. 코드 작성

    2. SMTP 설정

    3. Naver 계정 환경 설정

     

     

    https://potato98.tistory.com/71

     

    SAP E-Mail(이메일) 발송

    # SAP E-Mail(이메일) 관련 T-CODE# SICF - SMTP 호스트 설정# SCON - SMTP 발송 테스트/발송 정보/Job 스케쥴링# SBWP - 메일함# SOST - 발송 메일 확인  # E-Mail(이메일)을 쓰기 전 # 메일을 보내는 로직 중에 Functi

    potato98.tistory.com

     

     

     


     

     

    1. 코드 작성

    변수 설정

    " Mail 전송을 위한 변수 설정"
    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,
          lt_mailtext          LIKE t_mailtext,
          send_to              TYPE adr6-smtp_addr,
          sent                 TYPE abap_bool,
          wa_string            TYPE string,
          sender_email         TYPE adr6-smtp_addr,
          sender               TYPE REF TO cl_cam_address_bcs.

     

     

     

    메일 제목 & 내용 작성

    mail_title = |메일 제목 작성.|.
    
    CLEAR : wa_string, wa_mailtext.
    wa_string = |메일 내용 1|.
    wa_mailtext = wa_string.
    APPEND wa_mailtext TO lt_mailtext.
    
    CLEAR : wa_string.
    wa_string = |메일 내용 2|.
    wa_mailtext = wa_string.
    APPEND wa_mailtext TO lt_mailtext.
    
    CLEAR : wa_string.
    wa_string = |메일 내용 3|.
    wa_mailtext = wa_string.
    APPEND wa_string TO lt_mailtext.

     

    이때 주의할 점으로 Title은 50자로 제한되어 있어 50자를 넘기는 경우 잘려서 발송된다.

     

     

    메일 발송

    TRY.
        cl_send_request = cl_bcs=>create_persistent( ).
    
        cl_document = cl_document_bcs=>create_document( i_type    = 'RAW'
                                                        i_text    = lt_mailtext    " 메일 글 넣기 "
                                                        i_subject = mail_title ). " 메일 타이틀 넣기 "
    
        cl_send_request->set_document( cl_document ).
        " 발신자 정보 넣기"
        sender_email = 'email@naver.com'.  " 네이버 SMTP 계정과 동일한 주소 입력"
        sender = cl_cam_address_bcs=>create_internet_address( sender_email ).
        cl_send_request->set_sender( sender ).
    
        " 수신자 정보 넣기"
        TRANSLATE lv_send_to_email TO LOWER CASE.
        send_to = lv_send_to_email.
        cl_recipient = cl_cam_address_bcs=>create_internet_address( send_to ).
        cl_send_request->add_recipient( cl_recipient ).
    
        " 즉각적으로 발송"
        cl_send_request->set_send_immediately( 'X' ).
    
        sent = cl_send_request->send( i_with_error_screen = 'X' ).
    
        IF sent = abap_true.
          COMMIT WORK.
    
        ELSE.
          ROLLBACK WORK.
    
        ENDIF.
    
      CATCH cx_bcs INTO bcs_exception.
        errortext = bcs_exception->if_message~get_text( ).
        MESSAGE errortext TYPE 'I'.
    ENDTRY.
    " 메일 전송 완료"

     

     

    아직 해당 코드로는 메일이 발송되지 않으며, T-CODE SCOT로 넘어가 sender로 발송하는 Node를 설정해 주도록 하겠습니다.

     

     


     

     

    2. SMTP 설정

    SMTP Nodes 생성

     

    SMTP Nodes와 Settings 두 곳에서만 생성 및 수정 하도록 하겠습니다.

     

     

    새로운 SMTP Node를 생성하기 위해 마법사 버튼을 클릭합니다.

    Node와 Description을 작성하고 Continue를 클릭합니다.

     

     

    Naver를 사용하기 위해서 Mail Host와 Mail Port를 설정합니다.

     

    • Mail Host : smtp.naver.com (naver를 사용하기 위한 Host)
    • Mail Port : 587 (보안 SMTP의 표준 포트, Naver에서 보안을 요구해 587을 사용하였으며 25, 465 등과 같은 포트가 존재)

     

    Security는 Settings를 눌러 캡처와 같이 작성해줍니다.

     

    • Security Level : Mandatory to use TLS (전송 계층 보안 설정, SMTP를 사용하는 경우 TLS를 요구함)
    • User Name : 실제 메일을 보내기 위한 Naver 계정
    • Password : Naver 계정의 비밀번호 (2단계 인증을 사용하시는 분들은 애플리케이션 비밀번호 입력)

     

    그 다음은 아래와 같이 설정해 주시면 됩니다.

     

     

     

    코드에서 메일은 바로 발송하도록 설정하였기에 마지막에 설정한 Maximum waiting time은 의미 없습니다.

     

     

     

    Settings 설정

     

     

    Default Domain을 sender로 넣어줄 계정으로 설정해줍니다.

     

     

     


     

     

     

    3. Naver 계정 환경 설정

     

     

     

    메일을 발송할 계정으로 로그인한 후 환경설정에서 IMAP/SMTP 사용을 사용함으로 클릭해줍니다.

     

     

    Naver 환경 설정 참조

     

    https://help.naver.com/service/30029/contents/21344?lang=ko

     

    IMAP/SMTP 설정 및 해제 방법 : 메일 고객센터

    ※ 참고해 주세요!2단계 인증을 이용하는 경우, 애플리케이션 비밀번호를 설정한 후 계정 설정 시 로그인 비밀번호가 아닌 애플리케이션 비밀번호를 입력해야 합니다.애플리케이션 비밀번호 설

    help.naver.com

     

     

     


     

     

    메일 발송 결과

     

    T-CODE SOST에서 발송 내역을 확인해보면 Status가 Sent로 잘 전송된 것을 확인할 수 있습니다.

     

     

    수신 받는 메일로 접속하였을 때, 메일이 잘 도착한 것을 확인할 수 있습니다.

     

     

     

Designed by Tistory.