*ABAP发送email.
*使用这种方式发邮件,邮箱必须有@符号,否则会失败.
*使用事务代码SOST在SAP内预览邮件.
DATA: send_request TYPE REF TO cl_bcs,
document TYPE REF TO cl_document_bcs,
fail TYPE REF TO cx_bcs,
recipient TYPE REF TO if_recipient_bcs.
DATA: ls TYPE string,
mailto TYPE ad_smtpadr,
main_text TYPE bcsy_text,
title TYPE so_obj_des.
DATA: lt_ztemailusers TYPE TABLE OF ztemailusers WITH HEADER LINE.
*邮件标题
CONCATENATE '测试邮件'
sy-datum(4) '年'
sy-datum+4(2) '月'
sy-datum+6(2) '日'
sy-uzeit(2) '时'
sy-uzeit+2(2) '分'
sy-uzeit+4(2) '秒'
INTO title.
*邮件正文.
CONCATENATE '邮件来源:' 'SAP ERP' INTO ls.
APPEND ls TO main_text.
CLEAR ls.
*邮件接收人.
SELECT
INTO CORRESPONDING FIELDS OF TABLE lt_ztemailusers
FROM ztemailusers.
*发送邮件.
LOOP AT lt_ztemailusers.
mailto = lt_ztemailusers-email_account.
TRY.
send_request = cl_bcs=>create_persistent( ).
document = cl_document_bcs=>create_document(
i_type = 'RAW'
i_text = main_text
i_subject = title
).
send_request->set_document( document ).
recipient = cl_cam_address_bcs=>create_internet_address( mailto ).
send_request->add_recipient( recipient ).
send_request->send( i_with_error_screen = 'X' ).
COMMIT WORK AND WAIT.
CATCH cx_bcs INTO fail.
ENDTRY.
CLEAR lt_ztemailusers.
ENDLOOP.