前言
在ABAP中发送邮件也是一个比较常见的需求,如果想要发送一些比较正式的商业邮件,可以借助于SAP提供的邮件模板,它可以使用HTML来设置邮件的样式,然后使用占位符,在生成邮件的时候,将占位符替换成相应的内容即可。
本文将介绍我封装的邮件发送工具,支持发送纯文本、使用邮件模板、添加附件等,一句代码即可, 类似这样
NEW zcl_email( template_id = 'ZET_DEMO01' "Email template doctype = 'HTM' data = ls_data )->send( ).邮件模板介绍
创建方法如下图
示例模板
使用示例
REPORT zdemo_email01."send email with HTML body using email templateTYPES: BEGIN OF ty_tab, posnr TYPE vbap-posnr, matnr TYPE vbap-matnr, arktx TYPE vbap-arktx, kwmeng TYPE vbap-kwmeng, vrkme TYPE vbap-vrkme, price TYPE prcd_elements-kbetr, total TYPE prcd_elements-kwert, END OF ty_tab, tt_tab TYPE STANDARD TABLE OF ty_tab WITH DEFAULT KEY.
TYPES: BEGIN OF ty_data, vbeln TYPE vbak-vbeln, ernam TYPE vbak-ernam, it_tab TYPE tt_tab, END OF ty_data.DATA: ls_data TYPE ty_data.TRY.DATA lv_vbeln TYPE vbeln VALUE '1120000019'.
SELECT a~vbeln,a~ernam,b~posnr,b~matnr,b~arktx,b~kwmeng,b~vrkme,c~kbetr AS price, c~kwert AS total FROM vbak AS a JOIN vbap AS b ON a~vbeln = b~vbeln JOIN prcd_elements AS c ON a~knumv = c~knumv AND b~posnr = c~kposn AND c~kschl = 'ZPR1' WHERE a~vbeln = @lv_vbeln INTO TABLE @DATA(lt_vbap). IF sy-subrc = 0. ls_data-vbeln = lt_vbap[ 1 ]-vbeln. ls_data-ernam = lt_vbap[ 1 ]-ernam. ls_data-it_tab[] = CORRESPONDING #( lt_vbap[] ).
NEW zcl_email( template_id = 'ZET_DEMO01' "Email body from Email template doctype = 'HTM' data = ls_data )->send( ). ENDIF. CATCH cx_bcs_send INTO DATA(ex). MESSAGE ex->get_text( ) TYPE 'S'.
ENDTRY.在SOST中可以看到邮件发送内容
总结
GITHUB地址:https://github.com/a87b01c14/ZEMAIL.git