邮件发送程序

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据元素:

代码:

FUNCTION z_excel_send_mail.

*"----------------------------------------------------------------------

*"*"Local interface:

*" IMPORTING

*" REFERENCE(I_SUBJECT) TYPE SO_OBJ_DES OPTIONAL

*" REFERENCE(I_MAILBODY) TYPE BCSY_TEXT OPTIONAL

*" REFERENCE(I_ATTACHMENT_SUBJECT) TYPE SOOD-OBJDES OPTIONAL *" REFERENCE(I_ACK) TYPE CHAR1 DEFAULT SPACE

*" REFERENCE(IT_FIELDCAT) TYPE SLIS_T_FIELDCAT_ALV OPTIONAL *" VALUE(I_ATTACHMENT_TYPE) TYPE SO_OBJ_TP DEFAULT 'xls'

*" TABLES

*" I_EMAIL_LIST STRUCTURE ZEMAIL_LIST

*" I_DATA

*" EXCEPTIONS

*" ERROR

*"----------------------------------------------------------------------

* BCS data

DATA send_request TYPE REF TO cl_bcs.

DATA body_length TYPE so_obj_len.

DATA document TYPE REF TO cl_document_bcs.

DATA recipient TYPE REF TO if_recipient_bcs.

DATA: bcs_exception TYPE REF TO cx_bcs.

DATA sent_to_all TYPE os_boolean.

DATA: requested_status TYPE bcs_rqst VALUE 'N'.

DATA: binary_content TYPE solix_tab.

DATA: size TYPE so_obj_len.

DATA: l_lines TYPE i.

IF i_email_list[] IS INITIAL.

"邮件接收地址不能为空.

MESSAGE e056(zmm_msg) RAISING error.

ENDIF.

* 创建EXCEL内容

PERFORM create_content TABLES i_data USING it_fieldcat

CHANGING binary_content size.

* ------------ 调用 BCS 接口 ----------------------------------

TRY.

* ---------- 创建和发送请求 ----------------------

send_request = cl_bcs=>create_persistent( ).

IF i_ack = space.

* 控制状态,如:送达到对方,对方读取

CALL METHOD send_request->set_status_attributes

EXPORTING

i_requested_status = requested_status

i_status_mail = 'N'.

ENDIF.

"邮件标题和正文

CLEAR l_lines.

l_lines = LINES( i_mailbody[] ).

body_length = l_lines * 255.

* ---------- 创建内容 ----------------------------------------

document = cl_document_bcs=>create_document(

i_type = 'RAW'

i_text = i_mailbody "邮件体,正文

i_length = body_length

i_subject = i_subject )."邮件标题

"添加附件

document->add_attachment(

i_attachment_type = i_attachment_type "附件类型

i_attachment_subject = i_attachment_subject "附件名称

i_attachment_size = size

i_att_content_hex = binary_content ).

* 添加邮件内容到发送请求

send_request->set_document( document ).

* ---------- 获取收件人地址 ----------------------

LOOP AT i_email_list.

recipient = cl_cam_address_bcs=>create_internet_address(

i_address_string = i_email_list-smtp_addr ).

* 添加收件人地址到发送请求中

send_request->add_recipient( i_recipient = recipient ).

ENDLOOP.

* --------- 设置为快速发送方式--------------------------

send_request->set_send_immediately( 'X' ).

* ---------- 开始发送 ---------------------------------------

sent_to_all = send_request->send( i_with_error_screen = 'X' ).

IF sent_to_all = 'X'.

相关文档
最新文档