Skip to Content
0
Jan 03, 2011 at 01:49 PM

Problem in sending mail

61 Views

Hi SDNites,

I am using FM SO_NEW_DOCUMENT_ATT_SEND_API1 to send mail. Mail is coming to my external mail is but the probelm is that the data that I am trying to put in attachment is appearing in mail body.

Here is the code I have writte,

DATA : lv_mail_lines LIKE sy-tabix.

DATA : lwa_doc_data TYPE sodocchgi1,

lwa_pcklist TYPE sopcklsti1,

lwa_receivers TYPE somlreci1,

lwa_contents_txt TYPE solisti1,

lwa_object_header TYPE solisti1.

DATA : lit_pcklist TYPE STANDARD TABLE OF sopcklsti1,

lit_receivers TYPE STANDARD TABLE OF somlreci1,

lt_contents_txt TYPE STANDARD TABLE OF solisti1,

lt_object_header TYPE STANDARD TABLE OF solisti1.

lwa_doc_data-obj_name = 'Error Record'.

lwa_doc_data-obj_descr = 'Error Record Description'.

lwa_doc_data-obj_langu = 'EN'.

*describe the body of the message

lwa_pcklist-transf_bin = space.

lwa_pcklist-head_start = 1.

lwa_pcklist-head_num = 0.

lwa_pcklist-body_start = 1.

lwa_pcklist-body_num = 255.

lwa_pcklist-doc_type = 'RAW'.

APPEND lwa_pcklist TO lit_pcklist.

*-----PDF Attachment

lwa_pcklist-transf_bin = 'X'.

lwa_pcklist-head_start = 1.

lwa_pcklist-head_num = 1.

lwa_pcklist-body_start = 1.

lwa_pcklist-doc_size = 255.

lwa_pcklist-body_num = 255.

lwa_pcklist-doc_type = 'TXT'.

lwa_pcklist-obj_name = 'Error Record'.

lwa_pcklist-obj_descr = 'Error Record Desc'.

lwa_pcklist-obj_langu = 'E'.

APPEND lwa_pcklist TO lit_pcklist.

  • Object header

lwa_object_header = 'myattachment'.

APPEND lwa_object_header TO lt_object_header.

  • Mail Contents

IF gv_flag_mail IS INITIAL.

CONCATENATE 'File'

gv_file_name

'not found in directory :'

'/Interface/In'

INTO gv_mail

SEPARATED BY space.

lwa_contents_txt-line = gv_mail.

APPEND lwa_contents_txt TO lt_contents_txt.

ELSE.

CONCATENATE 'File'

gv_file_name

'processed from directory :'

'/Interface/In. Attached is the error list'

INTO gv_mail

SEPARATED BY space.

lwa_contents_txt-line = gv_mail.

APPEND lwa_contents_txt TO lt_contents_txt.

ENDIF.

DESCRIBE TABLE lt_contents_txt LINES lv_mail_lines.

lwa_doc_data-doc_size = 2.

  • Receiver email-id

CLEAR lwa_receivers.

lwa_receivers-receiver = 'Exteranal Mail address'.

lwa_receivers-rec_type = 'U'.

APPEND lwa_receivers TO lit_receivers.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

document_data = lwa_doc_data

put_in_outbox = 'X'

commit_work = 'X'

  • IMPORTING

  • SENT_TO_ALL =

  • NEW_OBJECT_ID =

TABLES

packing_list = lit_pcklist

object_header = lt_object_header

contents_bin = it_contents_bin

  • contents_txt = lt_contents_txt

  • CONTENTS_HEX =

  • OBJECT_PARA =

  • OBJECT_PARB =

receivers = lit_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.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

  • Code written in a separate subroutine and BAPI errors are populated in it which is expected to show in attachement,

gwa_contents_bin-line = gv_file_record.

APPEND gwa_contents_bin TO it_contents_bin.

LOOP AT it_return INTO gwa_return.

gwa_contents_bin-line = gwa_return-message.

APPEND gwa_contents_bin TO it_contents_bin.

CLEAR : gwa_contents_bin,

gwa_return.

ENDLOOP.