【ABAP】发送外部邮件代码2
通过函数的方式实现邮件发送,无法设定发件人和抄送人
*&---------------------------------------------------------------------* *& Report YTEST7 *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* REPORT ytest7. DATA:ls_doc_data TYPE sodocchgi1, lt_contents_txt TYPE TABLE OF solisti1, lt_packing_list TYPE TABLE OF sopcklsti1, lt_receivers TYPE TABLE OF somlreci1, lv_sent_to_all TYPE sonv-flag. "定义标题和优先级 CLEAR:ls_doc_data. ls_doc_data = VALUE #( obj_descr = '通知单-' priority = 1 obj_langu = '1' obj_name = 'OFFER' sensitivty = 'O' ). "定义邮件内容 REFRESH:lt_contents_txt. lt_contents_txt = VALUE #( ( line = '您好:' ) ( line = '' ) ( line = '请及时查看通知单' ) ). "根据邮件内容计算行数 DESCRIBE TABLE lt_contents_txt LINES DATA(lv_lines). ls_doc_data-doc_size = ( lv_lines - 1 ) * 255 + strlen( lt_contents_txt[ lv_lines ] ). "根据邮件主体内容计算其行数 lt_packing_list = VALUE #( ( transf_bin = '' head_start = 1 head_num = 0 body_start = 1 body_num = lv_lines doc_type = 'RAW' ) ). "填充收件人 lt_receivers = VALUE #( ( receiver = 'littlefoam@163.com' rec_type = 'U' notif_read = 'X' com_type = 'INT' notif_del = 'X' notif_ndel = 'X' ) ). CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1' EXPORTING document_data = ls_doc_data "新文件的属性 put_in_outbox = 'X' "发送后将文档移至发件箱 commit_work = 'X' "将设置显式COMMIT WORK IMPORTING sent_to_all = lv_sent_to_all TABLES packing_list = lt_packing_list "填充邮件内容 * object_header = gt_object_header * contents_bin = gt_contents_bin contents_txt = lt_contents_txt "对象和附件的ASCII内容 * contents_hex = gt_contents_hex * object_para = gt_object_para * object_parb = gt_object_parb receivers = lt_receivers "具有发送属性的文档收件人 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. DATA(lv_subrc) = sy-subrc. WAIT UP TO 2 SECONDS. IF lv_subrc = 0. SUBMIT rsconn01 WITH mode = 'INT' WITH output = 'X' AND RETURN. ENDIF. CLEAR:lv_subrc. CLEAR:lv_lines.

浙公网安备 33010602011771号