Sending mail with attachment

*
* This program will allowed you to send email with attachment.
* First, specify the attachment file from your local hardisk and execute.
* Next, specify the sender email address and click the send button.
*
* Written by : SAP Basis, ABAP Programming and Other IMG Stuff
*               http://www.erpgreat.com
*
report y_cr17_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   = 'erpgreat.com testing by program'.
g_document-folrg   = 'O'.
*g_document-okcode   = 'CHNG'.
g_document-objlen = '0'.
g_document-file_ext = 'TXT'.

g_header-objdes =  'erpgreat.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

See Also
Estimate Guidelines for ABAP programs

Get help for your ABAP problems
Do you have a ABAP Question?

ABAP Books
ABAP Certification, BAPI, Java, Web Programming, Smart Forms, Sapscripts Reference Books

More ABAP Tips

Main Index
SAP Basis, ABAP Programming and Other IMG Stuff

All the site contents are Copyright © www.erpgreat.com and the content authors. All rights reserved.
All product names are trademarks of their respective companies.  The site www.erpgreat.com is in no way affiliated with SAP AG. 
Every effort is made to ensure the content integrity.  Information used on this site is at your own risk. 
 The content on this site may not be reproduced or redistributed without the express written permission of 
www.erpgreat.com or the content authors.