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 Trigger

Former Member
0 Likes
404

How to send the mail with an attachment ? Please provide the code !!!

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
364

Hi,

&----


*& Report YSENDMAIL_ZIP_MOFQ1 *

*& *

&----


*& *

*& *

&----


REPORT YSENDMAIL_ZIP_MOFQ1 message-id 00 .

  • Objects to send mail.

DATA: L_T_OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE, " SAPoffice: Description of Imported Object Components

L_T_OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE,

L_T_OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,

L_T_OBJBIN LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,

L_T_RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE, " SAPoffice: Structure of the API Recipient List

L_DATE LIKE SY-DATUM,

V_DOCUMENT_DATA TYPE SODOCCHGI1.

DATA:

  • Work Area declarations

L_WA_OBJHEAD TYPE SOLI_TAB, " Work Area for Objcont and Objhead as Table Type

L_WA_DOC_CHNG TYPE SODOCCHGI1, " Work Area - Data of an object which can be changed

  • Variables declarations

L_LINES_TXT TYPE I,

L_LINES_BIN TYPE I,

L_OBJ_DESC(100),

L_NAME(100).

DATA : BEGIN OF L_T_EMAIL OCCURS 0,

EMAIL_ID(100),

END OF L_T_EMAIL.

  • email -id

  • SELECT LOW INTO TABLE L_T_EMAIL

  • FROM TVARVC

  • WHERE NAME EQ 'ZREUTERS_MAIL'.

  • IF SY-SUBRC <> 0.

L_T_EMAIL-EMAIL_ID = SY-UNAME.

APPEND L_T_EMAIL.

  • MESSAGE I999 WITH 'Email IDs not maintained in TVARVC'.

  • ENDIF.

*Fill in the contents of the mail body

L_T_OBJBIN = ' Reuters File format'.

APPEND L_T_OBJBIN.

  • Attachment

REFRESH: L_T_RECLIST,

L_T_OBJTXT,

L_T_OBJPACK.

CLEAR L_WA_OBJHEAD.

  • Create Message Body Title and Description

CONCATENATE 'Reuters File' Sy-datum INTO L_NAME SEPARATED BY SPACE.

L_T_OBJTXT = L_NAME.

APPEND L_T_OBJTXT.

CONCATENATE 'Reuters File' Sy-datum INTO L_OBJ_DESC SEPARATED BY SPACE.

DESCRIBE TABLE L_T_OBJTXT LINES L_LINES_TXT.

READ TABLE L_T_OBJTXT INDEX L_LINES_TXT.

L_WA_DOC_CHNG-OBJ_NAME = L_NAME.

L_WA_DOC_CHNG-EXPIRY_DAT = SY-DATUM + 10.

L_WA_DOC_CHNG-OBJ_DESCR = L_OBJ_DESC.

L_WA_DOC_CHNG-SENSITIVTY = 'O'.

L_WA_DOC_CHNG-DOC_SIZE = STRLEN( L_T_OBJTXT ).

  • Main Text

CLEAR L_T_OBJPACK-TRANSF_BIN.

L_T_OBJPACK-HEAD_START = 1.

L_T_OBJPACK-HEAD_NUM = 0.

L_T_OBJPACK-BODY_START = 1.

L_T_OBJPACK-BODY_NUM = 1.

L_T_OBJPACK-DOC_TYPE = 'RAW'.

L_T_OBJPACK-DOC_SIZE = STRLEN( L_T_OBJTXT ).

APPEND L_T_OBJPACK.

  • Attachment

DESCRIBE TABLE L_T_OBJBIN LINES L_LINES_BIN.

READ TABLE L_T_OBJBIN INDEX L_LINES_BIN.

CLEAR L_T_OBJPACK.

L_T_OBJPACK-TRANSF_BIN = 'X'.

L_T_OBJPACK-HEAD_START = 1.

L_T_OBJPACK-HEAD_NUM = 1.

L_T_OBJPACK-BODY_START = 1.

L_T_OBJPACK-BODY_NUM = L_LINES_BIN.

L_T_OBJPACK-DOC_TYPE = 'RAW'.

L_T_OBJPACK-OBJ_NAME = 'EMAIL'.

L_T_OBJPACK-OBJ_DESCR = ' Exchange rate File'.

L_T_OBJPACK-DOC_SIZE = ( 255 * ( L_LINES_BIN - 1 ) ) + STRLEN( L_T_OBJBIN-LINE ).

APPEND L_T_OBJPACK.

LOOP AT L_T_EMAIL.

  • Maintain Recievers

CLEAR L_T_RECLIST.

L_T_RECLIST-RECEIVER = L_T_EMAIL-EMAIL_ID.

L_T_RECLIST-REC_TYPE = 'U'.

L_T_RECLIST-EXPRESS = 'X'.

APPEND L_T_RECLIST.

ENDLOOP.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

DOCUMENT_DATA = L_WA_DOC_CHNG

PUT_IN_OUTBOX = 'X'

COMMIT_WORK = 'X'

TABLES

PACKING_LIST = L_T_OBJPACK

OBJECT_HEADER = L_WA_OBJHEAD

CONTENTS_BIN = L_T_OBJBIN

CONTENTS_TXT = L_T_OBJTXT

RECEIVERS = L_T_RECLIST

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 NE 0.

MESSAGE S999(ZZ) WITH 'Mail Could not be sent'.

ELSE.

MESSAGE S999(ZZ) WITH 'Mail sent to group'.

ENDIF.

2 REPLIES 2
Read only

Former Member
0 Likes
365

Hi,

&----


*& Report YSENDMAIL_ZIP_MOFQ1 *

*& *

&----


*& *

*& *

&----


REPORT YSENDMAIL_ZIP_MOFQ1 message-id 00 .

  • Objects to send mail.

DATA: L_T_OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE, " SAPoffice: Description of Imported Object Components

L_T_OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE,

L_T_OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,

L_T_OBJBIN LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,

L_T_RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE, " SAPoffice: Structure of the API Recipient List

L_DATE LIKE SY-DATUM,

V_DOCUMENT_DATA TYPE SODOCCHGI1.

DATA:

  • Work Area declarations

L_WA_OBJHEAD TYPE SOLI_TAB, " Work Area for Objcont and Objhead as Table Type

L_WA_DOC_CHNG TYPE SODOCCHGI1, " Work Area - Data of an object which can be changed

  • Variables declarations

L_LINES_TXT TYPE I,

L_LINES_BIN TYPE I,

L_OBJ_DESC(100),

L_NAME(100).

DATA : BEGIN OF L_T_EMAIL OCCURS 0,

EMAIL_ID(100),

END OF L_T_EMAIL.

  • email -id

  • SELECT LOW INTO TABLE L_T_EMAIL

  • FROM TVARVC

  • WHERE NAME EQ 'ZREUTERS_MAIL'.

  • IF SY-SUBRC <> 0.

L_T_EMAIL-EMAIL_ID = SY-UNAME.

APPEND L_T_EMAIL.

  • MESSAGE I999 WITH 'Email IDs not maintained in TVARVC'.

  • ENDIF.

*Fill in the contents of the mail body

L_T_OBJBIN = ' Reuters File format'.

APPEND L_T_OBJBIN.

  • Attachment

REFRESH: L_T_RECLIST,

L_T_OBJTXT,

L_T_OBJPACK.

CLEAR L_WA_OBJHEAD.

  • Create Message Body Title and Description

CONCATENATE 'Reuters File' Sy-datum INTO L_NAME SEPARATED BY SPACE.

L_T_OBJTXT = L_NAME.

APPEND L_T_OBJTXT.

CONCATENATE 'Reuters File' Sy-datum INTO L_OBJ_DESC SEPARATED BY SPACE.

DESCRIBE TABLE L_T_OBJTXT LINES L_LINES_TXT.

READ TABLE L_T_OBJTXT INDEX L_LINES_TXT.

L_WA_DOC_CHNG-OBJ_NAME = L_NAME.

L_WA_DOC_CHNG-EXPIRY_DAT = SY-DATUM + 10.

L_WA_DOC_CHNG-OBJ_DESCR = L_OBJ_DESC.

L_WA_DOC_CHNG-SENSITIVTY = 'O'.

L_WA_DOC_CHNG-DOC_SIZE = STRLEN( L_T_OBJTXT ).

  • Main Text

CLEAR L_T_OBJPACK-TRANSF_BIN.

L_T_OBJPACK-HEAD_START = 1.

L_T_OBJPACK-HEAD_NUM = 0.

L_T_OBJPACK-BODY_START = 1.

L_T_OBJPACK-BODY_NUM = 1.

L_T_OBJPACK-DOC_TYPE = 'RAW'.

L_T_OBJPACK-DOC_SIZE = STRLEN( L_T_OBJTXT ).

APPEND L_T_OBJPACK.

  • Attachment

DESCRIBE TABLE L_T_OBJBIN LINES L_LINES_BIN.

READ TABLE L_T_OBJBIN INDEX L_LINES_BIN.

CLEAR L_T_OBJPACK.

L_T_OBJPACK-TRANSF_BIN = 'X'.

L_T_OBJPACK-HEAD_START = 1.

L_T_OBJPACK-HEAD_NUM = 1.

L_T_OBJPACK-BODY_START = 1.

L_T_OBJPACK-BODY_NUM = L_LINES_BIN.

L_T_OBJPACK-DOC_TYPE = 'RAW'.

L_T_OBJPACK-OBJ_NAME = 'EMAIL'.

L_T_OBJPACK-OBJ_DESCR = ' Exchange rate File'.

L_T_OBJPACK-DOC_SIZE = ( 255 * ( L_LINES_BIN - 1 ) ) + STRLEN( L_T_OBJBIN-LINE ).

APPEND L_T_OBJPACK.

LOOP AT L_T_EMAIL.

  • Maintain Recievers

CLEAR L_T_RECLIST.

L_T_RECLIST-RECEIVER = L_T_EMAIL-EMAIL_ID.

L_T_RECLIST-REC_TYPE = 'U'.

L_T_RECLIST-EXPRESS = 'X'.

APPEND L_T_RECLIST.

ENDLOOP.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

DOCUMENT_DATA = L_WA_DOC_CHNG

PUT_IN_OUTBOX = 'X'

COMMIT_WORK = 'X'

TABLES

PACKING_LIST = L_T_OBJPACK

OBJECT_HEADER = L_WA_OBJHEAD

CONTENTS_BIN = L_T_OBJBIN

CONTENTS_TXT = L_T_OBJTXT

RECEIVERS = L_T_RECLIST

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 NE 0.

MESSAGE S999(ZZ) WITH 'Mail Could not be sent'.

ELSE.

MESSAGE S999(ZZ) WITH 'Mail sent to group'.

ENDIF.

Read only

Former Member
0 Likes
364

Hi,

Find the below code :

Creation of the document attachment

LOOP AT IT_ATTACHMENT.

OBJBIN = IT_ATTACHMENT-EMAIL.

APPEND OBJBIN.

CLEAR OBJBIN.

ENDLOOP.

DESCRIBE TABLE OBJBIN LINES TAB_LINES.

OBJHEAD = 'Airport Mainfest'.

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 = 'RAW'.

OBJPACK-OBJ_NAME = 'ANLAGE'.

OBJPACK-OBJ_DESCR = 'Representation of object 138'.

OBJPACK-DOC_SIZE = TAB_LINES * 255.

APPEND OBJPACK.

Above is body and below is the complete code

DATA: OBJPACK LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE.

DATA: OBJHEAD LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.

DATA: OBJBIN LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.

DATA: OBJTXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.

DATA: RECLIST LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE.

DATA: DOC_CHNG LIKE SODOCCHGI1.

DATA: TAB_LINES LIKE SY-TABIX.

DATA: L_MSG(100) TYPE C.

  • Creation of the document to be sent

DOC_CHNG-OBJ_NAME = 'Z2318S1B01'.

DOC_CHNG-OBJ_DESCR = EMSUBJ .

*OBJTXT = 'your report from apple vacations is enclosed as

  • ATTACHMENT'.

OBJTXT = 'your report from apple vacations is enclosed 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.

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 IT_ATTACHMENT.

OBJBIN = IT_ATTACHMENT-EMAIL.

APPEND OBJBIN.

CLEAR OBJBIN.

ENDLOOP.

DESCRIBE TABLE OBJBIN LINES TAB_LINES.

OBJHEAD = 'Airport Mainfest'.

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 = 'RAW'.

OBJPACK-OBJ_NAME = 'ANLAGE'.

OBJPACK-OBJ_DESCR = 'Representation of object 138'.

OBJPACK-DOC_SIZE = TAB_LINES * 255.

APPEND OBJPACK.

  • Completing the recipient list

CLEAR EMAILID.

LOOP AT EMAILID.

TRANSLATE EMAILID-LOW TO LOWER CASE.

RECLIST-RECEIVER = EMAILID-LOW.

RECLIST-REC_TYPE = 'U'.

APPEND RECLIST.

CLEAR RECLIST.

ENDLOOP.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

DOCUMENT_DATA = DOC_CHNG

PUT_IN_OUTBOX = 'X'

COMMIT_WORK = '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

DOCUMENT_TYPE_NOT_EXIST = 3

OPERATION_NO_AUTHORIZATION = 4

PARAMETER_ERROR = 5

X_ERROR = 6

ENQUEUE_ERROR = 7

OTHERS = 8.

IF SY-SUBRC = 0.

LOOP AT RECLIST.

IF RECLIST-RETRN_CODE = 0.

CONCATENATE RECLIST-RECEIVER ':'

'The document was sent' INTO L_MSG.

MESSAGE S656 WITH L_MSG.

ELSE.

CONCATENATE RECLIST-RECEIVER ':'

'The document was sent' INTO L_MSG.

MESSAGE E656 WITH L_MSG.

ENDIF.

ENDLOOP.

ELSE.

CONCATENATE RECLIST-RECEIVER ':'

'error occurred in sending mail' INTO L_MSG.

MESSAGE S656 WITH L_MSG.

ENDIF.

Hope this helps.

Regards,

Sharath