A quite easy way to send email in ABAP


report zrich_0002.
 
data: maildata   likesodocchgi1.
data: mailtxt   like solisti1 occurs 10 with header line.
data: mailrec   like somlrec90 occurs 0  with header line.
 
start-of-selection.
 clear:   maildata, mailtxt,  mailrec.
  refresh:  mailtxt,mailrec.
 
  maildata-obj_name = 'TEST'.
  maildata-obj_descr = 'Test Subject'.
 
  mailtxt  = '<html>'.
  append mailtxt.
 
  mailtxt  = '<body>'.
  append mailtxt.
 
  mailtxt  = '<b>This isSAP</b>'.
  append mailtxt.
 
  mailtxt  = '<a href="#"target="_blank">SAPHyperlink</a> '.
  append mailtxt.
 
  mailtxt  = '</body>'.
  append mailtxt.
 
  mailtxt  = '</html>'.
  append mailtxt.
 
  mailrec-receiver = 'you@yourcompany.com'.
  mailrec-rec_type  ='U'.
  append mailrec.
 
  call function 'SO_NEW_DOCUMENT_SEND_API1'
      exporting
           document_data             = maildata
           document_type             = 'HTM'
           put_in_outbox             = 'X'
      tables
           object_header             = mailtxt
           object_content            = mailtxt
           receivers                 = mailrec
      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.

 

---------------------------------------------------------------------------------------------

REPORT  zsendmail.

DATA:lv_title         TYPE so_obj_des,
     send_request   TYPE REF TOCL_BCS,
     document        TYPE REF TO CL_DOCUMENT_BCS,
     conlengths       TYPE so_obj_len,
     html                 TYPE STANDARD TABLE OF w3html,
     wa_html           TYPEw3html,
     sender_id        TYPE REF TO IF_SENDER_BCS,
     recipient          TYPE REF TO IF_RECIPIENT_BCS,
     sent_to_all      TYPE os_boolean,
     bcs_exception  TYPE REF TO cx_bcs,
     bcs_message   TYPE string.

 

lv_title = 'This is the title'.

wa_html-line ='<html><body>'.
APPEND wa_html TO html.
...
wa_html-line ='</body></html>'.
APPEND wa_html TO html.


TRY.
    CLEARsend_request.
    send_request =cl_bcs=>create_persistent().
   
    CLEARdocument .
    document=  cl_document_bcs=>create_document(
                   i_type =   'HTM'
                   i_text=    html
                   i_length =  conlengths
                   i_subject = lv_title ).

  Add document to sendrequest
    CALL METHODsend_request->set_document(document ).

 

  Construct sender andreceiver
    CLEAR:sender_id , recipient .
    sender_id =cl_cam_address_bcs=>create_internet_address('abc@zh.cn' ).
    recipient =cl_cam_address_bcs=>create_internet_address('bcd@zh.cn' ).

 

  Set sender
    CALL METHODsend_request->set_sender
     EXPORTING
       i_sender = sender_id.

 

  Add recipient with itsrespective attributes to send request
    CALL METHODsend_request->add_recipient
     EXPORTING
       i_recipient = recipient
       i_express   = 'X'.

 

  Set E-mail sendingoptions
    CALL METHODsend_request->set_status_attributes
     EXPORTING
       i_requested_status = 'E'
       i_status_mail     = 'E'.
    CALL METHODsend_request->set_send_immediately( 'X' ).

 

  Send document
    CALL METHODsend_request->send(
    EXPORTING
      i_with_error_screen = 'X'
    RECEIVING
      result = sent_to_all ).
      
    IFsent_to_all = 'X'.
     MESSAGE 'Mail sent successfully ' TYPE 'S'.
    ENDIF.
    COMMITWORK.


  CATCH cx_bcs INTO bcs_exception.
    bcs_message= bcs_exception->get_text( ).
    MESSAGEbcs_exception TYPE 'E'.
    EXIT.
ENDTRY.

 

******************************************
 *get sender email address.

 CALL FUNCTION 'SUSR_USER_ADDRESS_READ'
    EXPORTING
       USER_NAME              LV_BNAME
      READ_DB_DIRECTLY       '
    IMPORTING
        USER_ADDRESS           FS_ADDR
        USER_USR03             FS_USR03
    EXCEPTIONS
        USER_ADDRESS_NOT_FOUND 1
        OTHERS                 2.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP剑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值