ABAP 发送邮件(正文部分需要表格&图片)邮箱样子
2025-01-03
<p><p><p align="center"><img src="https://img2023.cnblogs.com/blog/1497879/202303/1497879-20230331111133334-349026934.png" alt="" loading="lazy"></p></p></p>
<p>上面截图是最后开发托付截图,右上角是公司LOGO,正文局部是表格。</p>
<p>如今初步开发邮件发送局部</p>
<p>1.上传图片</p>
<p><p><p align="center"><img src="https://img2023.cnblogs.com/blog/1497879/202303/1497879-20230331111611626-1469917090.png" alt="" loading="lazy"></p></p></p>
<p>选择MIME知识库,选中SAP-PUBLIC 导入MIME对象</p>
<p><p><p align="center"><img src="https://img2023.cnblogs.com/blog/1497879/202303/1497879-20230331111740772-2144053508.png" alt="" loading="lazy"></p></p></p>
<p>选择图片上传便可</p>
<p>2.写步调(步调局部只要发送邮件要害内容局部)</p>
<p><span>DATA<span>:ls_data <span>TYPE ty_data<span>,<br> lt_data <span>TYPE <span>TABLE <span>OF ty_data<span>.<br> <span>DATA<span>:lt_body <span>TYPE bcsy_teVt<span>,<br> ls_body <span>TYPE soli<span>.<br> <span>DATA<span>:lZZZ_subject <span>TYPE sood<span>-objdes<span>,<br> lZZZ_title <span>TYPE sood<span>-objdes<span>.<br> <span>DATA lt_teVt <span>TYPE bcsy_teVt<span>.<br> <span>DATA sent_to_all <span>TYPE os_boolean<span>.<br> <span>DATA send_request <span>TYPE <span>REF <span>TO cl_bcs<span>.<br> <span>DATA recipient <span>TYPE <span>REF <span>TO if_recipient_bcs<span>.<br> <span>DATA<span>: lo_sender <span>TYPE <span>REF <span>TO if_sender_bcs<span>.<br> <span>DATA document <span>TYPE <span>REF <span>TO cl_document_bcs<span>.<br> <span>DATA<span>:lZZZ_zcsr <span>TYPE ad_smtpadr<span>.<br> <span>DATA bcs_eVception <span>TYPE <span>REF <span>TO cV_bcs<span>.<br><span>*&---------------------------------------------------------------------*<br><span>*& GET LOGO DATA DEFINE<br><span>*&---------------------------------------------------------------------*<br> <span>DATA <span>: lt_pick_data <span>TYPE <span>TABLE <span>OF w3mime<span>,<br> lt_query <span>TYPE <span>TABLE <span>OF w3query<span>,<br> ls_query <span>TYPE w3query<span>,<br> lt_html <span>TYPE <span>TABLE <span>OF w3html<span>,<br> lZZZ_return_code <span>TYPE w3param<span>-ret_code<span>,<br> lZZZ_content_type <span>TYPE w3param<span>-cont_type<span>,<br> lZZZ_content_length <span>TYPE w3param<span>-cont_len<span>,<br> lZZZ_url<span>(<span>255<span>) <span>TYPE <span>c<span>,<br> lZZZ_pic_size <span>TYPE <span>i<span>,<br> lZZZ_teVt_img <span>TYPE so_teVt255<span>.<br> <span>DATA<span>: o_mr_api <span>TYPE <span>REF <span>TO if_mr_api<span>.<br><br> <span>DATA is_folder <span>TYPE boole_d<span>.<br> <span>DATA lZZZ_content <span>TYPE Vstring<span>.<br> <span>DATA lZZZ_loio <span>TYPE skwf_io<span>.<br> <span>DATA <span>: lo_mime_helper <span>TYPE <span>REF <span>TO cl_gbt_multirelated_serZZZice<span>.<br> <span>DATA<span>:l_obj_len <span>TYPE <span>i<span>,<br> lZZZ_graphic_length <span>TYPE <span>i<span>,<br> l_offset <span>TYPE <span>i<span>,<br> l_length <span>TYPE <span>i<span>,<br> l_diff <span>TYPE <span>i<span>.<br> <span>DATA<span>:lr_Vstr <span>TYPE string<span>,<br> ls_soliV <span>TYPE soliV<span>,<br> lt_soliV <span>TYPE soliV_tab<span>.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p>
<p><span>DATA b64data <span>TYPE string<span>.</span></span></span><br><span>*&---------------------------------------------------------------------*<br><span>*& mail Content<br><span>*&---------------------------------------------------------------------*<br><br><span>*----- Email Subject -----------*<br> lZZZ_title <span>= '<b>采购量质分比方格通知:</b>'<span><span><span><span>.<br><span>*----- Email Company LOGO -----------*<br> <span>IF o_mr_api <span>IS <span>INITIAL<span>.<br> o_mr_api <span>= cl_mime_repository_api<span>=>if_mr_api<span>~get_api<span>( <span>)<span>.<br> <span>ENDIF<span>.<br>*----add logo picture-------*<br> <span>CALL <span>METHOD o_mr_api<span>-><span>get<br> <span>EXPORTING<br> i_url <span>= <span>'/SAP/PUBLIC/logo.bmp'<br> <span>IMPORTING<br> e_is_folder <span>= is_folder<br> e_content <span>= lZZZ_content<br> e_loio <span>= lZZZ_loio<br> <span>EXCEPTIONS<br> parameter_missing <span>= <span>1<br> error_occured <span>= <span>2<br> not_found <span>= <span>3<br> permission_failure <span>= <span>4<br> <span>OTHERS <span>= <span>5<span>.<br><span><span><span><br> <span>CALL <span>FUNCTION <span>'SSFC_BASE64_ENCODE'<br> <span>EXPORTING<br> bindata <span>= lZZZ_content<br> <span>IMPORTING<br> b64data <span>= b64data<span>.<br> <span>IF sy<span>-subrc <> <span>0<span>.<br><br> <span>ENDIF<span>.<br> l_obj_len <span>= <span>strlen<span>( b64data <span>)<span>.<br> lZZZ_graphic_length <span>= <span>strlen<span>( b64data <span>)<span>.<br> lr_Vstr <span>= b64data<span>.<br> l_offset <span>= <span>0<span>.<br> l_length <span>= <span>255<span>.<br><br> <span>CLEAR <span>: ls_body<span>.<br> ls_body<span>-<span>line <span>= <span>'<img src="" align="left" />'<span>.<br> <span>APPEND ls_body <span>TO lt_body<span>.<br><br> <span>CLEAR <span>: ls_body<span>.<br> ls_body<span>-<span>line <span>= <span>'</br>'<span>.<br> <span>APPEND ls_body <span>TO lt_body<span>.<br><br><span>*----- Email Attachment name -----------*<br><span>*----Body of the email here--------*<br> ls_body<span>-<span>line <span>= '<b>采购量质分比方格通知:</b>'<span><span><span><span>.<br> <span>APPEND ls_body <span>TO lt_body<span>. <span>"Body of the email<br> <span>CLEAR <span>: ls_body<span>.<br> <span>APPEND ls_body <span>TO lt_body<span>.<span>.<br> <span>CLEAR <span>: ls_body<span>.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p>
<p><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>*----add form-------*<br> ls_body<span>-<span>line <span>= '<table cellspacing="0">'<span><span><span><span>.<br> <span>APPEND ls_body <span>TO lt_body<span>.<br> <span>CLEAR <span>: ls_body<span>.<br> ls_body<span>-<span>line <span>= '<tr><td>通知单号</td><td>查验批次号</td><td>物料号</td><td>物料形容</td><td>入库批号</td><td>查验名目</td><td>查验结果</td><td>查验结论</td></tr>'<span><span><span><span><span><span><span>.<br> <span>APPEND ls_body <span>TO lt_body<span>.<br> <span>LOOP <span>AT lt_data <span>INTO ls_data<span>.<br> <span>CALL <span>FUNCTION <span>'CONxERSION_EXIT_MATN1_OUTPUT'<br> <span>EXPORTING<br> <span>input <span>= ls_data<span>-matnr<br> <span>IMPORTING<br> <span>output <span>= ls_data<span>-matnr<span>.<br> <span>CLEAR <span>: ls_body<span>.<br> ls_body<span>-<span>line <span>= <span>'<tr><td>' && ls_data<span>-qmnum && <span>'</td>' &&<br> <span>'<td>' && ls_data<span>-prueflos && <span>'</td>' &&<br> <span>'<td>' && ls_data<span>-matnr && <span>'</td>' &&<br> <span>'<td>' && ls_data<span>-maktV && <span>'</td>' &&<br> <span>'<td>' && ls_data<span>-charg && <span>'</td>' &&<br> <span>'<td>' && ls_data<span>-zqmVm && <span>'</td>' &&<br> <span>'<td>' && ls_data<span>-zqmjg && <span>'</td>' &&<br> <span>'<td>' && ls_data<span>-zqmjl && <span>'</td></tr>'<span>.<br><br> <span>APPEND ls_body <span>TO lt_body<span>.<br> <span>ENDLOOP<span>.<br> <span>CLEAR <span>: ls_body<span>.<br> ls_body<span>-<span>line <span>= <span>'</table>'<span>.<br> <span>APPEND ls_body <span>TO lt_body<span>.<br> <span>CLEAR ls_body<span>.<br> ls_body<span>-<span>line <span>= '<b>备注:含质、外不雅观分比方格、请加速评审</b><br></br>'<span><span><span><span>.<br> <span>APPEND ls_body <span>TO lt_body<span>.<br> lt_teVt[] <span>= lt_body<span>.<br><span>*&---------------------------------------------------------------------*<br><span>*& Send mail<br><span>*&---------------------------------------------------------------------*<br> <span>TRY<span>.<br><br><span>* -------- create persistent send request ------------------------<br> send_request <span>= cl_bcs<span>=>create_persistent<span>( <span>)<span>.<br><br><span>* -------- create and set document -------------------------------<br><span>* pdf_content = cl_document_bcs=>Vstring_to_soliV( pdf_Vstring ).<br><br><span>* " Send in RAW format<br> document <span>= cl_document_bcs<span>=>create_document<span>(<br> i_type <span>= <span>'HTM' <span>"'PDF'<br> i_teVt <span>= lt_teVt<br><span>* I_HEX = PDF_CONTENT<br><span>* I_LENGTH = PDF_SIZE<br> i_subject <span>= lZZZ_title <span>)<span>. <span>"#EC NOTEXT<br> <span>"add logo<span><span><span><span><br><span>* --------- add document object to send request<br> send_request<span>->set_document<span>( document <span>)<span>.<br><br><span>* --------- Set the e-mail address of the sender:--------------====<br><span>* lZZZ_sender_email = lZZZ_smtp_addr.<br><span>* IF NOT lZZZ_sender_email IS INITIAL.<br> <span>"指定发件人正在SBWP查察不到已发件<br><span>* LO_SENDER = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS(<br><span>* I_ADDRESS_STRING = Lx_SENDER_EMAIL ).<br><span>* ENDIF.<br> send_request<span>->set_sender<span>( lo_sender <span>)<span>.<br><br><span>* --------- add recipient (e-mail address) -----------------------<br> <span>"获与接管人地址<br> <span>SELECT <span>SINGLE zcsryV <span>INTO lZZZ_zcsr<br> <span>FROM zqmt010<br> <span>WHERE werks <span>= ls_data<span>-werks<br> <span>AND qmart <span>= ls_data<span>-qmart<br> <span>AND bkgrp <span>= ls_data<span>-bkgrp<span>.<br> <span>IF lZZZ_zcsr <span>IS <span>INITIAL<span>.<br> <span>MESSAGE e000<span>(zqm<span>) <span>WITH <span>TEXT<span>-<span>009<span>.<br> <span>ENDIF<span>.<br><span>* create recipient object<br> recipient <span>= cl_cam_address_bcs<span>=>create_internet_address<span>( lZZZ_zcsr <span>)<span>.<br><span>* add recipient object to send request<br> send_request<span>->add_recipient<span>( recipient <span>)<span>.<br><span>* ---------- send document ---------------------------------------<br> send_request<span>->send_request<span>->set_link_to_outboV<span>( <span>'X' <span>)<span>.<br><br> sent_to_all <span>= send_request<span>->send<span>( i_with_error_screen <span>= <span>'X' <span>)<span>.<br><br> <span>COMMIT <span>WORK<span>.<br><br> <span>IF sent_to_all <span>IS <span>INITIAL<span>.<br> <span>MESSAGE e000<span>(zqm<span>) <span>WITH <span>TEXT<span>-<span>008<span>.<br> <span>ELSE<span>.<br> <span>SUBMIT rsconn01 <span>WITH <span>mode <span>= <span>'INT'<br> <span>AND <span>RETURN<span>.<br> <span>MESSAGE s000<span>(zqm<span>) <span>WITH <span>TEXT<span>-<span>007<span>.<br> <span>ENDIF<span>.<br><span>* ------------ eVception handling ----------------------------------<br><span>* replace this rudimentary eVception handling with your own one !!!<br> <span>CATCH cV_bcs <span>INTO bcs_eVception<span>.<br> <span>MESSAGE i865<span>(so<span>) <span>WITH bcs_eVception<span>->error_type<span>.<br> <span>ENDTRY<span>.<br></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p>



