Application Development and Automation 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: 
Read only

MAIL with attachmetn

Former Member
0 Likes
1,500

Hi Friends,

I have the content in my internal table.I want to send this content as text file to specified single user.

Please tell me as how to send the the internal table as mail content as txt file.

Sample code will be very useful.

Thanx in advance.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,052

Hi Friends,

I have the content in my internal table.I want to send this content as text file to specified single user.

Please tell me as how to send the the internal table as mail content as txt file.

Sample code will be very useful.

Thanx in advance.

8 REPLIES 8
Read only

Former Member
0 Likes
1,053
Read only

Former Member
0 Likes
1,052

Hi Yuvaraj,

you got to use the following function modules

<b>SO_DOCUMENT_SEND_API1 </b>

<b>SO_NEW_DOCUMENT_ATT_SEND_API1</b>

Check the following links,You will get approriate code in them.

http://www.sap-img.com/abap/sending-email-with-attachment.htm

http://www.sapdevelopment.co.uk/reporting/email/email_mbody.htm

http://www.sap-basis-abap.com/abap011.htm

http://www.sapgenie.com/abap/code/abap15.htm

http://www.sapgenie.com/abap/code/abap31.htm

Also check the following Thread on sdn

Probably your problem will be solved.

Thanks & Regards

Pawan P. Khilari

<b>*Mark Useful Answers</b>

Read only

Former Member
0 Likes
1,052

Hi,

refer this code:

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.

DATA L_NUM(3).

  • Creation of the document to be sent

  • File Name

DOC_CHNG-OBJ_NAME = 'SENDFILE'.

  • Mail Subject

DOC_CHNG-OBJ_DESCR = 'Delivered Mail'.

  • Mail Contents

OBJTXT = 'Object text'.

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.

  • Creation of the document attachment

LOOP AT ITAB_DATA.

CONCATENATE ITAB_DATA-PRODUCTOR

ITAB_DATA-VBELN

ITAB_DATA-POSNR

ITAB_DATA-MATNR INTO OBJBIN.

APPEND OBJBIN.

ENDLOOP.

DESCRIBE TABLE OBJBIN LINES TAB_LINES.

OBJHEAD = 'ORDERS'.

APPEND OBJHEAD.

    • Creation of the entry for the compressed attachment

OBJPACK-TRANSF_BIN = 'X'.

OBJPACK-HEAD_START = 1.

OBJPACK-HEAD_NUM = 1.

OBJPACK-BODY_START = 1.

OBJPACK-BODY_NUM = TAB_LINES.

OBJPACK-DOC_TYPE = 'TXT'.

OBJPACK-OBJ_NAME = 'WEBSITE'.

OBJPACK-OBJ_DESCR = 'ORDERS.TXT'.

OBJPACK-DOC_SIZE = TAB_LINES * 255.

APPEND OBJPACK.

  • Completing the recipient list

  • target recipent

clear RECLIST.

RECLIST-RECEIVER = '[email protected]'.

RECLIST-EXPRESS = 'X'.

RECLIST-REC_TYPE = 'U'.

APPEND RECLIST.

  • copy recipents

clear RECLIST.

RECLIST-RECEIVER = '[email protected]'.

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.

ENDFORM. " SEND_MAIL

rgds,

latheesh

Read only

0 Likes
1,052

Hi ALL,

While sending mail with attachment I am getting the message as mail sent but this mail is in queue.In transaction SOST it is showing "Wait for communications service".

Please tell me wht I am supposed to do.

Read only

0 Likes
1,052

Hi Yuvaraj,

<b>"Wait for communications service".</b>

This probably means that the message was sent by the user and is in the queue. It will be sent with the next SAPconnect send process. Alternatively, it may have already been sent and an error occurred, causing the SAPconnect repeat mechanism to put the message back in the queue. In this case, it may only be sent after a certain time.

For further help Check the program documentation in transaction SOST(CNTRL F4).

Thanks & regards,

Pawan P. Khilari

Read only

0 Likes
1,052

hi,

in the function module call there is a paramter "COMMIT_WORK" , you populate 'X' to this field.

this will send the mail immediately once you execute your program.

alternatively manually also we can send the queued mails from SAP. go to transaction SCOT, there on the application tool bar (click on the last button,clock button)i think its labeled as "send .." click on this button & you will get a pop-up with showing all mails which were in queue. if you click OK. system will send them immediately. now if you check it in SOST,you can see the status "sent".

after this still you have problems, contact your basis people whether your sap connected any SMTP server or not.

regards

srikanth

Message was edited by: Srikanth Kidambi

Read only

Former Member
0 Likes
1,052

hii

chk this url too

<b><a href="http://www.sapdevelopment.co.uk/reporting/email/attachhome.htm">http://www.sapdevelopment.co.uk/reporting/email/attachhome.htm</a></b>check out this code

just copy and paste it..


report z_mail. 

data method1 like sy-ucomm. 
data g_user like soudnamei1. 
data g_user_data like soudatai1. 
data g_owner like soud-usrnam. 
data g_receipients like soos1 occurs 0 with header line. 
data g_document like sood4 . 
data g_header like sood2. 
data g_folmam like sofm2. 
data g_objcnt like soli occurs 0 with header line. 
data g_objhead like soli occurs 0 with header line. 
data g_objpara  like selc occurs 0 with header line. 
data g_objparb  like soop1 occurs 0 with header line. 
data g_attachments like sood5 occurs 0 with header line. 
data g_references like soxrl occurs 0 with header line. 

data g_authority like sofa-usracc. 
data g_ref_document like sood4. 
data g_new_parent like soodk. 
data: begin of g_files occurs 10 , 
  text(4096) type c, 
   end of g_files. 

data : fold_number(12) type c, 
       fold_yr(2) type c, 
       fold_type(3) type c. 

parameters ws_file(4096) type c default 'c:debugger.txt'. 
* Can me any file fromyour pc ....either xls or word or ppt etc ... 
g_user-sapname = sy-uname. 
call function 'SO_USER_READ_API1' 
exporting 
   user                            = g_user 
*    PREPARE_FOR_FOLDER_ACCESS       = ' ' 
importing 
   user_data                       = g_user_data 
*  EXCEPTIONS 
*    USER_NOT_EXIST                  = 1 
*    PARAMETER_ERROR                 = 2 
*    X_ERROR                         = 3 
*    OTHERS                          = 4 
          . 
if sy-subrc <> 0. 
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
endif. 

fold_type = g_user_data-outboxfol+0(3). 
fold_yr = g_user_data-outboxfol+3(2). 
fold_number =  g_user_data-outboxfol+5(12). 
clear g_files. 

refresh : g_objcnt, 
  g_objhead, 
  g_objpara, 
  g_objparb, 
  g_receipients, 
  g_attachments, 
  g_references, 
  g_files. 

method1 = 'SAVE'. 
g_document-foltp  = fold_type. 
g_document-folyr   = fold_yr. 
g_document-folno   = fold_number. 
g_document-objtp   = g_user_data-object_typ. 
*g_document-OBJYR   = '27'. 
*g_document-OBJNO   = '000000002365'. 
*g_document-OBJNAM = 'MESSAGE'. 
g_document-objdes   = 'sap-img.com testing by program'. 
g_document-folrg   = 'O'. 
*g_document-okcode   = 'CHNG'. 
g_document-objlen = '0'. 
g_document-file_ext = 'TXT'. 

g_header-objdes =  'sap-img.com testing by program'. 
g_header-file_ext = 'TXT'. 

call function 'SO_DOCUMENT_REPOSITORY_MANAGER' 
  exporting 
    method             = method1 
   office_user        = sy-uname 
   ref_document       = g_ref_document 
   new_parent         =  g_new_parent 
importing 
   authority          =  g_authority 
tables 
   objcont            = g_objcnt 
   objhead            = g_objhead 
   objpara            = g_objpara 
   objparb            = g_objparb 
   recipients         = g_receipients 
   attachments        = g_attachments 
   references         = g_references 
   files              = g_files 
  changing 
    document           = g_document 
   header_data        = g_header 
*   FOLMEM_DATA        = 
*   RECEIVE_DATA       = 
          . 

* File from the pc to send... 
method1 = 'ATTCREATEFROMPC'. 

g_files-text = ws_file. 
append g_files. 

call function 'SO_DOCUMENT_REPOSITORY_MANAGER' 
  exporting 
    method             = method1 
   office_user        = g_owner 
   ref_document       = g_ref_document 
   new_parent         =  g_new_parent 
importing 
   authority          =  g_authority 
tables 
   objcont            = g_objcnt 
   objhead            = g_objhead 
   objpara            = g_objpara 
   objparb            = g_objparb 
   recipients         = g_receipients 
   attachments        = g_attachments 
   references         = g_references 
   files              = g_files 
  changing 
    document           = g_document 
   header_data        = g_header 
          . 

method1 = 'SEND'. 

g_receipients-recnam = 'MK085'. 
g_receipients-recesc = 'B'. 
g_receipients-sndex = 'X'. 
append  g_receipients. 
  

call function 'SO_DOCUMENT_REPOSITORY_MANAGER' 
  exporting 
    method             = method1 
   office_user        = g_owner 
   ref_document       = g_ref_document 
   new_parent         =  g_new_parent 
importing 
   authority          =  g_authority 
tables 
   objcont            = g_objcnt 
   objhead            = g_objhead 
   objpara            = g_objpara 
   objparb            = g_objparb 
   recipients         = g_receipients 
   attachments        = g_attachments 
   references         = g_references 
   files              = g_files 
  changing 
    document           = g_document 
   header_data        = g_header. 

*-- End of Program 


Thanks&Regards

naresh

Read only

Former Member
0 Likes
1,052

Hai Yuvaraj

Check the following Code

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.

DATA L_NUM(3).

  • Creation of the document to be sent

  • File Name

DOC_CHNG-OBJ_NAME = 'SENDFILE'.

  • Mail Subject

DOC_CHNG-OBJ_DESCR = 'Delivered Mail'.

  • Mail Contents

OBJTXT = 'Object text'.

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.

  • Creation of the document attachment

LOOP AT ITAB_DATA.

CONCATENATE ITAB_DATA-PRODUCTOR

ITAB_DATA-VBELN

ITAB_DATA-POSNR

ITAB_DATA-MATNR INTO OBJBIN.

APPEND OBJBIN.

ENDLOOP.

DESCRIBE TABLE OBJBIN LINES TAB_LINES.

OBJHEAD = 'ORDERS'.

APPEND OBJHEAD.

    • Creation of the entry for the compressed attachment

OBJPACK-TRANSF_BIN = 'X'.

OBJPACK-HEAD_START = 1.

OBJPACK-HEAD_NUM = 1.

OBJPACK-BODY_START = 1.

OBJPACK-BODY_NUM = TAB_LINES.

OBJPACK-DOC_TYPE = 'TXT'.

OBJPACK-OBJ_NAME = 'WEBSITE'.

OBJPACK-OBJ_DESCR = 'ORDERS.TXT'.

OBJPACK-DOC_SIZE = TAB_LINES * 255.

APPEND OBJPACK.

  • Completing the recipient list

  • target recipent

clear RECLIST.

RECLIST-RECEIVER = '[email protected]'.

RECLIST-EXPRESS = 'X'.

RECLIST-REC_TYPE = 'U'.

APPEND RECLIST.

  • copy recipents

clear RECLIST.

RECLIST-RECEIVER = '[email protected]'.

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.

Thanks & Regards

Sreenivasulu P