SAP Sending External Mail via ABAP

Very often, users would like to have the ability to send their SAP reports via the company email system.  This abap send mail program will help you to achieve this.  Whether you can send an external mail via SAP will depends whether your SAP system have been configured and link to the external mail server like MS Exchange or Lotus notes.

REPORT ZSENDEXTERNAL.

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.

* Creation of the document to be sent
* File Name
DOC_CHNG-OBJ_NAME = 'SENDFILE'.
* Mail Subject
DOC_CHNG-OBJ_DESCR = 'Send External Mail'.
* Mail Contents
OBJTXT = 'Minimum bid : $250000'.
APPEND OBJTXT.
OBJTXT = 'A representation of the pictures up for auction'.
APPEND OBJTXT.
OBJTXT = 'was included as attachment.'.
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
* (Assume that the data in OBJBIN is in BMP format)
*OBJBIN = ' \O/ '. APPEND OBJBIN.
*OBJBIN = ' | '. APPEND OBJBIN.
*OBJBIN = ' / \ '. APPEND OBJBIN.
*DESCRIBE TABLE OBJBIN LINES TAB_LINES.
*OBJHEAD = 'PICTURE.BMP'.
*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 = 'BMP'.
*OBJPACK-OBJ_NAME = 'PICTURE'.
*OBJPACK-OBJ_DESCR = 'Representation of object 138'.
*OBJPACK-DOC_SIZE = TAB_LINES * 255.
*APPEND OBJPACK.

* Completing the recipient list
RECLIST-RECEIVER = 'youremail@sap.com'.
RECLIST-REC_TYPE = 'U'.
APPEND RECLIST.

*RECLIST-RECEIVER = 'SAPUSERNAME'.
*RECLIST-REC_TYPE = 'P'.
*APPEND RECLIST.

* Sending the document
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
   DOCUMENT_DATA = DOC_CHNG
   PUT_IN_OUTBOX = 'X'
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.

CASE SY-SUBRC.
   WHEN 0.
   WRITE: / 'Result of the send process:'.

LOOP AT RECLIST.
   WRITE: / RECLIST-RECEIVER(48), ':'.

   IF RECLIST-RETRN_CODE = 0.
      WRITE 'The document was sent'.
   ELSE.
      WRITE 'The document could not be sent'.
ENDIF.

ENDLOOP.

WHEN 1.
   WRITE: / 'No authorization for sending to the specified number',
            'of recipients'.

WHEN 2.
   WRITE: / 'Document could not be sent to any recipient'.

WHEN 4.
   WRITE: / 'No send authorization'.

WHEN OTHERS.
   WRITE: / 'Error occurred while sending'.

ENDCASE.

More Function Module
Functions / SAP Script / ALV

Tables
Database Table

ABAP Books List
ABAP/4 Certification, Programming, Smartforms, Sapscripts and Object Oriented Programming Books

Smart Forms
SAP Smartforms

ABAP Menu:
ABAP Example Hints and Tips

Return to Index:-
SAP ABAP/4 Programming, Basis Administration, Configuration Hints and Tips

(c) www.gotothings.com All material on this site is Copyright.
Every effort is made to ensure the content integrity.  Information used on this site is at your own risk.
All product names are trademarks of their respective companies.  The site www.gotothings.com is in no way affiliated with SAP AG.
Any unauthorised copying or mirroring is prohibited.