亲测 ABAP可以发邮件代码

本文介绍了一个使用ABAP编程语言发送HTML格式电子邮件的例子。通过创建持久化发送请求,并设置邮件主题、内容等属性,实现了从指定发件人向指定收件人发送带有HTML格式正文的邮件。该示例还包含了异常处理逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*&---------------------------------------------------------------------*
*& Report  YTEST01
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zsendmail.
DATAlv_title          TYPE so_obj_des,
      send_request   TYPE REF TO CL_BCS,
      document         TYPE REF TO CL_DOCUMENT_BCS,
      conlengths        TYPE so_obj_len,
      html                  TYPE STANDARD TABLE OF w3html,
      wa_html           TYPE w3html,
      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.
    CLEAR send_request.
    send_request cl_bcs=>create_persistent).

    CLEAR document .
    document =  cl_document_bcs=>create_document(
                    i_type =    'HTM'
                    i_text =     html
                    i_length =  conlengths
                    i_subject lv_title ).
*   Add document to send request
    CALL METHOD send_request->set_documentdocument ).

*   Construct sender and receiver
    CLEARsender_id recipient .
*    sender_id = cl_cam_address_bcs=>create_internet_address( 'TEST@CHINA.COM' ).
    recipient cl_cam_address_bcs=>create_internet_address'TEST@CHINAY.COM' ).

*   Set sender
    CALL METHOD send_request->set_sender
      EXPORTING
        i_sender sender_id.

*   Add recipient with its respective attributes to send request
    CALL METHOD send_request->add_recipient
      EXPORTING
        i_recipient recipient
        i_express   'X'.

*   Set E-mail sending options
    CALL METHOD send_request->set_status_attributes
      EXPORTING
        i_requested_status 'E'
        i_status_mail      'E'.
    CALL METHOD send_request->set_send_immediately'X' ).

*   Send document
    CALL METHOD send_request->send(
     EXPORTING
       i_with_error_screen 'X'
     RECEIVING
       result sent_to_all ).

    IF sent_to_all 'X'.
      MESSAGE 'Mail sent successfully ' TYPE 'S'.
    ENDIF.
    COMMIT WORK.

  CATCH cx_bcs INTO bcs_exception.
    bcs_message bcs_exception->get_text).
    MESSAGE bcs_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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值