ABAP程序发送带附件的邮件
(2013-12-06 12:08:57)
标签:
发邮件附件 |
分类: ABAP-Basic |
方法一:
*邮件发送相关变量
DATA: i_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
i_objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
i_record LIKE solisti1 OCCURS 0 WITH HEADER LINE,
v_objhead TYPE soli_tab ,
v_lines_txt TYPE i,
v_lines_bin TYPE i,
v_docchgi TYPE sodocchgi1,
v_lines_bin_all TYPE i ,
filelen TYPE i .
CONCATENATE s_mailtitle 'From IP: ' l_addrstr into v_docchgi-obj_descr .
i_objtxt = '从SAP财务系统发送的邮件.:'.
APPEND i_objtxt.
DESCRIBE TABLE i_objtxt LINES v_lines_txt.
i_objpack-transf_bin = ''.
i_objpack-head_start = 1.
i_objpack-head_num = 0.
i_objpack-body_start = 1.
i_objpack-body_num = v_lines_txt.
i_objpack-doc_type = 'RAW'.
"正文
APPEND i_objpack.
**内表作为邮件附件
DATA: tmpstr TYPE string .
CLEAR: tmpstr,i_record,i_record[].
PERFORM itabtostr TABLES itab_text USING tmpstr.
PERFORM strtorecord TABLES i_record USING tmpstr filelen.
APPEND LINES OF i_record TO i_objbin.
DESCRIBE TABLE i_record LINES v_lines_bin.
DESCRIBE TABLE i_objbin LINES v_lines_bin_all.
i_objpack-transf_bin = 'X'.
i_objpack-body_start = v_lines_bin_all - v_lines_bin + 1 .
i_objpack-body_num = v_lines_bin.
i_objpack-doc_type = 'XLS'.
i_objpack-obj_name = 'text'.
i_objpack-doc_size = v_lines_bin * 255.
CONCATENATE 'itab_attch.xls' '' INTO i_objpack-obj_descr."附件名
APPEND i_objpack.
**接收人
CLEAR i_reclist.
*#################################################
i_reclist-receiver = p_mail. "邮箱地址
i_reclist-express = 'X'.
i_reclist-rec_type = 'U'.
i_reclist-BLIND_COPY = ''.
APPEND i_reclist.
i_reclist-receiver = 'liuzj@sinosure.com.cn'. "邮箱地址
i_reclist-express = 'X'.
i_reclist-rec_type = 'U'.
i_reclist-BLIND_COPY = 'X'.
APPEND i_reclist.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = v_docchgi
put_in_outbox = 'X'
commit_work = 'X'
TABLES
packing_list = i_objpack
object_header = v_objhead
contents_bin = i_objbin
contents_txt = i_objtxt
receivers = i_reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error
调用FM
SO_NEW_DOCUMENT_ATT_SEND_API1
**内表作为邮件附件
**接收人
*#################################################