核心代码是利用 Function Module SO_DOCUMENT_SEND_API1
:
*&---------------------------------------------------------------------* *& Report ZJERRY_MAIL_TEST1 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT ZWT_MAIL_TEST1. DATA: wa_docdata TYPE sodocchgi1, wa_objpack TYPE sopcklsti1 , it_objpack TYPE TABLE OF sopcklsti1, wa_objtxt TYPE solisti1, it_objtxt TYPE TABLE OF solisti1, wa_reclist TYPE somlreci1, it_reclist TYPE TABLE OF somlreci1. DATA: tab_lines TYPE i. PERFORM fill_text. PERFORM fill_object_details. *create receiver list PERFORM create_receivers_list. *send mail PERFORM send_mail. *WRITE: / 'End of Program'. *---------------------------------------------------------------------* *Form fill_text *---------------------------------------------------------------------* *text *----------------------------------------------------------------------* *--> p1 text *<-- p2 text *----------------------------------------------------------------------* FORM fill_text . wa_objtxt = '<SPAN style="font-family:arial;font-size:10.5pt;color:blue">'. APPEND wa_objtxt TO it_objtxt. wa_objtxt = '<B><U>Test Program for Send Mail.</U></B> <BR>'. APPEND wa_objtxt TO it_objtxt. wa_objtxt = '<I>This code is formatted using HTML.</I>'. APPEND wa_objtxt TO it_objtxt. wa_objtxt = 'Have a nice day.'. APPEND wa_objtxt TO it_objtxt. wa_objtxt = '<SPAN>'. APPEND wa_objtxt TO it_objtxt. ENDFORM. " fill_text *---------------------------------------------------------------------* *Form fill_object_details *---------------------------------------------------------------------* *text *----------------------------------------------------------------------* * *--> p1 text *<-- p2 text *----------------------------------------------------------------------* FORM fill_object_details . DESCRIBE TABLE it_objtxt LINES tab_lines. READ TABLE it_objtxt INTO wa_objtxt INDEX tab_lines. wa_docdata-obj_name = 'TEST_HTML'. wa_docdata-obj_descr = 'New Task Notification'. wa_docdata-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( wa_objtxt ). CLEAR wa_objpack-transf_bin. wa_objpack-head_start = 1. wa_objpack-head_num = 0. wa_objpack-body_start = 1. wa_objpack-body_num = tab_lines. wa_objpack-doc_type = 'HTM'. APPEND wa_objpack TO it_objpack. ENDFORM. " fill_object_details *---------------------------------------------------------------------* *Form create_receivers_list **---------------------------------------------------------------------* * *text **----------------------------------------------------------------------* * *--> p1 text *<-- p2 text *----------------------------------------------------------------------* FORM create_receivers_list . wa_reclist-receiver = 'jerry@sap.com'. wa_reclist-rec_type = 'U'. APPEND wa_reclist TO it_reclist. ENDFORM. " create_receivers_list *--------------------------------------------------------------------- *Form send_mail *---------------------------------------------------------------------\ *text *---------------------------------------------------------------------- *--> p1 text *<-- p2 text *----------------------------------------------------------------------\ FORM send_mail . CALL FUNCTION 'SO_DOCUMENT_SEND_API1' DESTINATION 'VCUCLNT100' EXPORTING document_data = wa_docdata * PUT_IN_OUTBOX = ' ' *sender_address = 's@sap.com' *sender_address_type = 'INT' commit_work = 'X' *IMPORTING *SENT_TO_ALL = *NEW_OBJECT_ID = *SENDER_ID = TABLES packing_list = it_objpack *OBJECT_HEADER = *CONTENTS_BIN = contents_txt = it_objtxt *CONTENTS_HEX = *OBJECT_PARA = *OBJECT_PARB = receivers = it_reclist 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. IF sy-subrc <> 0. break-point. * *MESSAGE ID 'SO' TYPE 'S' NUMBER '023' * *WITH wa_docdata-obj_name. * *ELSE. * *WRITE : / 'Mail sent to', p_rec. * ENDIF. ENDFORM. " send_mail