1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
*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. |
本文作者: GavinDong
版权属于: GavinDong博客
文章链接: https://gavindong.com/2716.html
如果使用过程中遇到问题,可 **点击此处** 交流沟通。
版权所有,转载时必须以链接形式注明作者和原始出处及本声明。
评论列表(2条)
发送邮件内容可以是纯文本,也可以是HTML或者使用smartform打印成PDF(不过字符集的问题比较难处理)。
如果只是发送到SAP自带的内部收件箱,可以使用以下两个函数:
带附件:SO_NEW_DOCUMENT_ATT_SEND_API1
无附件:SO_NEW_DOCUMENT_SEND_API1