我很好
分类: WINDOWS
2008-04-14 15:36:09
*&---------------------------------------------------------------------* *& Report ZSENDEMAIL * *& * *&---------------------------------------------------------------------* *& Example of sending external email via SAPCONNECT * *& * *&---------------------------------------------------------------------* REPORT zsendemail . PARAMETERS: psubject(40) type c default 'Hello', p_email(40) type c default 'test@sapdev.co.uk' . data: it_packing_list like sopcklsti1 occurs 0 with header line, it_contents like solisti1 occurs 0 with header line, it_receivers like somlreci1 occurs 0 with header line, it_attachment like solisti1 occurs 0 with header line, gd_cnt type i, gd_sent_all(1) type c, gd_doc_data like sodocchgi1, gd_error type sy-subrc. data: it_message type standard table of SOLISTI1 initial size 0 with header line. *********************************************************************** *START-OF-SELECTION. START-OF-SELECTION. Perform populate_message_table. *Send email message, although is not sent from SAP until mail send *program has been executed(rsconn01) PERFORM send_email_message. *Instructs mail send program for SAPCONNECT to send email(rsconn01) perform initiate_mail_execute_program. *&---------------------------------------------------------------------* *& Form POPULATE_MESSAGE_TABLE *&---------------------------------------------------------------------* * Adds text to email text table *----------------------------------------------------------------------* form populate_message_table. Append 'Email line 1' to it_message. Append 'Email line 2' to it_message. Append 'Email line 3' to it_message. Append 'Email line 4' to it_message. endform. " POPULATE_MESSAGE_TABLE *&---------------------------------------------------------------------* *& Form SEND_EMAIL_MESSAGE *&---------------------------------------------------------------------* * Send email message *----------------------------------------------------------------------* form send_email_message. * Fill the document data. gd_doc_data-doc_size = 1. * Populate the subject/generic message attributes gd_doc_data-obj_langu = sy-langu. gd_doc_data-obj_name = 'SAPRPT'. gd_doc_data-obj_descr = psubject. gd_doc_data-sensitivty = 'F'. * Describe the body of the message clear it_packing_list. refresh it_packing_list. it_packing_list-transf_bin = space. it_packing_list-head_start = 1. it_packing_list-head_num = 0. it_packing_list-body_start = 1. describe table it_message lines it_packing_list-body_num. it_packing_list-doc_type = 'RAW'. append it_packing_list. * Add the recipients email address clear it_receivers. refresh it_receivers. it_receivers-receiver = p_email. it_receivers-rec_type = 'U'. it_receivers-com_type = 'INT'. it_receivers-notif_del = 'X'. it_receivers-notif_ndel = 'X'. append it_receivers. * Call the FM to post the message to SAPMAIL call function 'SO_NEW_DOCUMENT_ATT_SEND_API1' exporting document_data = gd_doc_data put_in_outbox = 'X' importing sent_to_all = gd_sent_all tables packing_list = it_packing_list contents_txt = it_message receivers = it_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. * Store function module return code gd_error = sy-subrc. * Get it_receivers return code loop at it_receivers. endloop. endform. " SEND_EMAIL_MESSAGE *&---------------------------------------------------------------------* *& Form INITIATE_MAIL_EXECUTE_PROGRAM *&---------------------------------------------------------------------* * Instructs mail send program for SAPCONNECT to send email. *----------------------------------------------------------------------* form initiate_mail_execute_program. wait up to 2 seconds. if gd_error eq 0. submit rsconn01 with mode = 'INT' with output = 'X' and return. endif. endform. " INITIATE_MAIL_EXECUTE_PROGRAM |