Smartform转换PDF并发送邮件 联系客服

发布时间 : 星期五 文章Smartform转换PDF并发送邮件更新完毕开始阅读d59e3978bd64783e09122b88

IF g_benfile IS NOT INITIAL.

CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' EXPORTING

buffer = g_benfile IMPORTING

output_length = g_len_in TABLES

binary_tab = gt_record. ENDIF.

REFRESH:gt_reclist,gt_objtxt,gt_objbin,gt_objpack. CLEAR: wa_doc_chng.

\将转换后的文件添加到邮件附件

APPEND LINES OF gt_record TO gt_objbin.

\添加邮件正文 gt_objtxt = ' '. APPEND gt_objtxt.

gt_objtxt = 'TIANCZ测试邮件,附件PDF!'. APPEND gt_objtxt.

gt_objtxt = ' '. APPEND gt_objtxt.

gt_objtxt = ' 本邮件由系统自动发出,请勿直接回复!'. APPEND gt_objtxt.

\邮件正文行数

DESCRIBE TABLE gt_objtxt LINES g_lines_txt.

g_object = '测试邮件!'. pdf_name = '测试.pdf'.

**** Mail Attribute

wa_doc_chng-obj_langu = sy-langu. wa_doc_chng-obj_name = 'Email'.

wa_doc_chng-expiry_dat = sy-datum + 10.

wa_doc_chng-obj_descr = g_object . \邮件主题 wa_doc_chng-sensitivty = 'F'.

wa_doc_chng-doc_size = g_lines_txt * 255 + g_len_in. wa_doc_chng-priority = '1'.

* Main Text

CLEAR gt_objpack-transf_bin. gt_objpack-head_start = 1. gt_objpack-head_num = 0. gt_objpack-body_start = 1.

gt_objpack-body_num = g_lines_txt. gt_objpack-doc_type = 'RAW'. APPEND gt_objpack.

* Attachment (pdf-Attachment) CLEAR :g_lines_bin.

gt_objpack-transf_bin = 'X'. gt_objpack-head_start = 1. gt_objpack-head_num = 1. gt_objpack-body_start = 1.

DESCRIBE TABLE gt_record LINES g_lines_bin.

\此处附件大小应该按照SCMS_XSTRING_TO_BINARY返回值赋值,如果按照g_lines_bin*225计算,可能出现文件损坏情况 gt_objpack-doc_size = g_len_in . gt_objpack-body_num = g_lines_bin. gt_objpack-doc_type = 'PDF'. gt_objpack-obj_name = 'PO'.

gt_objpack-obj_descr = pdf_name. APPEND gt_objpack.

gt_reclist-receiver = '124801949@qq.com'. gt_reclist-rec_type = 'U'. APPEND gt_reclist.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1' EXPORTING

document_data = wa_doc_chng \邮件属性 put_in_outbox = '' commit_work = 'X' TABLES

packing_list = gt_objpack \邮件内容

contents_bin = gt_objbin \附件内容(二进制) contents_txt = gt_objtxt \邮件内容(直接填入) receivers = gt_reclist \收件箱地址 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.

IF sy-subrc = 0.

MESSAGE 'send mail successful!' TYPE 'S'. ELSE.

MESSAGE 'send mail failed!' TYPE 'S'. ENDIF.

ENDFORM. \