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: 

Send Email

Former Member
0 Kudos

Hi,

What is the simplest way to send e-mail in ABAP?? Any FM??

Regards,

Kit

5 REPLIES 5

gopi_narendra
Active Contributor
0 Kudos

You can make use of the FM : SO_NEW_DOCUMENT_ATT_SEND_API1 to send emails to external ids with attachments also.

Do a search in the forum you will find lots of codes related to this

Regards

Gopi

Former Member
0 Kudos

Hi KIT ,

you can use SO_NEW_DOCUMENT_ATT_SEND_API1 Fm to send mail through SAP ,but you have to check settings from your end ,otherwise you will have trigger through SCOT trx .

A sample code is as follows ,you can pick relevant part of this .

======================================================================

  • Report :

  • =====================================================================*

&----


*& Report Z_ATTACH_TIFF_TO_TRIP

*&

&----


*&

*&

&----


REPORT Z_ATTACH_TIFF_TO_TRIP.

  • =====================================================================*

  • DATA Declaration

  • =====================================================================*

                • Includes

INCLUDE : <CNTN01>.

                • Tables

TABLES : SWWWIHEAD.

DATA: G_TRANSACTION LIKE SY-TCODE,

B_DONE LIKE SY-DEBUG,

l_event like SWETYPECOU-EVENT VALUE 'TRIGGERED',

l_objtype like SWETYPECOU-OBJTYPE,

l_creator like swhactor,

l_msgv1 like sy-msgv1,

l_msgv2 like sy-msgv2,

l_eventid like SWEDUMEVID-EVTID,

g_workitem LIKE SWWWIHEAD-WI_ID,

returncode(1),

  • GL_FILE_PATH LIKE SAPB-SAPPFAD VALUE '/usr/feeders/interfaces/XD1/Graphic_Data/Inbound/Vendor_Invoices/',

GL_FILE_PATH(100) TYPE C VALUE '/usr/feeders/interfaces/XD1/Graphic_Data/Inbound/Other_Docs/',

GL_PATH LIKE SAPB-SAPPFAD VALUE 'C:\graphicdata\',

L_FILE_PATH(100) TYPE C , "VALUE '/usr/feeders/interfaces/XD1/Graphic_Data/Inbound/Other_Docs/',

L_PATH LIKE SAPB-SAPPFAD , "VALUE 'C:\graphicdata\',

GL_SWW_WITEXT LIKE swwwihead-wi_text,

l_data type table of soli,

l_size type i.

                • Internal tables

DATA : GT_SWWWIHEAD TYPE TABLE OF SWWWIHEAD,

GS_SWWWIHEAD LIKE LINE OF GT_SWWWIHEAD,

GT_ZTIFF_ATTACH TYPE TABLE OF ZTIFF_ATTACH,

GS_ZTIFF_ATTACH LIKE LINE OF GT_ZTIFF_ATTACH.

TYPES : BEGIN OF TY_FINAL,

WI_ID TYPE SWW_WIID,

EMP_NUMBER TYPE AD_PERSNUM,

TRIP_NUMBER TYPE REINR,

FLAG(1) TYPE C,

END OF TY_FINAL.

DATA : GT_FINAL TYPE STANDARD TABLE OF TY_FINAL,

GS_FINAL LIKE LINE OF GT_FINAL.

DATA: GT_LOG TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0

WITH HEADER LINE.

DATA: GT_ERROR_LOG TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0

WITH HEADER LINE.

                • Constants

CONSTANTS: C_MAIL LIKE G_TRANSACTION VALUE 'SO01',

C_WORKFLOW LIKE SWEHRFLDS-RH_TASK VALUE 'WS90000012',

C_EVENT LIKE SWETYPECOU-EVENT VALUE 'TRIGGERED',

C_GENTASK LIKE SWD_CUSTOM-DECI_TASK VALUE 'TS90100071',

C_OBJECT LIKE SWETYPECOU-OBJTYPE VALUE 'WFTS',

C_DELAY LIKE SWEFLAGS-DELAYFLAG VALUE 'X',

CON_TAB TYPE X VALUE '09'. "OK for non Unicode

DATA: IT_MESSAGE TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0

WITH HEADER LINE.

DATA: IT_ATTACH TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0

WITH HEADER LINE.

DATA: T_PACKING_LIST LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,

T_CONTENTS LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

T_RECEIVERS LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,

T_ATTACHMENT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

T_OBJECT_HEADER LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

W_CNT TYPE I,

W_SENT_ALL(1) TYPE C,

W_DOC_DATA LIKE SODOCCHGI1,

GD_ERROR TYPE SY-SUBRC,

GD_RECIEVER TYPE SY-SUBRC.

DATA : G_EMAIL TYPE SOMLRECI1-RECEIVER

VALUE 'ashish.kharade@post.serco.com'.

======================================================================

  • Initialization *

======================================================================

INITIALIZATION.

======================================================================

  • Main Processing block *

======================================================================

PERFORM GET_TS90100071_WORKITEM.

PERFORM GET_ZTIFF_ATTACH_DATA.

PERFORM ATTACHMENT.

PERFORM SEND_LOG_MAIL.

======================================================================

  • End of processing block *

======================================================================

======================================================================

  • Subroutines *

======================================================================

&----


*& Form SEND_LOG_MAIL

&----


  • Send log mail

----


FORM SEND_LOG_MAIL.

*Moving data to log table .

IT_ATTACH[] = GT_LOG[].

  • Populate message body text

PERFORM POPULATE_EMAIL_MESSAGE_BODY.

  • Send file by email as .TXT

PERFORM SEND_FILE_AS_EMAIL_ATTACHMENT

TABLES IT_MESSAGE

IT_ATTACH

USING G_EMAIL

'Log File'

'TXT'

'Log.TXT'

'Log file'

' '

' '

CHANGING GD_ERROR

GD_RECIEVER.

  • Instructs mail send program for SAPCONNECT to send email(rsconn01)

PERFORM INITIATE_MAIL_EXECUTE_PROGRAM.

ENDFORM. "SEND_LOG_MAIL

&----


*& Form INITIATE_MAIL_EXECUTE_PROGRAM

&----


  • Initiate mail execution program

----


FORM INITIATE_MAIL_EXECUTE_PROGRAM.

WAIT UP TO 2 SECONDS.

SUBMIT RSCONN01 WITH MODE = 'INT'

WITH OUTPUT = 'X'

AND RETURN.

ENDFORM. " INITIATE_MAIL_EXECUTE_PROGRAM

&----


*& Form SEND_FILE_AS_EMAIL_ATTACHMENT

&----


  • Send mail as an attachment

----


FORM SEND_FILE_AS_EMAIL_ATTACHMENT TABLES PIT_MESSAGE

PIT_ATTACH

USING P_EMAIL

P_MTITLE

P_FORMAT

P_FILENAME

P_ATTDESCRIPTION

P_SENDER_ADDRESS

P_SENDER_ADDRES_TYPE

CHANGING P_ERROR

P_RECIEVER.

DATA: LD_ERROR TYPE SY-SUBRC,

LD_RECIEVER TYPE SY-SUBRC,

LD_MTITLE LIKE SODOCCHGI1-OBJ_DESCR,

LD_EMAIL LIKE SOMLRECI1-RECEIVER,

LD_FORMAT TYPE SO_OBJ_TP ,

LD_ATTDESCRIPTION TYPE SO_OBJ_NAM ,

LD_ATTFILENAME TYPE SO_OBJ_DES ,

LD_SENDER_ADDRESS LIKE SOEXTRECI1-RECEIVER,

LD_SENDER_ADDRESS_TYPE LIKE SOEXTRECI1-ADR_TYP,

LD_RECEIVER LIKE SY-SUBRC.

LD_EMAIL = P_EMAIL.

LD_MTITLE = P_MTITLE.

LD_FORMAT = P_FORMAT.

LD_ATTDESCRIPTION = P_ATTDESCRIPTION.

LD_ATTFILENAME = P_FILENAME.

LD_SENDER_ADDRESS = P_SENDER_ADDRESS.

LD_SENDER_ADDRESS_TYPE = P_SENDER_ADDRES_TYPE.

  • Fill the document data.

W_DOC_DATA-DOC_SIZE = 1.

  • Populate the subject/generic message attributes

W_DOC_DATA-OBJ_LANGU = SY-LANGU.

W_DOC_DATA-OBJ_NAME = 'SAPRPT'.

W_DOC_DATA-OBJ_DESCR = LD_MTITLE .

W_DOC_DATA-SENSITIVTY = 'F'.

  • Fill the document data and get size of attachment

CLEAR W_DOC_DATA.

READ TABLE IT_ATTACH INDEX W_CNT.

W_DOC_DATA-DOC_SIZE =

( W_CNT - 1 ) * 255 + STRLEN( IT_ATTACH ).

W_DOC_DATA-OBJ_LANGU = SY-LANGU.

W_DOC_DATA-OBJ_NAME = 'SAPRPT'.

W_DOC_DATA-OBJ_DESCR = LD_MTITLE.

W_DOC_DATA-SENSITIVTY = 'F'.

CLEAR T_ATTACHMENT.

REFRESH T_ATTACHMENT.

T_ATTACHMENT[] = PIT_ATTACH[].

  • Describe the body of the message

CLEAR T_PACKING_LIST.

REFRESH T_PACKING_LIST.

T_PACKING_LIST-TRANSF_BIN = SPACE.

T_PACKING_LIST-HEAD_START = 1.

T_PACKING_LIST-HEAD_NUM = 0.

T_PACKING_LIST-BODY_START = 1.

DESCRIBE TABLE IT_MESSAGE LINES T_PACKING_LIST-BODY_NUM.

T_PACKING_LIST-DOC_TYPE = 'RAW'.

APPEND T_PACKING_LIST.

  • Create attachment notification

T_PACKING_LIST-TRANSF_BIN = 'X'.

T_PACKING_LIST-HEAD_START = 1.

T_PACKING_LIST-HEAD_NUM = 1.

T_PACKING_LIST-BODY_START = 1.

DESCRIBE TABLE T_ATTACHMENT LINES T_PACKING_LIST-BODY_NUM.

T_PACKING_LIST-DOC_TYPE = LD_FORMAT.

T_PACKING_LIST-OBJ_DESCR = LD_ATTDESCRIPTION.

T_PACKING_LIST-OBJ_NAME = LD_ATTFILENAME.

T_PACKING_LIST-DOC_SIZE = T_PACKING_LIST-BODY_NUM * 255.

APPEND T_PACKING_LIST.

  • Add the recipients email address

CLEAR T_RECEIVERS.

REFRESH T_RECEIVERS.

T_RECEIVERS-RECEIVER = LD_EMAIL.

T_RECEIVERS-REC_TYPE = 'U'.

T_RECEIVERS-COM_TYPE = 'INT'.

T_RECEIVERS-NOTIF_DEL = 'X'.

T_RECEIVERS-NOTIF_NDEL = 'X'.

APPEND T_RECEIVERS.

CALL FUNCTION 'SO_DOCUMENT_SEND_API1'

EXPORTING

DOCUMENT_DATA = W_DOC_DATA

PUT_IN_OUTBOX = 'X'

SENDER_ADDRESS = LD_SENDER_ADDRESS

SENDER_ADDRESS_TYPE = LD_SENDER_ADDRESS_TYPE

COMMIT_WORK = 'X'

IMPORTING

SENT_TO_ALL = W_SENT_ALL

TABLES

PACKING_LIST = T_PACKING_LIST

CONTENTS_BIN = T_ATTACHMENT

CONTENTS_TXT = IT_MESSAGE

RECEIVERS = T_RECEIVERS

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.

  • Populate zerror return code

LD_ERROR = SY-SUBRC.

  • Populate zreceiver return code

LOOP AT T_RECEIVERS.

LD_RECEIVER = T_RECEIVERS-RETRN_CODE.

ENDLOOP.

ENDFORM. "SEND_FILE_AS_EMAIL_ATTACHMENT

&----


*& Form POPULATE_EMAIL_MESSAGE_BODY

&----


  • Populate Email message body text

----


FORM POPULATE_EMAIL_MESSAGE_BODY.

REFRESH IT_MESSAGE.

IT_MESSAGE = 'Please find attached a Log file'.

APPEND IT_MESSAGE.

ENDFORM. " POPULATE_EMAIL_MESSAGE_BODY

&----


*& Form GET_TS90100071_WORKITEM.

&----


  • Get all the entries for task TS90100071

----


FORM GET_TS90100071_WORKITEM.

DATA : GL_EMPNO(15) TYPE C,

GL_TRIPNO(15) TYPE C,

GL_TEMP(30) TYPE C.

SELECT * FROM SWWWIHEAD INTO TABLE GT_SWWWIHEAD WHERE

WI_RH_TASK EQ C_GENTASK

AND CB_DONE NE 'X'.

lOOP AT GT_SWWWIHEAD INTO GS_SWWWIHEAD.

SELECT SINGLE WI_TEXT FROM SWWWIHEAD INTO GL_SWW_WITEXT

WHERE WI_ID EQ GS_SWWWIHEAD-TOP_WI_ID

AND WI_LANG EQ 'E'

AND WI_RH_TASK EQ 'WS90000012'.

"Expense Approval Workflow Trip 10003105 / 0000000021

GL_TEMP = gl_sww_witext+31.

CONDENSE GL_TEMP.

SPLIT GL_TEMP AT '/' INTO: GL_EMPNO GL_TRIPNO.

CONDENSE: GL_EMPNO, GL_TRIPNO.

MOVE GS_SWWWIHEAD-WI_ID TO GS_FINAL-WI_ID.

MOVE GL_EMPNO TO GS_FINAL-EMP_NUMBER.

MOVE GL_TRIPNO TO GS_FINAL-TRIP_NUMBER.

APPEND GS_FINAL TO GT_FINAL.

ENDLOOP.

ENDFORM. "GET_TS90100071_WORKITEM

&----


*& Form GET_ZTIFF_ATTACH_DATA.

&----


  • Get all the entries from table ZTIFF_ATTACH

----


FORM GET_ZTIFF_ATTACH_DATA.

SELECT * FROM ZTIFF_ATTACH

INTO CORRESPONDING FIELDS OF TABLE GT_ZTIFF_ATTACH

FOR ALL ENTRIES IN GT_FINAL

WHERE EMP_NUMBER EQ GT_FINAL-EMP_NUMBER

AND TRIP_NUMBER EQ GT_FINAL-TRIP_NUMBER

  • AND FLAG_ATTACH NE 'X'

AND FLAG_DELETE NE 'X'.

ENDFORM. "GET_ZTIFF_ATTACH_DATA

&----


*& Form GET_ZTIFF_ATTACH_DATA.

&----


  • Get all the entries from table ZTIFF_ATTACH

----


FORM ATTACHMENT.

DATA : l_return_code TYPE SY-SUBRC,

l_WI_ID TYPE SWW_WIID,

l_file TYPE STRING,

l_text TYPE STRING.

Clear : l_return_code,

GS_FINAL,

L_FILE_PATH,

L_PATH.

LOOP AT GT_FINAL INTO GS_FINAL.

clear : GS_ZTIFF_ATTACH.

READ TABLE GT_ZTIFF_ATTACH INTO GS_ZTIFF_ATTACH

WITH KEY EMP_NUMBER = GS_FINAL-EMP_NUMBER

TRIP_NUMBER = GS_FINAL-TRIP_NUMBER

FLAG_ATTACH = ' '.

IF SY-SUBRC EQ 0.

  • Forming a file path to read file from application server .

concatenate GL_FILE_PATH GS_ZTIFF_ATTACH-FILE_NAME

INTO L_FILE_PATH.

  • Forming a download path

concatenate GL_PATH GS_ZTIFF_ATTACH-FILE_NAME

INTO L_PATH.

  • Uploading the object from application server .

perform Upload_object .

  • FM for workitem attachment (background mode)

  • CALL FUNCTION 'Z_WORKITEM_ATTACHMENT_NEW'

  • EXPORTING

  • WORKITEM_ID = GS_FINAL-WI_ID

  • PC_PATH_AND_FILE = L_PATH

  • USER = SY-UNAME

  • DO_COMMIT = 'X'

  • LANGUAGE = SY-LANGU

  • IMPORTING

  • RETURN_CODE = l_return_code

    • TABLES

    • GT_ERROR_LOG = GT_ERROR_LOG

*

*

  • FM is called for Workitem attachment(Foreground mode)

.

CALL FUNCTION 'Z_WORKITEM_ATTACHMENT'

EXPORTING

WORKITEM_ID = GS_FINAL-WI_ID

PC_PATH_AND_FILE = L_PATH

USER = SY-UNAME

DO_COMMIT = 'X'

LANGUAGE = SY-LANGU

IMPORTING

RETURN_CODE = l_return_code

TABLES

GT_ERROR_LOG = GT_ERROR_LOG

.

IF SY-SUBRC <> 0.

  • Appending Log file

l_WI_ID = GS_FINAL-WI_ID.

l_file = GS_ZTIFF_ATTACH-FILE_NAME.

l_text = ': Error occured while attaching the file'.

Concatenate GS_FINAL-EMP_NUMBER GS_FINAL-TRIP_NUMBER

l_WI_ID l_file l_text INTO

GT_LOG separated by SPACE.

APPEND GT_LOG.

ELSE.

  • Appending Log file

l_WI_ID = GS_FINAL-WI_ID.

l_file = GS_ZTIFF_ATTACH-FILE_NAME.

l_text = ': File attached Sucessfully'.

Concatenate GS_FINAL-EMP_NUMBER GS_FINAL-TRIP_NUMBER

l_WI_ID l_file l_text INTO

GT_LOG separated by SPACE.

APPEND GT_LOG.

  • Update FLAG_ATTACH

GS_ZTIFF_ATTACH-FLAG_ATTACH = 'X'.

GS_ZTIFF_ATTACH-ENTRY_DATE = SY-DATUM.

GS_ZTIFF_ATTACH-WI_ID = GS_FINAL-WI_ID.

MODIFY ZTIFF_ATTACH FROM GS_ZTIFF_ATTACH.

IF SY-SUBRC EQ 0.

PERFORM execute_workitem.

ENDIF.

ENDIF.

ELSE.

PERFORM execute_workitem.

ENDIF.

ENDLOOP.

ENDFORM. "ATTACHMENT

&----


*& Form Upload_object.

&----


  • Upload object

----


FORM Upload_object.

DATA : l_file TYPE STRING,

l_text TYPE STRING.

*uploading object from Application server

call function 'SCMS_UPLOAD'

EXPORTING

filename = L_FILE_PATH

binary = 'X'

frontend = ' '

IMPORTING

filesize = l_size

TABLES

data = l_data

EXCEPTIONS

error = 1

others = 2.

if sy-subrc <> 0.

  • Appending Log file

l_file = GS_ZTIFF_ATTACH-FILE_NAME.

l_text = ': Error occured while opening the file :'.

Concatenate GS_FINAL-EMP_NUMBER GS_FINAL-TRIP_NUMBER

  • l_WI_ID

l_text L_FILE_PATH INTO

GT_LOG separated by SPACE.

APPEND GT_LOG.

EXIT.

ELSE.

    • downloading

CALL FUNCTION 'SCMS_DOWNLOAD'

EXPORTING

FILENAME = L_PATH

FILESIZE = l_size

BINARY = 'X'

FRONTEND = 'X'

  • MIMETYPE =

  • P_TRANSFER_PHIO =

TABLES

DATA = l_data

EXCEPTIONS

ERROR = 1

OTHERS = 2

.

IF SY-SUBRC <> 0.

l_file = GS_ZTIFF_ATTACH-FILE_NAME.

l_text = ': Error occured while downloading the file :'.

Concatenate GS_FINAL-EMP_NUMBER GS_FINAL-TRIP_NUMBER

  • l_WI_ID

l_text L_FILE_PATH INTO

GT_LOG separated by SPACE.

APPEND GT_LOG.

EXIT.

endif.

ENDIF.

ENDFORM. "Upload_object

&----


*& Form execute_workitem.

&----


  • execute workitem

----


FORM execute_workitem.

CALL FUNCTION 'SWW_WI_ADMIN_COMPLETE'

EXPORTING

wi_id = GS_FINAL-WI_ID

do_commit = 'X'

authorization_checked = 'X'

EXCEPTIONS

update_failed = 01

infeasible_state_transition = 03

no_authorization = 02.

IF sy-subrc EQ 0.

COMMIT WORK.

**- get workitem header

*

  • CALL FUNCTION 'SWL_WI_HEADER_READ'

*

  • EXPORTING

*

  • wi_id = GS_FINAL-WI_ID

  • CHANGING

*

  • workitem = g_workitem

*

  • EXCEPTIONS

*

  • workitem_not_found = 1

*

  • OTHERS = 2.

*

  • ELSE.

*

    • MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

**

    • WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

**

    • subrc = sy-subrc.

**

    • EXIT.

    • MESSAGE s552(wo).

ENDIF.

ENDFORM. "execute_workitem

**********************************************************************************

Do reward points if helpful .

Cheers

Hemant

Message was edited by:

hemant k

Former Member
0 Kudos

&----


*& Report ZNNR_EMAIL

*&

&----


*&

*&

&----


REPORT ZNNR_EMAIL.

PARAMETERS: psubject(40) type c default 'Hello',

p_email(40) type c default 'test@sapdev.co.uk' .

data: it_packing_list like sopcklsti1 occurs 0 with header line,

it_contents like solisti1 occurs 0 with header line,

it_receivers like somlreci1 occurs 0 with header line,

it_attachment like solisti1 occurs 0 with header line,

gd_cnt type i,

gd_sent_all(1) type c,

gd_doc_data like sodocchgi1,

gd_error type sy-subrc.

data: it_message type standard table of SOLISTI1 initial size 0

with header line.

***********************************************************************

*START-OF-SELECTION.

START-OF-SELECTION.

Perform populate_message_table.

*Send email message, although is not sent from SAP until mail send

*program has been executed(rsconn01)

PERFORM send_email_message.

*Instructs mail send program for SAPCONNECT to send email(rsconn01)

perform initiate_mail_execute_program.

&----


*& Form POPULATE_MESSAGE_TABLE

&----


  • Adds text to email text table

----


form populate_message_table.

Append 'Email line 1' to it_message.

Append 'Email line 2' to it_message.

Append 'Email line 3' to it_message.

Append 'Email line 4' to it_message.

endform. " POPULATE_MESSAGE_TABLE

&----


*& Form SEND_EMAIL_MESSAGE

&----


  • Send email message

----


form send_email_message.

  • Fill the document data.

gd_doc_data-doc_size = 1.

  • Populate the subject/generic message attributes

gd_doc_data-obj_langu = sy-langu.

gd_doc_data-obj_name = 'SAPRPT'.

gd_doc_data-obj_descr = psubject.

gd_doc_data-sensitivty = 'F'.

  • Describe the body of the message

clear it_packing_list.

refresh it_packing_list.

it_packing_list-transf_bin = space.

it_packing_list-head_start = 1.

it_packing_list-head_num = 0.

it_packing_list-body_start = 1.

describe table it_message lines it_packing_list-body_num.

it_packing_list-doc_type = 'RAW'.

append it_packing_list.

  • Add the recipients email address

clear it_receivers.

refresh it_receivers.

it_receivers-receiver = p_email.

it_receivers-rec_type = 'U'.

it_receivers-com_type = 'INT'.

it_receivers-notif_del = 'X'.

it_receivers-notif_ndel = 'X'.

append it_receivers.

  • Call the FM to post the message to SAPMAIL

call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'

exporting

document_data = gd_doc_data

put_in_outbox = 'X'

importing

sent_to_all = gd_sent_all

tables

packing_list = it_packing_list

contents_txt = it_message

receivers = it_receivers

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.

  • Store function module return code

gd_error = sy-subrc.

  • Get it_receivers return code

loop at it_receivers.

endloop.

endform. " SEND_EMAIL_MESSAGE

&----


*& Form INITIATE_MAIL_EXECUTE_PROGRAM

&----


  • Instructs mail send program for SAPCONNECT to send email.

----


form initiate_mail_execute_program.

wait up to 2 seconds.

if gd_error eq 0.

submit rsconn01 with mode = 'INT'

with output = 'X'

and return.

endif.

endform. " INITIATE_MAIL_EXECUTE_PROGRAM

VB09104
Active Participant
0 Kudos

Hi Kit,

You can use following FM's

    • call function to send email

CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'

EXPORTING

document_data = docdata

document_type = 'RAW'

commit_work = 'X'

TABLES

object_header = t_objhead

object_content = t_objtxt

receivers = t_receiver

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.

**************************

also if you want to attach any file with the mail u can use following FM

  • Sending the document

IF NOT l_t_reclist[] IS INITIAL.

CALL FUNCTION 'SO_DOCUMENT_SEND_API1'

EXPORTING

document_data = l_doc_chng

commit_work = 'X'

TABLES

packing_list = l_t_objpack

object_header = l_t_objhead

contents_bin = l_t_objbin

contents_txt = l_t_objtxt

receivers = l_t_reclist

EXCEPTIONS

too_many_receivers = 1

document_not_sent = 2

operation_no_authorization = 4

OTHERS = 99.

ENDIF.

hope this helps..

regards,

vikas.

plz reward if useful

Former Member
0 Kudos

Hi Kit,

DATA : l_message(100) TYPE c.

DATA : l_subject(50) TYPE c.

DATA : g_email(50) TYPE c value 'saptech@gmail.com'.

DATA : objheader LIKE solisti1 OCCURS 0 WITH HEADER LINE.

DATA object_id LIKE soodk.

DATA : docdata LIKE sodocchgi1 OCCURS 0 WITH HEADER LINE.

DATA : objcontents LIKE solisti1 OCCURS 0 WITH HEADER LINE.

DATA : receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE.

receivers-receiver = g_email.

MOVE : 'X' TO receivers-express,

'U' TO receivers-rec_type.

APPEND receivers.

CONCATENATE 'Please note that your cheque numbered' p_cheque 'has been dishonoured' INTO l_message SEPARATED BY space.

CONCATENATE 'Cheque numbered' p_cheque 'dishonoured' INTO l_subject SEPARATED BY space.

objheader-line = 'Cheque Dishonoured!'.

APPEND objheader.

      • mail contents

objcontents-line = l_message.

APPEND objcontents.

objcontents-line = 'You are requested to contact the nearest Regional Office immediately'.

APPEND objcontents.

      • mail subject

docdata-obj_descr = l_subject.

APPEND docdata.

CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'

EXPORTING

document_data = docdata

  • DOCUMENT_TYPE = 'RAW'

put_in_outbox = 'X'

commit_work = 'X'

IMPORTING

  • SENT_TO_ALL =

new_object_id = object_id

TABLES

object_header = objheader

object_content = objcontents

  • CONTENTS_HEX =

  • OBJECT_PARA =

  • OBJECT_PARB =

receivers = receivers

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.

MESSAGE 'The mail could not be sent to the Customer.' TYPE 'I'.

ELSE.

MESSAGE 'Mail indicating the dishonour of cheque sent to the customer' TYPE 'I'.

ENDIF.