Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

How to send a mail with an attatchment with it

Former Member
0 Kudos
96

Hi frienz, in my requirement I am asked to write a code to send an e-mail to the mentioned receivers once after the task is completed. If needed the program should send the attatchment also. Pls give some suggestions on this requirement.

1 ACCEPTED SOLUTION

Former Member
0 Kudos
64

Hi,

Check the following code.

&----


*& Form f_send_mail

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_send_mail .

DATA: objpack LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE.

DATA: objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE.

DATA: objbin LIKE solisti1 OCCURS 10 WITH HEADER LINE.

DATA: objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE.

DATA: reclist LIKE somlreci1 OCCURS 5 WITH HEADER LINE.

DATA: doc_chng LIKE sodocchgi1.

DATA: tab_lines LIKE sy-tabix.

*store the vendor name, vendor email id , employee name and employee

*email id in the internal table int_crb

  • Creation of the document to be sent

CLEAR doc_chng.

REFRESH objpack.

REFRESH objhead.

REFRESH reclist.

REFRESH objtxt.

  • File Name

doc_chng-obj_name = 'SHIPMENT'.

  • Mail Subject

CONCATENATE 'Shipment Document No.' int_crb_mail-shipdocnum

'Cleared.'

INTO doc_chng-obj_descr SEPARATED BY ' '.

  • Mail Contents

objtxt-line = 'Hi,'.

APPEND objtxt.

objtxt-line = ' '.

APPEND objtxt.

CONCATENATE 'Shipment Document Number ' int_crb_mail-shipdocnum

' cleared for move.' INTO objtxt-line SEPARATED BY ' '.

APPEND objtxt.

objtxt-line = ' '.

APPEND objtxt.

CLEAR objtxt.

objtxt-line = 'Regards '.

APPEND objtxt.

objtxt-line = ' '.

APPEND objtxt.

objtxt-line = 'SAP '.

APPEND objtxt.

CLEAR objtxt.

APPEND objtxt.

DESCRIBE TABLE objtxt LINES tab_lines.

READ TABLE objtxt INDEX tab_lines.

doc_chng-doc_size = ( tab_lines - 1 ) * 255 + STRLEN(

objtxt ).

  • Creation of the entry for the compressed document

CLEAR objpack-transf_bin.

objpack-head_start = 1.

objpack-head_num = 0.

objpack-body_start = 1.

objpack-body_num = tab_lines.

objpack-doc_type = 'RAW'.

APPEND objpack.

  • Completing the recipient list

  • target recipent

CLEAR reclist.

reclist-receiver = int_crb_mail-empperid. "employee email ID

"wf_empperid.

reclist-express = 'X'.

reclist-rec_type = 'U'.

APPEND reclist.

  • copy recipents

CLEAR reclist.

reclist-receiver = int_crb_mail-smtp_addr."vendor email id

reclist-express = 'X'.

reclist-rec_type = 'U'.

reclist-copy = 'X'.

APPEND reclist.

  • Sending the document

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

document_data = doc_chng

TABLES

packing_list = objpack

object_header = objhead

  • contents_bin = objbin

contents_txt = objtxt

receivers = reclist

EXCEPTIONS

too_many_receivers = 1

document_not_sent = 2

operation_no_authorization = 4

OTHERS = 99.

3 REPLIES 3

Former Member
0 Kudos
64

Hi Suresh,

WELCOME TO SDN FORUM

Mailing with Attachment by ABAP Coding

Refer this link:

FORM send_list_to_basis .

DATA: w_path LIKE rlgrap OCCURS 0 WITH HEADER LINE,

lt_index TYPE sy-tabix,

doc_type(3) TYPE c,

descr LIKE it_objpack_basis-obj_descr,

temp_data LIKE w_path,

temp1 TYPE string,

tab_lines TYPE i,

langu(15) TYPE c,

expirydate TYPE so_obj_edt,

L_FILE1(100).

CONCATENATE 'C:\' sy-repid '_' sy-datum '.XLS' INTO L_FILE1.

W_PATH-FILENAME = L_FILE1.

APPEND w_path.

CLEAR w_path.

wa_doc_chng-obj_descr = 'User List not logged on for 180 days'.

wa_doc_chng-obj_langu = 'E'.

wa_doc_chng-obj_expdat = sy-datum.

CLEAR w_subject.

CONCATENATE 'Please find attached document with list of users'

'not logged on for 180 days for client' sy-mandt

INTO w_subject SEPARATED BY space.

it_objtxt_basis-line = w_subject.

APPEND it_objtxt_basis.

CLEAR it_objtxt_basis.

it_objtxt_basis-line = text-004.

APPEND it_objtxt_basis.

CLEAR it_objtxt_basis.

CLEAR w_tab_line.

DESCRIBE TABLE it_objtxt_basis LINES w_tab_line.

READ TABLE it_objtxt_basis INDEX w_tab_line INTO l_cline.

wa_doc_chng-doc_size =

( w_tab_line - 1 ) * 255 + STRLEN( l_cline ).

CLEAR it_objpack_basis-transf_bin.

it_objpack_basis-head_start = 1.

it_objpack_basis-head_num = 0.

it_objpack_basis-body_start = 1.

it_objpack_basis-body_num = w_tab_line.

it_objpack_basis-doc_type = 'RAW'.

APPEND it_objpack_basis.

CLEAR it_objpack_basis.

LOOP AT w_path.

temp1 = w_path.

descr = w_path.

CALL FUNCTION 'STRING_REVERSE'

EXPORTING

string = descr

lang = 'E'

IMPORTING

rstring = descr.

CALL FUNCTION 'STRING_SPLIT'

EXPORTING

delimiter = '\'

string = descr

IMPORTING

head = descr

tail = temp_data.

CALL FUNCTION 'STRING_REVERSE'

EXPORTING

string = descr

lang = 'E'

IMPORTING

rstring = descr.

CALL FUNCTION 'STRING_SPLIT'

EXPORTING

delimiter = '.'

string = descr

IMPORTING

head = temp_data

tail = doc_type.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = temp1

filetype = 'BIN'

header_length = 0

read_by_line = 'X'

replacement = '#'

TABLES

data_tab = it_upload.

DESCRIBE TABLE it_upload LINES tab_lines.

DESCRIBE TABLE it_objbin_basis LINES lt_index.

lt_index = lt_index + 1.

LOOP AT it_upload.

wa_objbin_basis-line = it_upload-line.

APPEND wa_objbin_basis TO it_objbin_basis.

CLEAR wa_objbin_basis.

ENDLOOP.

it_objpack_basis-transf_bin = 'X'.

it_objpack_basis-head_start = 0.

it_objpack_basis-head_num = 0.

it_objpack_basis-body_start = lt_index.

it_objpack_basis-body_num = tab_lines.

it_objpack_basis-doc_type = doc_type.

it_objpack_basis-obj_descr = descr.

it_objpack_basis-doc_size = tab_lines * 255.

APPEND it_objpack_basis.

CLEAR it_objpack_basis.

ENDLOOP.

it_reclist_basis-receiver = 'XXX@.com'.

it_reclist_basis-rec_type = 'U'.

APPEND it_reclist_basis.

CLEAR it_reclist_basis.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

document_data = wa_doc_chng

put_in_outbox = 'X'

commit_work = 'X'

TABLES

packing_list = it_objpack_basis

contents_txt = it_objtxt_basis

contents_bin = it_objbin_basis

receivers = it_reclist_basis

EXCEPTIONS

too_many_receivers = 1

document_not_sent = 2

operation_no_authorization = 4

OTHERS = 99.

IF sy-subrc EQ 0.

SUBMIT rsconn01 WITH mode = 'INT' AND RETURN.

ENDIF.

ENDFORM. " send_list_to_basis

Regards

Anji

0 Kudos
64

Thank you, it solved our issue

Former Member
0 Kudos
65

Hi,

Check the following code.

&----


*& Form f_send_mail

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_send_mail .

DATA: objpack LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE.

DATA: objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE.

DATA: objbin LIKE solisti1 OCCURS 10 WITH HEADER LINE.

DATA: objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE.

DATA: reclist LIKE somlreci1 OCCURS 5 WITH HEADER LINE.

DATA: doc_chng LIKE sodocchgi1.

DATA: tab_lines LIKE sy-tabix.

*store the vendor name, vendor email id , employee name and employee

*email id in the internal table int_crb

  • Creation of the document to be sent

CLEAR doc_chng.

REFRESH objpack.

REFRESH objhead.

REFRESH reclist.

REFRESH objtxt.

  • File Name

doc_chng-obj_name = 'SHIPMENT'.

  • Mail Subject

CONCATENATE 'Shipment Document No.' int_crb_mail-shipdocnum

'Cleared.'

INTO doc_chng-obj_descr SEPARATED BY ' '.

  • Mail Contents

objtxt-line = 'Hi,'.

APPEND objtxt.

objtxt-line = ' '.

APPEND objtxt.

CONCATENATE 'Shipment Document Number ' int_crb_mail-shipdocnum

' cleared for move.' INTO objtxt-line SEPARATED BY ' '.

APPEND objtxt.

objtxt-line = ' '.

APPEND objtxt.

CLEAR objtxt.

objtxt-line = 'Regards '.

APPEND objtxt.

objtxt-line = ' '.

APPEND objtxt.

objtxt-line = 'SAP '.

APPEND objtxt.

CLEAR objtxt.

APPEND objtxt.

DESCRIBE TABLE objtxt LINES tab_lines.

READ TABLE objtxt INDEX tab_lines.

doc_chng-doc_size = ( tab_lines - 1 ) * 255 + STRLEN(

objtxt ).

  • Creation of the entry for the compressed document

CLEAR objpack-transf_bin.

objpack-head_start = 1.

objpack-head_num = 0.

objpack-body_start = 1.

objpack-body_num = tab_lines.

objpack-doc_type = 'RAW'.

APPEND objpack.

  • Completing the recipient list

  • target recipent

CLEAR reclist.

reclist-receiver = int_crb_mail-empperid. "employee email ID

"wf_empperid.

reclist-express = 'X'.

reclist-rec_type = 'U'.

APPEND reclist.

  • copy recipents

CLEAR reclist.

reclist-receiver = int_crb_mail-smtp_addr."vendor email id

reclist-express = 'X'.

reclist-rec_type = 'U'.

reclist-copy = 'X'.

APPEND reclist.

  • Sending the document

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

document_data = doc_chng

TABLES

packing_list = objpack

object_header = objhead

  • contents_bin = objbin

contents_txt = objtxt

receivers = reclist

EXCEPTIONS

too_many_receivers = 1

document_not_sent = 2

operation_no_authorization = 4

OTHERS = 99.